尝试安装gem(gem install mygem)或更新RubyGems(gem update --system)失败,出现此错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何解决这个问题?
我在我的ubuntu 16.04上安装了ruby.
$which ruby
/usr/bin/ruby
$ruby -v
ruby 2.3.0p0 (2015-12-25) [x86_64-linux-gnu]
$gem install bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /var/lib/gems/2.3.0 directory.
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
我收到这个错误
`establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/activerecord-
Run Code Online (Sandbox Code Playgroud)
这是整个错误和我的配置和gemfile的转储.
Configuration file: /Users/andrechristoga/Documents/type-theme/_config.yml
Deprecation: You appear to have pagination turned on, but you haven't included the `jekyll-paginate` gem. Ensure you have `gems: [jekyll-paginate]` in your configuration file.
Source: /Users/andrechristoga/Documents/type-theme
Destination: /Users/andrechristoga/Documents/type-theme/_site
Incremental build: disabled. Enable with --incremental
Generating...
Dependency Error: Yikes! It looks like you don't have pygments or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- …Run Code Online (Sandbox Code Playgroud) 我想全局安装ruby gem(sudo gem install capybara-webkit)但是我希望它从github存储库中的master安装.我知道这可以使用bundler完成,但我想从命令行完成,因为我主要使用pry进行编码.
在我所有的宝石安装上,我必须做sudo?所以
sudo gem install rails
只会工作
宝石安装导轨
不管用.我该如何解决这个问题?
我安装了rvm -
murtaza@murtaza-dev:~$ which rvm
/home/murtaza/.rvm/bin/rvm
murtaza@murtaza-dev:~$ which gem
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem
Run Code Online (Sandbox Code Playgroud)
但是,当我使用gem进行任何操作时,我也会收到此警告 -
murtaza@murtaza-dev:~$ gem
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
Run Code Online (Sandbox Code Playgroud)
编辑
我已经重新安装了rvm curl -L get.rvm.io | bash -s stable --auto(没有sudo).
但是,当我尝试安装gem时,它会给我以下错误 -
murtaza@murtaza-dev:~$ gem install rails
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /home/murtaza/.gem/specs
Run Code Online (Sandbox Code Playgroud)
编辑
我做了整件事,但仍然得到错误 -
murtaza@murtaza-dev:~$ sudo chown murtaza.murtaza -R ~/.rvm/* …Run Code Online (Sandbox Code Playgroud) 我想在Ruby 2.1.0中使用Rails,但它使用的是Ruby 1.9.3(系统版本).
我正在使用rbenv来管理我的Ruby版本.我的步骤是:
$ rbenv install 2.1.0
$ rbenv global 2.1.0
$ sudo gem install rails -v 4.0.2
$ rbenv rehash
$ rbenv versions
system
* 2.1.0 (set by /home/dennis/.rbenv/version)
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
$ rails new app && cd app
$ rails server
Run Code Online (Sandbox Code Playgroud)
据Rails使用的是Ruby 1.9.3(x86_64-linux)localhost:3000/rails/info/properties.来自的一条日志消息rails server:INFO ruby 1.9.3 (2012-04-20) [x86_64-linux].
我认为Rails使用的是Ruby的系统版本,因为版本匹配.
$ rbenv local system
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ …Run Code Online (Sandbox Code Playgroud) 当我尝试安装mysql2 gem(使用"sudo gem install mysql2")时,我很惊讶没有找到我的"gem list"中列出的gem.
经过一些谷歌搜索后,我发现mysql2 gem已安装在我的远程gems中(使用"gem query --remote"或"gem search mysql2 -r"查找它们),而不是我使用"gem"将它们从远程安装到本地安装--remote mysql2".
现在mysql2列在我的gem列表中.
我很高兴我找到了解决方案,但是,我真的不明白为什么宝石首先安装在远程宝石中或者有什么区别.谷歌搜索没有得到很好的解释.
有人可以向我解释一下这个区别吗?
所以我已经阅读了关于如何阻止sudo安装宝石的每一篇文章,其中有100个不同的答案,其中一个还没有打成黄金.有人可以一劳永逸地提供最简单,最简洁的方式来编辑和更新您的bash配置文件以重写权限并停止sudo安装gem吗?
下面只是一个例子,向您展示我每次都得到的东西.在过去的几个星期里,我一直在做所有事情,我知道这是在为这个问题提供创可贴.
LMagnotti$ gem install nokogiri
ERROR: While executing gem ... (Errno::EACCES)
Permission denied @ rb_sysopen - /usr/local/lib/ruby/gems/2.3.0/gems/nokogiri-1.6.7.2/.autotest
Run Code Online (Sandbox Code Playgroud)