在ios系统上配置安装ruby的辛酸历程

在ios系统上配置安装ruby的辛酸历程,第1张

       ruby语言是一种面向对象的脚本语言,很多人喜欢把它拿来跟python来做对比,在我看来吧,其实各有好处吧,但是由于python的语法更简单,拓展性更强,因此python要比ruby更加受欢迎一些。而我学习ruby的动因主要是学校里的课程要求,这里推荐一个不错的github开源项目:猜词应用的自动测试环境,网址如下:

GitHub - saasbook/hw-sinatra-saas-wordguesser: Wordguess: a scaffolded (!) ESaaS getting-started assignment using Sinatrahttps://github.com/saasbook/hw-sinatra-saas-wordguesser    好吧,言归正传,本文是记录我在配置ruby过程遇到的坑,希望能给读者们提供一点点经验,主要过程如下:

1.xcode和Command Line Tools

这个想必不用我多说,直接贴命令:xcode-select --install

2.homebrew

homebrew是一个包管理器,用于在mac上安装一些os x上没有的UNiX工具,相信习惯使用linux系统的读者们一定知道这是什么,有了homebrew才有了在mac上进行更加深入开发的可能。

官方站点:macOS(或 Linux)缺失的软件包的管理器 — Homebrewhttp://brew.sh/index_zh-cn.html

安装过程也十分简单,官网上也给出了安装命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

这里可能有小伙伴会出现这种错误,当然没问题的可以跳过这一段:

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

我是参考了另一位博主的文章,传送门:(8条消息) curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused的几种解决方式_Solo❀。的博客-CSDN博客https://blog.csdn.net/qq_43531694/article/details/106862753

使用第一个办法就可以解决这个问题。

3.rvm

RVM全称Ruby Version Manager,是一个很好用的Ruby版本号以及安装工具。由于ruby更新换代很快,因此使用rvm来安装和控制Ruby版本号。 

安装指令:\curl -sSL https://get.rvm.io | bash -s stable

安装完再输入:source ~/.rvm/scripts/rvm 让 rvm 生效。

4.ruby和rubygem

这里推荐一个特别好的网站,这也是学习ruby的一个非常重要的网站,网址如下:RubyGems.org | Ruby 社区 Gem 托管https://rubygems.org/

RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。

RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。

安装过程也非常简单,只需要一条指令:

gem update --system

如果这条指令下载失败,那么你需要去官网手动下载了,传送门:

Download RubyGems | RubyGems.org | Ruby 社区 Gem 托管https://rubygems.org/pages/download当然使用gem update --system 下载的是最新版本的rubygem,上面提到过ruby更新换代比较快,有时候你从他人移植过来的代码由于ruby的版本原因无法运行,因此你需要使用rvm来安装相对应的ruby版本,这里给出一些利用rvm对ruby进行版本控制的指令:

切换Ruby版本——RVM的安装与使用 - YooHoeh - 博客园 (cnblogs.com)https://www.cnblogs.com/YooHoeh/p/12098866.html#:~:text=RVM%20%E4%B8%8D%E4%BB%85%E5%8F%AF%E4%BB%A5%E6%8F%90%E4%BE%9B%E4%B8%80%E4%B8%AA%E5%A4%9A%20Ruby%20%E7%89%88%E6%9C%AC%E5%85%B1%E5%AD%98%E7%9A%84%E7%8E%AF%E5%A2%83%EF%BC%8C%E8%BF%98%E5%8F%AF%E4%BB%A5%E6%A0%B9%E6%8D%AE%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E4%B8%8D%E5%90%8C%E7%9A%84%20gemset.,gemset%20%E5%8F%AF%E4%BB%A5%E7%90%86%E8%A7%A3%E4%B8%BA%E6%98%AF%E4%B8%80%E4%B8%AA%E7%8B%AC%E7%AB%8B%E7%9A%84%E8%99%9A%E6%8B%9F%20Gem%20%E7%8E%AF%E5%A2%83%EF%BC%8C%E6%AF%8F%E4%B8%80%E4%B8%AA%20gemset%20%E9%83%BD%E6%98%AF%E7%9B%B8%E4%BA%92%E7%8B%AC%E7%AB%8B%E7%9A%84%E3%80%82


列出已知的 Ruby 版本

rvm list known


安装一个 Ruby 版本

rvm install 2.2.0 --disable-binary

这里安装了最新的 2.2.0, rvm list known 列表里面的都可以拿来安装。


切换 Ruby 版本

rvm use 2.2.0


设置为默认版本

这样一来以后新打开的控制台默认的 Ruby 就是这个版本

rvm use 2.2.0 --default 


查询已经安装的ruby

rvm list


卸载一个已安装版本

rvm remove 1.8.7

相信很多小伙伴在安装ruby版本时,有时候会遇到这个问题:

这是一个编译错误,我在找这个问题原因的时候也是花费了大量时间,在根据提示打开这个log文件,我发现错误原因为:

closure.c:264:14: error: implicit declaration of function 'ffi_prep_closure' is invalid in C99 

最终在一个国外论坛上,有个老哥解决了这个问题,其实原因很简单,少了一个包,那就是libffi

使用命令安装一下:brew install libffi

安装成功后,使用命令:brew info libffi ,它会告诉你该如何配置使用libffi,如图:

根据提示,把这三条指令输入运行,如下(因电脑而异):

export LDFLAGS="-L/opt/homebrew/opt/libffi/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libffi/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig"

然后检查一下是否运行成功:

% echo $LDFLAGS
-L/opt/homebrew/opt/libffi/lib
% echo $CPPFLAGS
-I/opt/homebrew/opt/libffi/include
% echo $PKG_CONFIG_PATH
/opt/homebrew/opt/libffi/lib/pkgconfig

至此,尝试再次运行rvm install 版本号,就安装成功了。 

5.还有一些进行ruby开发时可能会用得到的工具例如 ImageMagick,PostgreSQL等,可以使用brew install 进行安装,这里就不详细表述了。

6.最后我想说一下ruby语言中的ruby on rails框架,类比于python的flask和Django框架,ruby on rails是一种轻量级的web开发框架,学习ruby肯定绕不开对这个框架的学习和使用,你可以在上面提到的rubygems官方社区搜索并且下载,祝大家在ruby的学习中走得越来越远!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/996651.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存