ruby安装gem包失败的通用解决方法_ruby专题

ruby语言升级还是比较勤快的。但是数量众多的版本使得程序库的兼容性成了大问题。有些gem表示明确不支持某个特定版本以前的ruby,而有些gem则与较高的版本不兼容。再加上gem本身也有版本,简直是乱成了一锅粥。即使使用了rvm、rbenv之类ruby版本管理工具也避免不了掉入坑中。并且时不时的一些其它环境设置也给你捣乱。所以一般使用ruby程序时,对升级ruby版本或各种gem版本都是比较慎重的,避免一时手贱掉入坑中。

当然你也不能因此就做缩头乌龟,某些情况下还是不得不升级的。比如想使用ruby或gem新版本的特性。而我本人无论使用什么软件都喜欢升级到最新版本,ruby程序也不例外。时间久了栽的次数多了也慢慢摸索出了一些经验。这里分享一下,希望大家都能避免这些坑,大胆的升级。

由于本人使用的操作系统是mac,所以这些tips都是基于MAC系统的。

当运行ruby脚本或者bundle install时,出错了首先一定要仔细看错误日志。如果有明确的出错日志,自己能解决的就可以着手解决,不知如何解决的可以选取关键词google之,一般也能找到解决方案。怕就怕google一圈以后还是不知如何是好。那么可以尝试下下面的几种方法。

升级ruby的小版本。

首先将当前的rvm升级到最新版本。

复制代码 代码如下:

$ rvm get stable

然后查看当前使用的ruby版本和服务端可用的ruby版本。

复制代码 代码如下:

$ rvm list
$ rvm list known

虽然不打算升级ruby主版本,但是小版本是可以尝试升级下,看是否能解决问题。比如当前你的ruby使用的是ruby-1.9.3-p448,但是查看到目前可用的1.9.3最新版本为ruby-1.9.3-p545。那么可以尝试切换到这个新版本下看能否解决问题。

复制代码 代码如下:

$ rvm install ruby-1.9.3-p545

$ rvm use ruby-1.9.3-p545

确保Xcode及Command line developer tools为最新版本
请确保本机的Xcode的 command line developer tools已经安装并且是最新版本。把Xcode升级到最新版本以后,在命令行下输入:

复制代码 代码如下:

$ xcode-select —install

这样会弹出来一个升级对话框来升级相应的软件。

确保GCC为最新版本
查看目前电脑的gcc的版本。

复制代码 代码如下:

$ gcc -v

如果需要更新gcc的话推荐通过homebrew来更新。首先更新homebrew。

复制代码 代码如下:

$ brew update

然后输入下列命令。

复制代码 代码如下:

$ brew tap homebrew/dupes
$ brew search gcc

brew会告诉你当前最新的gcc版本。例如是apple-gcc42。然后安装新版本gcc。

复制代码 代码如下:

$ brew install apple-gcc42

然后查看系统是否应用了这个版本的gcc。

复制代码 代码如下:

$ which gcc-4.2
/usr/local/bin/gcc-4.2

基本上以上的一些检查会解决掉一批由于ruby环境造成的问题。

时间: 2024-08-02 00:57:37

ruby安装gem包失败的通用解决方法_ruby专题的相关文章

Rails bundle命令安装mysql gem包出错的解决方法_ruby专题

解决 Rails bundle 安装不上 mysql gem包的问题 环境 ubuntu 12.04 ruby-2.1.1 首先 新建一个的一个项目,在该项目上执行 bundle install 提示 复制代码 代码如下: ... Make sure that gem install mysql2 -v '0.3.16'; succeeds before bundling .... 感觉非常奇怪 最后console提示 复制代码 代码如下: .../home/wh/.rvm/gems/ruby-

mac os gem安装json出现error failed的解决办法_ruby专题

升级到最新的mac os Mavericks.装json出现错误: 复制代码 代码如下: gem install json -v '1.8.1' Building native extensions.  This could take a while... ERROR:  Error installing json:   ERROR: Failed to build gem native extension.     /usr/local/var/rbenv/versions/2.0.0-p24

openSUSE下的Ruby安装openssl出错解决方法_ruby专题

最近把玩 Ruby,不错的说,很有感觉:在一台老机器上面装了 openSUSE 12.3,然后使用 rvm 安装了 ruby,其实任何好的发行版打包的 ruby 都不如使用 rvm 安装的 ruby,亲身感受(不服来辩). 然后,使用 gem 安装一些软件的时候,会出现如下的错误: 复制代码 代码如下: `no such file to load -- openssl (LoadError)` 原因很简单就是 ruby 的 openssl 支持模块没有安装,在 openSUSE 下面安装: 复制

linux中sysbench安装依赖包及出现的解决方法

在安装和使用sysbench时遇到的问题记录下 一个是源码安装系统环境要求: 需要安装m4  autoconf  automake libtool 这几个包,通过yum install m4  autoconf  automake libtool可进行安装 否则会报如下错误: [root@sever2 sysbench-0.4.12-1.1]# ./autogen.sh automake 1.10.x (aclocal) wasn't found, exiting [root@sever2 sy

升级到mac 10.10之后使用pod出现问题的解决方法_ruby专题

最新对mac 10.10的强大功能好奇,于是将系统升级到了10.10,结果发现使用pod出现了下面的问题: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- xcodeproj/prebuilt/universal.x86_64-darwin14

在Ruby on Rails上使用Redis Store的方法_ruby专题

Redis Store 是一个专为Ruby应用程序服务的工具包,原生就支持分片,主从复制,编组以及超时和命名空间.此外,在Ruby on Rails上使用它也是非常的简单. 如何使用:对于在Rails上使用Redis Store,首先我们需要在Gemfile文件中添加入口   gem 'redis-rails' gem 'redis-rack-cache' # optional 然后我们就会有如下选择: ## Cache Store # config/environments/productio

rails "No route matches" 错误的解决方法_ruby专题

有时候 rails 会出现: "No route matches"错误, 可以利用如下方法解决; 找到 config/routes.rb 文件, 打开编辑, 找到如下行: # See how all your routes lay out with "rake routes" 在这行下面添加一行, 内容如下: map.connect '',:controller=>"index",:action=>"index"

ruby元编程之创建自己的动态方法_ruby专题

method_missing是Ruby元编程(metaprogramming)常用的手法.基本思想是通过实现调用不存在的方法,以便进行回调.典型的例子是:ActiveRecord的动态查找(dynamic finder).例如:我们有email属性那么就可以调用User.find_by_email('joe@example.com'),虽然, ActiveRecord::Base并没有一个叫做find_by_email的方法. respond_to? 并不如method_missing出名,常用

Ruby中嵌套对象转换成json的方法_ruby专题

JSON由于其数据结构简单便利,已逐渐成为了互联网上的主流数据交换的数据格式. 在讨论嵌套对象(Nested Object)的JSON转换方法之前,我们先看简单的ruby JSON转换.首先,ruby对象转换为JSON字符串: 复制代码 代码如下: class Obj1     def initialize(var1)         @var1 = var1     end     def to_json(*a)         {             "json_class"