安装Rails时,如何解决“您没有对/ usr / bin目录的写权限”错误?


131

我正在尝试在运行OS X 10.6.3,Ruby 1.8.7和Rails 2.3.5的全新MacBook Pro上安装Rails 3,我想知道自己是否用软管接听。到目前为止,我已经运行了以下命令:

$ gem update --system
$ gem install arel tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
$ gem install rails --pre

但是,当我运行最后一条命令时,出现以下错误:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/bin directory.

我认为它希望我与一起运行命令,sudo以便它可以覆盖/usr/bin/rails。但是,如果这样做,我会覆盖我的Rails 2.3.5可执行文件吗?我不想那样做。相反,我想保留两个版本的Rails。我怎么做?


5
我在第一个命令上遇到了相同的错误,请使用此命令sudo gem update --system -n /usr/local/bin
nitish005 '18

1
什么是-n?
Scott Romack

只需在这里说明,只需重启终端即可解决此问题。
Ashwood

Answers:



479

使用-n参数来安装cocoapods:

sudo gem install cocoapods -n /usr/local/bin

7
为什么我们甚至需要这个?
nenchev

28
除非您指定-n / usr / local / bin,否则在MacOS上将失败。感谢您的解决方案
Sacky San '12

3
-n是什么意思?
allenlinli

7
根据guides.rubygems.org/command-reference/#gem-install,-n指定二进制文件所在的目录。我还需要-n /usr/local/bin在Mac上。which pod在使用-n选项(实际上是/ usr / local / bin
mwu),

3
我敢肯定RVM很棒,但这是一个更好的答案,可以直接解决当前的问题,而无需让我失望。
韦恩

61

使用-n / usr / local / bin标志确实有效,但是每次我想再次更新软件包时,都必须回到此页面。所以我想出了一个永久的解决方案。

对于那些有兴趣永久解决此问题的人:

创建一个〜/ .gemrc文件

vim .gemrc

具有以下内容:

:gemdir:
   - ~/.gem/ruby
install: -n /usr/local/bin

现在,您可以正常运行命令而无需使用-n标志。

请享用!


vim .gemrc如何编写此cmd
Chandni

我不确定这是否可以在Window $中使用,但是我想您可以使用记事本。
弗朗索瓦

谢谢,就像您一样,每次我需要进行更新时,我都厌倦了寻找此后缀!
Paul-Etienne

48
sudo gem install cocoapods --pre -n /usr/local/bin

这对我有用。


我遇到了这个问题,这个答案对我有用!我换成cocoapods了我所需要的依赖性
chris

33

您可以使用 sudo gem install -n /usr/local/bin cocoapods

这对我有用。



5

正确安装RVM后,此错误使我震惊。解决方法:重新启动终端。

参考RailsCast的RVM安装教程。


并非完全是7年后的事,但是如果您正在Windows bash子系统上工作,这也可以工作。只需退出bash并再次启动即可。谢谢。
佩德罗马德里,

0

对我来说,在类似问题的答案中发现了一些不同的方法。可能对OP没有帮助,但也许像我这样的人也遇到类似的问题。

您确实应该使用rvm,但是正如没有人向您解释说,如果没有rvm,该怎么做,您可以执行以下操作:

sudo gem install tzinfo builder memcache-client rack rack-test rack-mount \
  abstract erubis activesupport mime-types mail text-hyphen text-format   \
  thor i18n rake bundler arel railties rails --prerelease --force

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.