【问题标题】:cocoaPods pod install Permission deniedcocoaPods pod install 权限被拒绝
【发布时间】:2013-04-17 00:13:07
【问题描述】:

这是简短的版本:

当我跑步时

pod install 

在 Xcode 项目中我得到了

[!] Pod::Executable pull 错误:无法打开 .git/FETCH_HEAD: 权限被拒绝

如果我跑步

sudo pod install

我没有收到任何错误,但我安装的文件归 root 所有,无法编译,我必须 chown 将这些文件提供给普通用户才能使用 Xcode 编译器。

我正在运行 Lion OSX。

我安装了 cocoaPods 使用

sudo gem install cocoaPods

我不得不使用sudo,因为没有它我得到了

错误:执行 gem 时 ... (Gem::FilePermissionError)

您没有对 /Library/Ruby/Gems/1.8 目录的写入权限。

所以现在我有一个 root 安装版本的 cocoaPods,它可以下载 root 拥有的 Xcode 库。

sudococoaPods的安装方式是错还是正常?

如果正常,有没有办法解决 pod install 问题?

【问题讨论】:

    标签: rubygems cocoapods


    【解决方案1】:

    我通过运行以下命令解决了这个问题:

    sudo chown -R $USER ~/Library/Caches/CocoaPods
    

    sudo chown -R $USER ~/.cocoapods
    

    请将usernamegroupname 替换为您的Mac 登录用户名/组名。

    【讨论】:

    • 注意,您需要在 -R 和 ~filename 之间拥有要转移所有权的用户名
    • 致@lehn0058,很抱歉匆忙遗漏了用户名参数。
    • 附带说明,事件发生是因为我运行的是“sudo pod setup”而不是“pod setup”。
    • 您应该能够将username.groupname 替换为$USER,并且它应该适用于任何人的直接复制粘贴。无论如何,还是很有魅力。
    • 要知道您的用户名,只需输入:whoami
    【解决方案2】:

    我只用过(username 是你的 Mac 登录用户名)

    sudo chown -R username ~/Library/Caches/CocoaPods
    

    sudo chown -R username ~/.cocoapods
    

    当我尝试使用 groupname 参数时,我得到了

    chown: username.groupname: illegal user name
    

    当然我用的是我自己的用户名和组名:)

    【讨论】:

    • 我已经通过删除~/Library/Caches/CocoaPods中的内容解决了这个问题,然后进入项目目录和pod install
    【解决方案3】:

    删除对我有用的目录:

    sudo rm -R  ~/Library/Caches/CocoaPods
    sudo rm -R  ~/.cocoapods/repos
    

    如果还有其他问题。

    删除 Pods 目录和 podFile.lock 文件。

    Cocoapods 只是再次添加目录。

    【讨论】:

    • ~/Library/Caches/CocoaPods/GitHub 不存在。
    • 你有哪个版本的 CocoaPods?
    【解决方案4】:

    在我的一些项目中安装 CocoaPods 时遇到了所有错误,我终于成功地找到了它的模式。这里是:

    1. 从终端访问您的项目文件夹:

      $ cd /Users/username/Downloads/MessagesTableViewController-master
      
    2. 创建一个 podfile:

      $ touch podfile
      $ open -e podfile
      
    3. 创建 podfile 后,通过 Finder 访问它并在除 TextEdit 之外的任何其他文本编辑器中对其进行编辑,因为 TextEdit 有时会在 pod 文件中使用撇号。我使用了 textWrangler。在 pod 文件中写入以下内容; (请注意,这些依赖项适用于支持 iOS 6.0 及更高版本的项目)

      platform :ios, '6.0'
      pod 'AFNetworking'
      
    4. 保存文件并关闭它。

    5. 返回终端查看您的 pod 版本:

      $ pod --version
      

      根据您的 pod 版本,如果需要更新,请运行以下命令:

      $ sudo gem update
      
    6. 更新完成后,或者说它已经是最新的,你应该安装cocoapods:

      $ sudo gem install cocoapods
      
    7. 最后,只需运行以下命令:

      $ sudo pod setup
      $ sudo pod install
      

    还有维奥拉!它完成了。您将在项目文件夹中看到一个名为 Pods 的文件夹,并且您在 pod 文件中声明的依赖项将在 Pods 文件夹中作为子文件夹显示。

    编码愉快:)

    【讨论】:

      【解决方案5】:

      问题在于 Mac OS X 的默认 Ruby 安装。 Ruby/Gems 安装在您指定的位置归 root 所有。

      这是正常行为除非您安装了 Ruby 管理器。我会推荐rbenv,但RVM 也很受欢迎。

      这些将您的 Ruby 安装在您的 $HOME 文件夹中。这样,您的用户就拥有了 Ruby 和 gem 可执行文件。

      【讨论】:

      • 感谢您的快速回答,我确实找到了解决方法,chown user ~/.cocoapod/master/git/FETCH_HEAD,这让我的问题消失了,但我会研究 rbenv 或 RVM 解决方案
      • 为了我的快速解决方法,我还必须更改 ~/Library/Caches/CocoaPods/GitHub 的权限,现在它可以工作但仍然是一个 hack
      • 需要明确的是,除非您使用 Ruby 管理器,否则您需要使用 sudo 来安装 gem。您没有预料到的其他问题可能是由运行 sudo pod setupsudo pod install 引起的。
      • 感谢 Fabio,我从未运行过 pod setup,但是当我运行 sudo pod install 时,它会创建无法编译的 root 拥有的库。还更新到我的快速修复程序,我不得不在 ~/.cocoapod/master/git/ 下对所有内容进行更改,我对其进行了测试,它工作正常。我将研究 pod 设置和 Ruby 管理器。
      【解决方案6】:

      只需要添加权限标志--user-install
      更新使用:
      sudo gem update --user-install
      安装使用:
      sudo gem install --user-install cocoapods

      【讨论】:

        【解决方案7】:

        快速、简单、实用的解决方案:

        sudo chmod -R 777 ~/.cocoapods
        sudo chmod -R 777 ~/Library/Caches/CocoaPods
        

        【讨论】:

          【解决方案8】:

          这是一个已知问题。 CocoaPods official web-site 上还有更多内容。

          【讨论】:

            【解决方案9】:

            回答原问题:

            Is sudo installation of cocoaPods the wrong way or normal way? 
            

            当我执行pod install 时,我得到:

            Analyzing dependencies
            CocoaPods 0.36.0.beta.1 is available.
            To update use: `sudo gem install cocoapods --pre` 
            

            所以我假设sudo 没问题。

            【讨论】:

            • 您对 sudo 的使用将是安装 cocoapods 本身的更新,这是必要的。 Sudo 不适用于“sudo pod install”,因为它会产生错误:[!] You cannot run CocoaPods as root.
            【解决方案10】:

            我通过安装最新版本的 Ruby 解决了这个问题。此处的说明:https://gorails.com/setup/osx/10.12-sierra 然后我能够成功运行 须藤宝石更新 sudo gem 安装 cocoapods

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-02-07
              • 2011-08-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-09-24
              • 2018-12-13
              • 2018-06-08
              相关资源
              最近更新 更多