在我所有的宝石安装中,我必须做sudo?所以
sudo gem install rails
将起作用,而只有
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
但是当我使用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
修改
我已经使用curl -L get.rvm.io | bash -s stable --auto
重新安装了rvm(没有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
修改
我在整个事情上做了但总是得到错误 -
murtaza@murtaza-dev:~$ sudo chown murtaza.murtaza -R ~/.rvm/*
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
答案 0 :(得分:28)
在整个chown
和.rvm
目录中使用.gem
返回给您的用户。您之前可能使用过sudo
并且它搞砸了权限。
sudo chown -R username:group ~/.rvm
sudo chown -R username:group ~/.gem
当然,将用户名更改为您的用户名并分组到您的论坛
答案 1 :(得分:16)
当你在没有sudo的情况下安装它们时,Ruby不知道它们的安装位置。我不记得默认安装它们的位置,可能是〜/ .gems之类的东西。无论如何,你可以通过设置GEM_HOME环境变量告诉Ruby它们的安装位置。
$ # assuming your gems are stored in ~/.gems
$ GEM_HOME="$HOME/.gems" ruby my_program.rb
如果可行,那么您可以将它放在〜/ .bashrc中(根据您的系统,可能会有许多可能存在的文件)
答案 2 :(得分:6)
您应该安装Ruby Version Manager。它在您的家庭目录中存储已安装的红宝石和宝石,因此您现在不必使用sudo
来安装宝石。除此之外,它还有更多功能。 :)
答案 3 :(得分:6)
对于Mac用户,这对我有用......
.bash_profile
例如,nano ~/.bash_profile
并添加导出GEM_HOME=/Users/Michael/.gem
,其中路径是您自己的主文件夹
同样在.bash_profile
中,添加export PATH="$GEM_HOME/bin:$PATH"
来源:http://michaelehead.com/2016/02/06/installing-gems-without-sudo.html
答案 4 :(得分:1)
我通过以下方式解决了我的问题:(我有ubuntu 17.10)
打开终端并输入:
echo "gem: --user-install" >> ~/.gemrc
然后在.bashrc文件中添加ruby的bin路径
export PATH="$PATH:$HOME/.gem/ruby/x.x.x/bin"
答案 5 :(得分:1)
尝试gem install package --install-dir $HOME/.gem
。
别忘了像export PATH="$PATH:$HOME/.gem/bin"
之前提到的那样设置路径。
您需要考虑的事情是更改PATH顺序,例如export PATH="$HOME/.gem/bin:$PATH"
。例如,如果您尝试将Rails安装到OS X系统上的本地目录中,但是内置了可执行文件,则可能会发生这种情况。在这种情况下,如果您不更改路径顺序,您还将收到以下输出:
Rails当前未安装在该系统上。要获取最新版本,只需键入:
$ sudo gem安装导轨
然后您可以重新运行“ rails”命令。
然后将变量GEM_HOME
设置为export GEM_HOME="$HOME/.gems"
答案 6 :(得分:1)
MacOS
brew install ruby
为zsh编辑~/.zshrc
(因为Bash可能类似于 ~/.bash_aliases
)
# By default, binaries installed by gem will be placed into:
# /usr/local/lib/ruby/gems/2.6.0/bin
export GEM_HOME="/usr/local/lib/ruby/gems/"
export PATH="$GEM_HOME/bin:$PATH"