我在运行'Snow Leopard'v1.6.5的MacO上使用Ruby on Rails 3。
我想使用'paperclip'gem,所以我将它包含在我的Gemfile中,如下所示:
gem 'paperclip', "~> 2.3"
然后,在终端I中运行命令:
sudo bundle install
结果是:
...
Using paperclip (2.3.8)
Using thor (0.14.6)
Using railties (3.0.1)
...
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
表示已安装'paperclip v2.3.8'。
然后我从'系统偏好设置/共享/面板
重新启动'apache'使用我的RoR应用程序并在网站本地导航,我意识到出了问题。因此,要查看“控制台消息”中的日志,我发现了以下内容:
18/01/2011 16:50:52 org.apache.httpd[12972] [31mCould not find paperclip-2.3.8 in any of the sources[0m
什么意思?如何解决问题?
更新(重要!!!)
我正确地重新安装了RVM,现在,运行命令'rvm',我让它工作......但'paperclip'还没有:在日志中我仍然遇到问题'Could not find paperclip-2.3.8 in any of the sources
'。< / p>
注意:这次我使用的是bundle install
而不是sudo bundle install
!
我发现在终端中运行命令'rails server',我的RoR3应用程序与URL http://0.0.0.0:3000
上的'paperclip'配合得很好。当我在网址http://project.local
上使用“雪豹”的基本apache安装时,它不会。 为什么会这样?
编辑(在答案中提出请求后)
rvm info
的输出是:
/usr/local/bin/rvm: line 73: /Users/<my_user_name>/.rvm/scripts/rvm: No such file or directory
...
<A lot of the same line>
...
/usr/local/bin/rvm: line 73: /Users/<my_user_name>/.rvm/scripts/rvm: No such file or directory
/usr/local/bin/rvm: fork: Resource temporarily unavailable
/usr/local/bin/rvm: fork: Resource temporarily unavailable
P.S。我:我尝试使用gem 'paperclip', '2.3.8'
代替gem 'paperclip', "~> 2.3"
,但它不起作用。
P.S。 II:我也在使用 MacPorts ,我已经安装了 Image-Magick 。
答案 0 :(得分:3)
我得到:“/ usr / local / bin / rvm:第73行:/用户//。rvm / scripts / rvm
嗯,这很有趣。你不应该在/usr/local/bin
中看到rvm,所以有些东西搞砸了。 请通过编辑将rvm info
的输出添加到您的问题中。
除非你有非常特殊的需求,并且,如果你知道它,因为你要为多个用户管理主机,你绝不应该将sudo
与rvm或rvm控制的gem一起使用。由sudo
引起的混合权限,或者在安装rvm时以root身份运行,将导致各种奇怪的行为。
如果你有混合/多个rvm版本,那么第一个工作就是清理老鼠的窝并将东西恢复到干净/稳定的状态。
然后,您可以安装当前版本的rvm,并让它安装您的Rubies。此外,使用rvm get head
使rvm保持最新非常重要。作者每周更新几次,更新是透明的,但添加了错误修复和新功能。
编辑:rvm info
显示“糟糕的经纪”。
除了~/.rvm
路径之外,我们还需要弄清楚rvm的安装位置。在命令行类型:
locate rvm | grep -v /Users
特别是我们正在寻找rvm
shell脚本的任何实例。例如,这是我安装的第二个版本,用于帮助TextMate使用rvm:
/Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby on Rails.tmbundle/Support/lib/rvm
请注意,该行末尾只有“rvm
”这个词。
好的,这是个好消息。 RVM旨在从一个目录工作。您可以运行几个命令来清理/usr/local
路径:
下一部分将删除文件和目录,因此需要仔细完成。如果您熟悉命令行并了解典型的系统管理,您可以按原样执行以下操作:
sudo rm /_rvm
sudo rm /usr/bin/rvm-install
sudo rm /usr/local/bin/rvm-prompt
sudo rm /usr/local/bin/rvm-shell
sudo rm /usr/local/bin/rvmsudo
sudo rm /usr/local/bin/rvm
sudo rm -rf /usr/local/rvm/
如果您想要更加谨慎,可以打开Finder窗口,然后执行CMD+SHFT+G
打开“转到文件夹”对话框。复制并粘贴上面命令行中的第一个 PATH ,然后按Return键。 Finder将跳转到该目录。查找该文件(_rvm
)。将其拖到垃圾箱。系统应提示您输入sudo密码。对每个命令重复上述步骤。这很好用,因为它让Finder使用它的一些智能来帮助保护你免受我的愚蠢错误。 : - )
删除这些内容后,应该部分清理机器。从命令行类型echo $PATH
中查看是否列出了任何这些路径。如果是,请打开~/.bashrc
或~/.bash_profile
,找到修改PATH环境变量的位置,然后删除该目录路径。
然后,输入ls -al ~/.rvm
。如果您家中有.rvm
个文件夹,则可以使用rm -rf ~/.rvm
将其删除。然后,检查.bashrc或.bash_profile,查看rvm未指向~/.rvm
或/Users/your_account_name/.rvm
的任何内容。删除它们,关闭终端窗口,然后重新打开它。
此时应从您的机器中删除rvm。
现在已经很晚了,我整个周末都病了,所以明天我们会重新安装RVM和你的红宝石,或者,如果你有信心,可以自己尝试一下。请记住, NOT 必须使用sudo来安装RVM。它应该安装到您的主目录中,没有任何投诉。
另外,我认为我们没有确定您正在运行的操作系统版本或XCode版本。您可能希望通过其网站为您的操作系统download Apple's most recent version of XCode。 DVD上附带Snow Leopard的版本有一些错误,应该尽快升级。如果您没有开发者帐户,请创建一个。他们是免费的。