/usr/local/lib/ruby/gems/2.4.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:118:in `git_version'

问题及分析

今天做项目的时候,执行pod update报了如下错误信息:

/usr/local/lib/ruby/gems/2.4.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:118:in git_version': Failed to extract git version fromgit --version("xcrun: error: active developer path (\"/Users/feiwei/Desktop/Xcode.app/Contents/Developer\") does not exist\nUsesudo xcode-select --switch path/to/Xcode.appto specify the Xcode that you wish to use for command line developer tools, or usexcode-select --installto install the standalone command line developer tools.\nSeeman xcode-select` for more details.\n") (RuntimeError)

粗略一看,应该是找不到git。为什么找不到?首先,有可能没有安装git;其次,可能是关联路径不对。

解决方案

1.没有安装git
可以在终端执行:xcode-select --install。如果你的电脑系统更新了,有可能这个命令解决不了你的问题,那么,这时候需要到git官网下载安装,下载链接https://git-scm.com/download/mac。

2.关联路径不对
这个问题可以使用命令:sudo xcode-select --switch /Users/feiwei/Downloads/Xcode.app,其实这个命令就是指定Xcode的安装目录。如果你不知道安装路径,或者不想用命令,Xcode -->Preferences–>Locations并选择Command Line Tools,看看是否选择了当前Xcode版本。

步骤一

步骤二

简书:https://www.jianshu.com/u/fa72e27b5006
优快云:https://blog.youkuaiyun.com/xiaocaoyu111

扫描二维码关注公众号

PS:本文原创发于微信公众号longyoung,关注并回复「51电子书」免费领取程序员必读经典电子书。

<think>好的,我现在需要帮助用户解决在macOS中使用ln命令链接libssl时出现的“Permission denied”问题。首先,我应该回想一下常见的权限问题解决方法。用户提到的是使用ln命令时权限被拒绝,这可能是因为目标目录(比如/usr/local/lib)需要管理员权限才能写入。 首先,用户可能需要使用sudo来提升权限。比如,在命令前加上sudo,这样以管理员身份执行。比如sudo ln -s ...。但用户可能已经尝试过这样,或者有其他问题,比如目录的所有权问题。 另外,SIP(System Integrity Protection)在macOS中可能会限制对某些系统目录的修改,即使使用sudo也不行。这时候可能需要暂时禁用SIP,但这是比较危险的操作,应该作为最后的手段,或者建议用户将库安装到用户有权限的目录,比如/usr/local/lib本身应该是可以通过Homebrew管理的,可能用户没有正确安装openssl或者路径错误。 还有可能是目标目录的权限设置不正确,用户可能需要检查/usr/local/lib的权限,确保当前用户有写入权限。可以使用ls -l /usr/local/lib查看权限,如果需要的话,用chmod更改权限,但这也可能需要sudo。 另外,参考用户提供的引用,比如引用[2]和[3]中提到的是创建软链接到/usr/local/lib,而用户可能没有正确指定路径或者库的版本不对。比如,openssl@1.1的路径是否正确?需要确认openssl安装的位置,比如通过brew --prefix openssl@1.1来获取正确路径,然后创建软链接。 还有可能用户之前安装过不同版本的openssl,导致冲突。需要确保使用的是正确的版本,并且路径正确。同时,检查是否已经存在同名的文件或链接,可能需要先删除旧的链接,再重新创建。 此外,引用[5]提到SELinux的问题,但macOS使用的是SIP而不是SELinux,不过类似的安全机制可能阻止操作。如果用户遇到Operation not permitted,可能需要检查SIP状态,并考虑是否被系统限制。 总结可能的解决方案步骤: 1. 使用sudo执行ln命令,确保有足够的权限。 2. 确认目标目录的权限,可能需要用chmod修改。 3. 检查openssl的安装路径是否正确,确保软链接的源路径存在。 4. 如果存在旧的链接,先删除它们。 5. 考虑将库安装到用户目录,避免系统目录的权限问题。 6. 如果所有方法失败,检查SIP是否启用,并考虑暂时禁用(需谨慎)。 需要将这些步骤以清晰的方式呈现给用户,同时结合用户提供的引用中的方法,比如引用[2]和[3]的具体命令,指导用户正确创建软链接。</think>### macOS中解决libssl链接权限问题的步骤 #### 1. 使用`sudo`提升权限 大部分系统目录(如`/usr/local/lib`)需要管理员权限才能修改。在命令前添加`sudo`: ```bash sudo ln -s /实际路径/libssl.dylib /usr/local/lib/libssl.dylib ``` 若提示密码,请输入管理员密码[^1][^2][^3]。 --- #### 2. 验证openssl安装路径 确认openssl的安装路径是否正确。通过Homebrew安装时,可使用: ```bash brew --prefix openssl@1.1 # 输出类似/usr/local/opt/openssl@1.1 ``` 然后使用实际路径创建软链接: ```bash sudo ln -s $(brew --prefix openssl@1.1)/lib/libssl.dylib /usr/local/lib/libssl.dylib ``` 同理处理`libcrypto.dylib`[^3]。 --- #### 3. 修复目标目录权限 检查`/usr/local/lib`的权限: ```bash ls -ld /usr/local/lib ``` 若权限不足(非`rwxr-xr-x`),通过`chmod`调整: ```bash sudo chmod 755 /usr/local/lib ``` --- #### 4. 删除冲突的旧链接 若已存在同名文件或链接,先删除: ```bash sudo rm -f /usr/local/lib/libssl.dylib ``` 再重新执行`ln`命令[^3]。 --- #### 5. 使用用户目录避免权限问题 若无法修改系统目录,可将库链接到用户目录(如`~/lib`),并通过环境变量指定路径: ```bash mkdir -p ~/lib ln -s /实际路径/libssl.dylib ~/lib/libssl.dylib export LIBRARY_PATH=$HOME/lib:$LIBRARY_PATH ``` --- #### 6. 检查系统完整性保护(SIP) 若仍提示`Operation not permitted`,可能是SIP限制。 - 查看SIP状态: ```bash csrutil status ``` - 若启用,需重启进入恢复模式,执行: ```bash csrutil disable ``` 完成后重新启用SIP(**谨慎操作**)[^5]。 --- ### 示例完整命令流程 ```bash # 确认openssl路径 OPENSSL_PATH=$(brew --prefix openssl@1.1) # 删除旧链接 sudo rm -f /usr/local/lib/libssl.dylib /usr/local/lib/libcrypto.dylib # 创建新链接 sudo ln -s $OPENSSL_PATH/lib/libssl.dylib /usr/local/lib/libssl.dylib sudo ln -s $OPENSSL_PATH/lib/libcrypto.dylib /usr/local/lib/libcrypto.dylib ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值