56

这是简短的版本:

当我跑

pod install 

在我得到的 Xcode 项目中

[!] Pod::Executable pull error: cannot open .git/FETCH_HEAD: Permission denied

如果我跑

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 库。

sudo安装 cocoaPods 是错误的方式还是正常的方式?

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

4

10 回答 10

103

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

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

sudo chown -R $USER ~/.cocoapods

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

于 2013-07-09T07:52:16.777 回答
22

我只用过(username你的 Mac 登录用户名在哪里)

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

sudo chown -R username ~/.cocoapods

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

chown: username.groupname: illegal user name

当然,我使用了自己的用户名和组名 :)

于 2013-09-05T13:43:51.357 回答
11

删除目录对我有用:

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

如果还有其他问题。

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

Cocoapods 只是再次添加目录。

于 2014-01-31T10:09:03.380 回答
4

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

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

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

于 2013-04-17T00:34:27.780 回答
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 文件夹中作为子文件夹显示。

快乐编码:)

于 2014-03-12T23:17:48.460 回答
0

快速,简单,hacky的解决方案:

sudo chmod -R 777 ~/.cocoapods
sudo chmod -R 777 ~/Library/Caches/CocoaPods
于 2014-05-03T01:15:12.870 回答
0

回答原来的问题:

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问题。

于 2015-01-02T11:57:56.973 回答
0

这是一个已知的问题。CocoaPods 官方网站上还有更多内容。

于 2015-09-22T17:56:02.977 回答
0

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

于 2017-10-05T20:07:32.170 回答
0

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

于 2020-10-22T22:52:27.450 回答