【问题标题】:Cocoapods commands fail due to "No such file or directory @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno::ENOENT)"由于“没有这样的文件或目录@ dir_initialize - /Users/<username>/.cocoapods/repos (Errno::ENOENT)”,Cocoapods 命令失败
【发布时间】:2015-01-15 09:21:39
【问题描述】:

谁能帮我解决下面堆栈跟踪中的错误?当我运行任何 pod 命令时会发生这种情况。我已经卸载并重新安装了 gem,但没有成功。

00:44:05-David~/dev/farecast-app (master)$ pod setup
Setting up CocoaPods master repo
/usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/pathname.rb:422:in `open': No such file or directory @ dir_initialize - /Users/David/.cocoapods/repos (Errno::ENOENT)
    from /usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/pathname.rb:422:in `foreach'
    from /usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/pathname.rb:422:in `children'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/sources_manager.rb:63:in `all'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/user_interface/error_report.rb:127:in `repo_information'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/user_interface/error_report.rb:34:in `report'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/command.rb:63:in `report_error'
    from /usr/local/rvm/gems/ruby-2.1.0@global/gems/claide-0.7.0/lib/claide/command.rb:300:in `handle_exception'
    from /usr/local/rvm/gems/ruby-2.1.0@global/gems/claide-0.7.0/lib/claide/command.rb:274:in `rescue in run'
    from /usr/local/rvm/gems/ruby-2.1.0@global/gems/claide-0.7.0/lib/claide/command.rb:264:in `run'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/command.rb:50:in `run'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/bin/pod:33:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/pod:23:in `load'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/pod:23:in `<main>'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `eval'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `<main>'

更新:在@KeithSmiley 的建议下修复。

【问题讨论】:

  • 您能否尝试使用rm -rf ~/.cocoapods 删除~/.cocoapods 并再次运行pod setup
  • @KeithSmiley 我试过了,在运行任何pod 命令(包括pod setup)时仍然从上面得到相同的堆栈跟踪。
  • 你可以手动将specs repo克隆到~/.cocoapods/repos/master,而不是运行pod setup。那么你应该可以跳过这一步。
  • 我使用的是 'git rm -rf Pods',但 git 实际上并没有删除该目录。对于那些对此感到困惑的人,请执行“rm -rf Pods”,然后执行“pod install”。
  • 你为什么不选择超过 440 票的答案?

标签: cocoapods


【解决方案1】:

如果消息说您缺少库:

我遇到了同样的问题,在运行pod setuppod install 后已解决

如果缺少的目录是 ruby​​ 目录,您可以这样做:

你可能最近更新了你的 osx 或 ruby​​ gem,它的 PATH 仍然链接到旧的 ruby​​ 版本。修复:

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

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

As said by @rendel

【讨论】:

  • 想知道为什么 CocoaPods 的入门指南中没有提到这一点
  • 这让我度过了一个美好的夜晚!谢谢!
  • + 1 用于在入门指南中提及它
  • 这是一个已修复的错误,我们正在等待下一个版本发布
【解决方案2】:

Cocoapods had an issue 他们的 github 存储库已损坏,这迫使用户手动清理其本地存储库。

引用Cocoapods blog post detailing the error:

不幸的是,我们在 libgit2 中遇到了一个错误,我们将 必须强制推送到 Specs 存储库中。 (也称为 “主”规范回购。)

这对您意味着什么?好吧,基本上你的 CocoaPods 设置是 会崩溃。您将不得不手动删除任何本地 Specs 存储库的副本并重新克隆新版本的 规格存储库。您可以使用以下命令来做到这一点:

解决方案:

$ sudo rm -fr ~/.cocoapods/repos/master
$ pod setup

只需运行上述命令即可删除损坏的 repo 并使用干净的 repo 重新初始化。请参阅the blogpost mentioned above 了解更多信息。

希望这会有所帮助!

【讨论】:

  • @user3783005,如果您收到该错误,则表示 cocoapods 未安装,或者在您的 PATH 变量的任何位置都找不到可执行的“pods”。使用echo $PATH 打印出您开始故障排除过程的完整路径。
【解决方案3】:

仅供参考 - 我在全新安装 cocoapods 时遇到了这个问题。听起来这是一个在 0.36 中修复的错误

https://github.com/CocoaPods/guides.cocoapods.org/issues/58

【讨论】:

    【解决方案4】:

    有时会在 Podfile 或 Podspec 中使用错误的撇号字符时发生

    在 OS X 上使用标准 TextEdit 应用程序时,这些撇号是默认设置。 我更喜欢 Sublime Text 以避免此类错误

    【讨论】:

    • 请记住,当使用“私有规范”技术时,cocoapods 可能会将您的本地私有 Podspec 复制到名为“./Your_Private_Subspec_Name/Pods/Local Podspecs”的目录中。因此,在修复原始 podspec 之后,您最好删除那些“本地 Podspecs”目录,因为 cocoapods 可能无法正确更新副本
    【解决方案5】:

    我有类似的问题。我删除了 Pods 文件夹并再次运行 pod install。问题解决了。

    【讨论】:

    • 谢谢!你为我节省了一些宝贵的时间:)
    【解决方案6】:

    我遇到了类似的错误。我尝试了“pod setup”,但没有用。然后我创建了一个我被告知丢失的假文件,然后“pod update”就可以了。

    【讨论】:

      【解决方案7】:

      我遇到了同样的问题,但我必须删除项目中的整个 ./Pods/ 目录才能继续(该目录包含指向其他分支的文件的符号链接,这些文件在分支切换时未删除)

      【讨论】:

        【解决方案8】:

        快速解决方案

        解决此问题的好方法是转到指定文件夹并检查丢失的文件(有时它存在但格式很少)并删除 文件。也删除Podfile.lock文件

        然后执行pod install,一切都会好起来的 :) 你不需要删除 Cocoapods 下载的所有 repos。

        完成!

        【讨论】:

        • 这个。这是修复。重新安装 cocoapods,链接,各种东西,直到我进入 Finder 并删除了疯狂的 pod 内的文件之前,都没有任何效果。甚至是我自己在 2018 年 O.o 的回答
        【解决方案9】:

        我知道这是一篇较旧的帖子,但在本地 pod 中移动或删除 .h 文件时遇到了这个问题。原来这是 v0.38 的问题,解决方案是更新。

        查看 Github 问题讨论 here

        【讨论】:

          【解决方案10】:

          进入项目目录并输入命令 export PATH=$PATH:$HOME/Software/ruby/bin

          【讨论】:

            【解决方案11】:

            没有什么对我有用,我必须sudo gem install cocoapods,这很神奇。

            【讨论】:

            • 我必须在通过迁移助手完成迁移后执行此操作。
            【解决方案12】:

            尝试了很多东西,对我来说唯一的解决办法是说

            brew install cocoapods
            

            然后

            brew link --overwrite cocoapods
            

            现在它似乎工作正常。

            【讨论】:

            • 在我以某种方式搞砸了我的安装后,这对我有用。谢谢!
            猜你喜欢
            • 1970-01-01
            • 2020-08-08
            • 2021-06-20
            • 2020-02-22
            • 2015-06-12
            • 1970-01-01
            • 1970-01-01
            • 2014-07-09
            • 2013-02-01
            相关资源
            最近更新 更多