2013-04-17 72 views
47

这是短版:的CocoaPods吊舱安装许可被拒绝

当我在Xcode项目运行

pod install 

我得到

[!] 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,因为没有它,我得到了

ERROR: While executing gem ... (Gem::FilePermissionError)

You don't have write permissions into the /Library/Ruby/Gems/1.8 directory.

所以我现在的CocoaPods的根安装版本下载根拥有的Xcode库。

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

如果正常,有没有办法解决吊舱安装问题?

回答

93

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

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

sudo chown -R username:groupname ~/.cocoapods 

请与您的Mac登录用户名/组名替换usernamegroupname

+0

请注意,您需要将所有权转让给-R和〜文件名 – lehn0058

+0

至@ lehn0058之间的用户名,我很抱歉缺少用户名参数。 – jianpx

+5

取决于你的团队,你可以不说。 sudo chown -R myusername〜/ ... – horseshoe7

4

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

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

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

+1

感谢您的快速回答,我没有找到周围工作,CHOWN用户〜/ .cocoapod /主/ git的/ FETCH_HEAD,这使我的问题消失了,但我会考虑rbenv或RVM解决方案 – godzilla

+1

为我的快速解决方法我也必须更改〜/库/ Caches/CocoaPods/GitHub的权限,现在它可以工作,但仍然是一个破解 – godzilla

+1

要清楚,除非您使用Ruby管理器,否则您需要使用sudo来安装gem。您所遇到的其他问题并不是预期的,可能是由运行'sudo pod setup'或'sudo pod install'引起的。 – Fabio

19

我只用了(其中username是您的Mac登录用户名)

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

sudo chown -R username ~/.cocoapods 

,当我试图与groupName参数,我得到了

chown: username.groupname: illegal user name 

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

+2

+1这是一个救生员。 – iwasrobbed

+2

我已通过删除〜/ Library/Caches/CocoaPods中的内容解决了该问题,然后转到项目目录和pod install –

11

删除的目录为我工作:

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

如果还存在一些其他问题。

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

Cocoapods只是再次添加目录。

+0

最佳解决方案,刚与我合作:) – Abo3atef

+0

'〜/ Library/Caches/CocoaPods/GitHub'不存在。 – Raptor

+0

你有哪个CocoaPods版本? –

4

由于在我的一些项目中安装CocoaPods时遇到的所有错误,我终于成功地找到了一个模式。那就是:从终端

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

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

    $ touch podfile 
    $ open -e podfile 
    
  3. 创建podfile后,通过搜索访问它并在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文件夹中显示为子文件夹。

编码愉快:)

0

快速,方便,哈克解决方案:

sudo chmod -R 777 ~/.cocoapods 
sudo chmod -R 777 ~/Library/Caches/CocoaPods 
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是确定的。