开始的时候,我仅想升级一下cocoapods的版本,由于我xcode报三十多个类似警告,说第三方找不到相应文件,我看cocoapods版本有1.0.1,而我使用的依旧是1.0.0的老版本。
当我升级cocoapods时,须要使用gem来更新cocoapods,那么我就终端输入命令:gem install cocoapods,但是终端提示我没有权限来改动一个文件,我觉得是个人权限不够,就使用了管理员权限,sudo gem install cocoapods,但是系统依然提示我:就算你升级了权限,也不建议修改系统使用的rubygem,也建议我,若是非要更改,那么还要升级权限root级别。大学学过Linux系统,root是最高权限了,你均可以删除系统文件,更能够本身给本身删除掉,且是不可恢复的,或不易恢复的,我以为为了一个cocoapods不必冒那么大风险。
我就开始查找有关rubygem相关资料,首先要知道是干啥的啊,其实也没查懂,大致知道是系统用来管理软件包的安装和升级等一系列问题的。你们也都了解Mac电脑的系统OS X系统就是Linux的衍生体,硬盘是没有像windows的分区概念的,因此软件管理和文件管理要较先进一点,解放了手工管理。rubygem正是代替咱们管理的一种智能工具。但是工具也是会升级的,并且OS X系统是会自带一个ruby的,此ruby也正是以前提示我不要轻易修改的那个ruby,但是我不更改,我就升级不了cocoapods,因此必需要升级ruby。
通过了解,ruby也不是一棒子打死的,是个很灵活的管理软件,一个电脑能够安装多个版本ruby,为何会这样呢。由于软件的升级是不一样步的,维护的投入更不同,一个软件升级了,他须要ruby提升管理软件的效能,那么ruby升级了,可是有的软件没升级,而且依然依赖于以前老版本的ruby,因此就有了多版本ruby的问题,也拥有了版本切换功能,那么这么多的高级经理,由咱们人类管理吗?若是是这样,就能够回归到windows算了,文件和软件都管理不来,还让我管理他们的老大,这不是扯淡吗?
rvm就是管理这些大佬的,我以前不懂rvm,更不知道这东西有啥用呢,只是从各类安装升级的过程当中,先驱们的指引,那么我就检查。OS X被我发现一个至关有意思的功能,若是你安装了cocoapods,那么你就在终端直接输入pod+回车,就会输出基本使用信息,若是你安装了rubygem(简称gem),那么你就简单输入gem+回车,一样输出基本使用信息。我用相似方法,检查是否安装rvm,我在终端输入rvm+回车,然而终端并无输出有关信息,那么给个人感受就是,我电脑并无安装这个管理大佬的牛掰。
安装的过程很顺利,任意找了一个博客就安装成功了,rvm+回车,有了信息了,那么我使用经常使用软件查看rvm管理的rubygem版本:rvm list known输出说我没有安装。
此处要说一下,也多是我理解错误,由于我使用rvm list命令就显示了当前可以使用的全部ruby版本,因此我怀疑,这个牛掰好像也仅管理ruby,并无论理其余的什么东西,此处也是疑问点,求大神斧正。
当我查到有ruby的哪些版本后,我就选择了一个较新的版本,rvm install 2.3.0,结果等了一下下就报错了,让我检车brew update是否能正常运行?我就想,brew update又是什么鬼?这里不谈了,由于我确实也不懂。
此时就一直报错,我要将错误代码贴出来,由于这货困扰我两天了,没整过去,还害得我安装了太多brew的什么软件,各类brew install xxxx,觉得有用呢,嗨。。。然并卵!
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.11/x86_64/ruby-2.3.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system.......
Error running 'requirements_osx_brew_update_system ruby-2.3.0',
showing last 15 lines of /Users/DuQ/.rvm/log/1471488521_ruby-2.3.0/update_system.log
https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.'
++ rvm_pretty_print stderr
++ case "${rvm_pretty_print_flag:=auto}" in
++ case "${TERM:-dumb}" in
++ case "$1" in
++ [[ -t 2 ]]
++ return 1
++ printf %b 'Failed to update Homebrew, follow instructions here:
https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.\n'
Failed to update Homebrew, follow instructions here:
https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.
++ return 1
Requirements installation failed with status: 1.
我能够直接在这里继续说吗?我解决了,那开心,无以言表啊!
其实这也表明了我之后解决问题方向,不能彻底的遇到啥问题就去百度相关关键字,应该认真的看问题的描述,歪果仁都在问题里写了相关的,可是我仍是去相信Google和百度是真的,我要自信!!!
上边写了“brew update”,可是我以前不知道brew是啥东西,因此就不敢贸然更改,觉得这个brew是否是跟rvm同样,是一个牛掰管理大佬的东西,相似于小红帽与360管家和QQ电脑管家同样呢,一样的功能,可是工具不一样,要是真是这样,可不是好现象,不但他们打官司不说,也影响用户使用这才是最主要的事。
可是后来我仍是选择相信我本身,去碰硬骨头,啃下brew update来。brew的更新可不容,找他的资料但是找了至关久的,最后在一篇最近的文档发现了,就一句话sudo chown -R $(whoami) /usr/local,救命稻草啊!
这段话输入后,brew就能够更新了,全部问题都迎刃而解了,什么rvm安装ruby啊,什么gem安装cocoapods啊,通盘杀!杀杀杀!!!话说秒杀的感受真好。
写在后面:
此次有两点收获:
一个是遇到问题,先认真的看问题,虽然都是英文,先大致分析一下,而不是抓住几个词汇猛搜;
另外一个,Linux最大的现象就是,他没有输出就是最好的输出,千万别拿起自行车的内心和技巧来骑三轮车,觉得卡死了?no no no,人家在好好运行,别轻易关闭终端。
贴出几篇大神解决问题的链接: