写在前面
最近自己的Mac电脑升级了最新的系统macOS HighSierra,因手贱修改了etc/sudos文件,导致coopods无法更新,没有根权限。
采坑开始
更改了/etc/sudoers文件,导致终端下执行sudo指令就会出现如下错误
sudo: /etc/sudoers is owned by uid 501, should be 0
sudo: no valid sudoers sources found, quitting
- 解决方案:
- 首先需要重启电脑,在黑屏的时候就长按,Command + S 组合键。重启后需要输入开机密码。
- 进入Root模式,经过一系列长长的滚动代码后,按回车,输入:
sbin/fsck -fy
按回车 - 接着输入:
mount -uw /
按回车 - 接着输入:
chown root:wheel /etc/sudoers
按回车 - 再输入:
chmod 440 /etc/sudoers
按回车 - 最后输入:
reboot
- 输入完就重启系统了,这时就可以恢复sudo权限了
继续采坑
升级coopods:
-
步骤
- 查看当前Ruby版本
ruby -v
- 升级Ruby环境,首先需要安装rvm
curl -L get.rvm.io | bash -s stable source ~/.bashrc source ~/.bash_profile
- 查看rvm版本
rvm -v
- 列出ruby可安装的版本信息
rvm list known
- 安装一个ruby版本
rvm install 2.4.1
- 更换源(将https://ruby.taobao.org源更换为https://gems.ruby-china.com)
- 查看源
gem sources -l
gem sources --remove https://ruby.taobao.org/ gem sources -a https://gems.ruby-china.com
- 再次查看源,验证你的Ruby镜像是并且仅是ruby-china
gem sources -l
- 如果是以下结果说明正确
*** CURRENT SOURCES *** https://gems.ruby-china.com
- 开始安装CocoaPods
sudo gem install -n /usr/local/bin cocoapods
- 安装本地库(这个过程是耗时操作,看网速)
pod setup
- 接着在终端是如下信息
Updating local specs repositories $ /usr/bin/git -C /Users/songchenxin/.cocoapods/repos/master fetch origin --progress remote: Counting objects: 726189, done. remote: Compressing objects: 100% (238/238), done. remote: Total 726189 (delta 94156), reused 94075 (delta 94075), pack-reused 631865 Receiving objects: 100% (726189/726189), 127.52 MiB | 5.32 MiB/s, done. Resolving deltas: 100% (492999/492999), completed with 10322 local objects. From https://github.com/CocoaPods/Specs a8bc0d29f33..fd9a7a3e078 master -> origin/master * [new branch] backz -> origin/backz * [new branch] swift_version_support -> origin/swift_version_support $ /usr/bin/git -C /Users/songchenxin/.cocoapods/repos/master rev-parse --abbrev-ref HEAD master $ /usr/bin/git -C /Users/songchenxin/.cocoapods/repos/master reset --hard origin/master HEAD is now at fd9a7a3e078 [Add] YVBanner 1.0 warning: inexact rename detection was skipped due to too many files. CocoaPods 1.6.0.beta.1 is available. To update use: `sudo gem install cocoapods --pre`
- 按照提示信息输入:
sudo gem install cocoapods --pre
- 重点来了:可能会看到这样的错误信息:
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why: Unable to download data from https://ruby.taobao.org/ - bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)
- 解决方法:就是ruby镜像源的问题,按照上面的步骤更新就好了
看了网上的一些安装教程,参差不齐的,特别是关于更换ruby镜像源的操作命令,总有人写错,导致更换镜像源不成功。我自己亲自安装一遍,按照这个步骤来操作,就不会有问题了
还有一个关于coopods使用过程中的一个问题:如图
导致会发生这个问题的原因是:
执行 pod update的时候报这个错, 意思是说你的Podfile文件找不到项目在哪里
[!] Could not automatically select an Xcode project. Specify one in your Podfile like so:
xcodeproj 'path/to/Project.xcodeproj'
// 解决办法,打开编辑Podfile文件
// 告诉它你的项目文件在哪里
xcodeproj 'path/to/Project.xcodeproj' 也就是加上这句 'path/to/Project.xcodeproj' 这个是你项目的路径