2

我安装了一个红宝石版本如下

$ rvm install ruby-1.9.3-p448-dev

当我检查版本如下

$ ruby -v

ruby 1.9.3p448 (2013-06-27 revision 41675) [i686-linux]

但是当我尝试像下面这样安装 travis

$ gem install travis

Building native extensions.  This could take a while...
ERROR:  Error installing travis:
    ERROR: Failed to build gem native extension.

    /home/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb
/home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1371:in `initialize': Permission denied - /home/user/.travis/travis.sh (Errno::EACCES)
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1371:in `open'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1371:in `block in copy_file'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1370:in `open'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1370:in `copy_file'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:477:in `copy_file'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:396:in `block in cp'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1515:in `block in fu_each_src_dest'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1529:in `fu_each_src_dest0'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:1513:in `fu_each_src_dest'
    from /home/user/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/fileutils.rb:395:in `cp'
    from extconf.rb:5:in `<main>'


Gem files will remain installed in /home/user/.rvm/gems/ruby-1.9.3-p448/gems/travis-1.5.2 for inspection.
Results logged to /home/user/.rvm/gems/ruby-1.9.3-p448/gems/travis-1.5.2/completion/gem_make.out

那么如何避免上述native extensions错误并travis成功安装使用gem

编辑

sudo当我通过以下方式尝试命令时

sudo gem install travis

我收到以下消息作为成功

Building native extensions.  This could take a while...
Successfully installed travis-1.5.2
1 gem installed
Installing ri documentation for travis-1.5.2...
Installing RDoc documentation for travis-1.5.2...

现在我要做的就是设置environ变量travis ,因此我尝试了以下命令

$ travis encrypt -r travis_uname/app_name EMAIL_HOST_KEY=key_value

并得到以下奇怪的错误

/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find travis (>= 0) amongst [addressable-2.3.5, backports-3.3.3, bundler-1.3.5, bundler-unload-1.0.1, coderay-1.0.9, ethon-0.6.0, faraday-0.8.8, faraday_middleware-0.9.0, ffi-1.9.0, gh-0.11.3, highline-1.6.19, launchy-2.3.0, method_source-0.8.2, mime-types-1.24, multi_json-1.7.9, multipart-post-1.2.0, net-http-persistent-2.9, net-http-pipeline-1.0.1, netrc-0.7.7, pry-0.9.12.2, pusher-client-0.3.1, rake-10.1.0, ruby-hmac-0.4.0, rubygems-bundler-1.2.2, rubygems-update-2.0.7, rvm-1.11.3.8, slop-3.4.6, typhoeus-0.6.4, websocket-1.0.7, websocket-native-1.0.0] (Gem::LoadError)
    from /usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:256:in `to_spec'
    from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:1208:in `gem'
    from /usr/local/bin/travis:18

那么最后如何避免上述错误并使上述 travis 命令成功运行?

4

3 回答 3

4

首先,将您使用的 Ruby 版本设置为默认值

rvm use --default ruby-1.9.3-p448-dev

并卸载之前安装的 gemsudo

sudo gem uninstall travis

这可以确保您的所有命令都使用相同的 Ruby 版本,并且您的机器再次干净。现在到你的安装问题。这个错误

Permission denied - /home/user/.travis/travis.sh (Errno::EACCES)

向您显示,安装程序尝试访问/home/user/.travis但由于缺少用户权限而无法访问。这意味着您需要确保该文件夹属于您并且是可写的

chown -R `whoami` ~/.travis
chmod -R u+wx ~/.travis

现在继续尝试重新安装:

gem install travis

一切都应该没问题。

于 2013-08-21T13:24:18.283 回答
3

安装-dev软件包为我修复了它... sudo apt-get install ruby-dev

于 2015-01-22T16:33:05.733 回答
0

当您使用 sudo 安装一些 gem 时,有时会发生这种情况。理想情况下,您永远不应该为 gem 安装 sudo。因此,如果您有多个属于 root 的 gem,并且您想删除 ruby​​ 安装和相关的 gem,请运行以下命令:

sudo rvm remove ruby-2.0.0-p353 --gems

rvm remove 是从 rvm 中删除红宝石的首选方法。默认情况下,它不仅会删除 ruby​​ 及其源文件,还会删除别名、包装器、环境和任何相关的二进制文件——换句话说,它会清理大部分安装。

--gems 标志将删除所有相关的 gemset。

您应该重新安装您的 ruby​​ 版本: rvm install ruby-2.0.0-p353 并再次捆绑安装。

于 2014-03-26T19:31:07.803 回答