Mac Os Lion上的rubygems上没有“此类文件或目录 - getcwd”错误

时间:2012-02-11 19:53:17

标签: macos rubygems heroku

我正在尝试启动使用rubygems的heroku console,但我一直收到此错误:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:471:in `expand_path': No such file or directory - getcwd (Errno::ENOENT)
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:471:in `find_files'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:470:in `map'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:470:in `find_files'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:1103
    from /usr/bin/heroku:9:in `require'
    from /usr/bin/heroku:9

我正在使用Mac OS Lion 10.7.3。有想法该怎么解决这个吗?谢谢!

16 个答案:

答案 0 :(得分:148)

也许用于启动heroku进程的shell的当前工作目录不存在(可能由另一个进程删除,如我的情况),因此getcwd会抛出错误。

答案 1 :(得分:38)

这发生在我身上。原来我删除了我运行命令的文件夹。

答案 2 :(得分:34)

我遇到了同样的问题....正在运行sudo gem update --system解决了问题...试一试。

答案 3 :(得分:19)

我有同样的事情,只需在终端输入cd,然后导航回原来的位置即可。

答案 4 :(得分:8)

在本地设置rails app时面临类似的问题。

问题是服务器在一个目录中运行,我已从另一个终端窗口中删除该目录以重新创建该应用程序。

关闭终端并再次执行或转到其他目录并返回并执行此操作...

任何事情都应该有效。它为我做了。

答案 5 :(得分:2)

这似乎不是Heroku问题,因为代码中的内容需要getcwd

如果在生产模式下本地运行此应用程序会发生什么?您是否为Heroku定义了所有依赖项(via a .gems file or Bundler

答案 6 :(得分:2)

尝试在另一个控制台选项卡中启动Rails服务器。

est为我解决了

答案 7 :(得分:1)

我遇到了同一个,当工作目录实际被删除时发生了。

答案 8 :(得分:0)

as explained by gerardk 您可以在启动Heroku控制台之前尝试此操作

$ pwd #ie: /mywork
$ cd ..
$ cd [pwd] #ie: cd mywork

现在启动回Heroku控制台

答案 9 :(得分:0)

当我在我的localhost上运行Sinatra应用程序时,这恰好发生在我身上,这就是我找到的。

方案: 我使用Git作为我的版本控制,我将分支从开发切换到master以合并我的分支。在合并之后,在活动服务器运行的情况下,我做了一个小的html更改,这不应该炸毁应用程序,当我去检查我的broswer中的更改我的请求"回到OP的错误 - 只是注意到这个应用程序没有部署到heroku。

我的猜测: 我不熟悉Webbrick(或等效程序)的复杂性,但我猜你有一个活动服务器正在运行(像我一样)而且它正在寻找内存中的特定文件以及它们何时出现根据可能的分支更改进行了修改,或者修改/删除了一个重要文件 - Webbrick吓坏了,并且不知道在哪里找到它/它们并且抛出了这个错误。

我不确定您使用的版本控件是什么,但我知道git在heroku中很受欢迎,所以我认为这可能与您的问题有关。

为自己解决问题就像重新启动服务器一样简单,希望这有助于未来的麻烦射击游戏。

答案 10 :(得分:0)

我通过关闭并重新启动终端解决了这个问题,在新终端中将正确的Ruby版本设置为

$ rvm use 2.1.1

(或任何Ruby版本与您的程序相关)

答案 11 :(得分:0)

重启系统解决了我的问题

答案 12 :(得分:0)

我通过关闭服务器,重新启动终端然后重新启动服务器来解决此错误。

答案 13 :(得分:0)

sudo gem update --system(如Israfil Havilah所述)并重新启动服务器(Ubuntu 16.04.6 LTS)对我有帮助

答案 14 :(得分:0)

就我而言,我所在的目录名称中包含“不寻常”字符:/Volumes/Members/Finance & Accounting/-MC 2008, 7848/2020

而且,我在一个远程目录中,Mac用户可以识别。

我只是做了push ~并再次运行了命令,然后做了popd回到了我的远程目录,名字中有奇数字符。

gem在包含空格的目录名称面前表现不佳,或者在网络目录上不起作用。

内置bash pwd在带有有趣名称的远程目录中也能正常工作。

这整个事情让我对gem感到有些紧张。

答案 15 :(得分:-1)

确保您没有切换 git 分支。对我来说,这是由于在 GIT 分支之间切换删除了我的文件夹。