【问题标题】:"No such file or directory - getcwd" error on rubygems on Mac Os LionMac Os Lion 上的 ruby​​gems 上的“没有这样的文件或目录 - getcwd”错误
【发布时间】:2012-03-03 20:28:23
【问题描述】:

我正在尝试启动使用 ruby​​gems 的 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。有想法该怎么解决这个吗?谢谢!

【问题讨论】:

    标签: macos rubygems heroku


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • +1 ... 如果您在本地已删除/移动的目录中打开 shell 并尝试使用 Bundler 运行任何内容,也会引发此错误。
      • 在一次 puppet 运行期间位于我下方的目录中。
      • 这是我的错误。我删除了一个 github repo 并克隆了一个同名的目录。一切似乎都有效,直到出现此错误。更改目录并更改回目录有很大帮助。
      • 这应该是真正的答案。谢谢! :)
      • 这对我有帮助,我通过 sshfs 在网络映射驱动器中。更改到本地计算机上的目录有效。
      【解决方案3】:

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

      【讨论】:

      • 在我的 Ubuntu VPS 上也适用于我。这样做究竟能解决什么问题?
      • 它不适合我
      • 也适合我。
      • 也为我工作。 7.5年前的答案,它仍然在不断给予。谢谢。
      • 你能解释一下这是做什么的吗?
      【解决方案4】:

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

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

      现在去启动 Heroku 控制台

      【讨论】:

        【解决方案5】:

        这只是我在本地主机上运行 Sinatra 应用程序时发生的,这就是我发现的。

        场景: 我使用 Git 作为我的版本控制,我将分支从开发切换到主分支以合并我的分支。合并后,在运行活动服务器的情况下,我做了一个不应该炸毁应用程序的小 html 更改,当我去检查我的浏览器中的更改时,我的“请求”返回了 OP 的错误 - 只是要注意这一点应用未部署到 heroku。

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

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

        为自己解决问题就像重新启动服务器一样简单,希望这对未来的故障排除者有所帮助。

        【讨论】:

          【解决方案6】:

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

          $ rvm use 2.1.1
          

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

          【讨论】:

            【解决方案7】:

            在本地设置 rails 应用时遇到类似问题。

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

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

            任何东西都应该有效..它对我有用。

            【讨论】:

              【解决方案8】:

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

              【讨论】:

              • 啊。是的。我忘了我删除了运行命令的文件夹。
              【解决方案9】:

              我也有同样的情况,只需在终端中输入 cd,然后导航回您所在的位置即可。

              【讨论】:

              • 你应该在你的 Rails 应用程序的根目录中。这对我来说是固定的。
              【解决方案10】:

              重启系统在我的情况下解决了这个问题

              【讨论】:

                【解决方案11】:

                我遇到了同样的情况,它发生在工作目录实际上已被删除时。

                【讨论】:

                  【解决方案12】:

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

                  cd . 帮我解决了

                  【讨论】:

                  • 也为我解决了!非常感谢!
                  【解决方案13】:

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

                  【讨论】:

                    【解决方案14】:

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

                    【讨论】:

                      【解决方案15】:

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

                      而且,我在一个远程目录中,Mac 用户会认出来。

                      我只是简单地执行了push ~ 并再次运行该命令,然后执行了popd 以返回名称中包含奇数字符的远程目录。

                      可能是gem 在面对包含空格的目录名称时表现不佳,也可能是它不适用于联网目录。

                      bash 内置 pwd 在远程目录中运行良好,名称很有趣。

                      这整件事让我对gem有点紧张。

                      【讨论】:

                        【解决方案16】:

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

                        【讨论】:

                          【解决方案17】:

                          为我解决了

                          cd ..
                          cd -
                          

                          你必须返回并返回当前目录。

                          【讨论】:

                            【解决方案18】:

                            由于在 AWS Elastic beanstalk 上搜索相同的错误而在此页面上结束。

                            getcwd 的问题是因为 EB 试图无休止地重复部署过程。它会在完成当前操作之前更改 /var/app/staging 目录。 getcwd 失败,因为目录已被替换。尝试部署稳定版本或示例应用

                            【讨论】:

                              猜你喜欢
                              • 2017-04-15
                              • 2014-02-25
                              • 2012-02-24
                              • 1970-01-01
                              • 2020-02-19
                              • 2018-12-22
                              • 2021-05-01
                              • 2021-12-13
                              • 2016-01-19
                              相关资源
                              最近更新 更多