cocoapods 无法 升级 repo 无法执行pod install命令
首先MAC自带了ruby,他是用rvm 管理的, 如果你用homebrew又安装了一个新版,很可能在升级cocoapods时遇到问题,明明自己用homebrew升级到最新版本了,页配置环境变量了,为什么还是无法升级cocoapods?
因为系统默认还是用
要用到一个气泡显示器,用了git上面的一个第三方库
执行pod install 命令报错:
$ pod install
Analyzing dependencies
[!] Unable to satisfy the following requirements:
- `LFKit/Component/LFBubbleView` required by `Podfile`
None of your spec sources contain a spec satisfying the dependency: `LFKit/Component/LFBubbleView`.
You have either:
* out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
* mistyped the name or version.
* not added the source repo that hosts the Podspec to your Podfile.
Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.
然后,我按照提示输入命令:
$pod update --verbose
Update all pods
Preparing
Updating local specs repositories
Updating spec repo `master`
[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
后面还吐了一大堆,
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-core-1.3.1/lib/cocoapods-core/github.rb:105:in `rescue in modified_since_commit'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-core-1.3.1/lib/cocoapods-core/github.rb:100:in `modified_since_commit'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-core-1.3.1/lib/cocoapods-core/source.rb:445:in `unchanged_github_repo?'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-core-1.3.1/lib/cocoapods-core/source.rb:334:in `update'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/sources_manager.rb:88:in `block (2 levels) in update'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/user_interface.rb:64:in `section'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/sources_manager.rb:87:in `block in update'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/sources_manager.rb:86:in `each'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/sources_manager.rb:86:in `update'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:237:in `block in update_repositories'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:235:in `each'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:235:in `update_repositories'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:150:in `block in resolve_dependencies'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/user_interface.rb:64:in `section'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:149:in `resolve_dependencies'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:116:in `install!'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/command/update.rb:81:in `run'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/lib/cocoapods/command.rb:52:in `run'
/Users/username/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.3.1/bin/pod:55:in `<top (required)>'
/Users/username/.rvm/rubies/ruby-2.4.1/bin/pod:23:in `load'
/Users/username/.rvm/rubies/ruby-2.4.1/bin/pod:23:in `<main>'
主要意思是说,要么你网络有问题,要么是GitHub挂了。
pod update 命令执行不成功,自然无法更新最新的 cocoapods 库索引了。
从提示信息上看,我的ruby 是 2.4.1, cocoapods 版本是1.3.1,算是比较新的了。
最后发现是Github在不久之前的2018年2月23号移除了一些低加密标准协议,包括TLSv1/TLSv1.1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,相关链接在这里:Weak cryptographic standards removed, 看GitHub的官方公告。
stackoverflow上已经有了解决方法:大致流程是:
$ which openssl
/usr/bin/openssl
$ openssl version
OpenSSL 0.9.8zh 14 Jan 2016
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew update
$ brew install openssl
$ brew upgrade openssl
`` If you need to have this software first in your PATH run: echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ which openssl
/usr/local/opt/openssl/bin/openssl
$ openssl version
OpenSSL 1.0.2n 7 Dec 2017
$ brew install rbenv ruby-build
//这里可能 会跟你自己安装ruby的方式冲突,请看文章最后, 建议用 rvm 就用rvm, 用rbenv 就卸载rvm 再安装 rbenv,二选一
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv install --list
Available versions:
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
:
2.5.0-rc1
2.5.0
2.6.0-dev
:
$ rbenv install 2.5.0
$ rbenv versions
* system (set by /Users/username/.rbenv/version)
2.5.0
$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
$ rbenv global 2.5.0
但是我按照这些方法还是不行,原因可能是,我安装或升级pods时用的是 rvm管理的,再次升级安装,它会自动用用ruby 2.4.1 。而不会用brew安装的 2.5.1 。
使用命令:$ ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
发现确实是 bash 引用的还是 ruby 2.4.1
最后我觉得应该把 rvm 管理的系统ruby升级:
安装rvm
列出ruby可安装版本 rvm list known
安装一个需要的ruby版本 rvm install 2.5.0
$ brew upgrade openssl
但是在
rvm install 2.5.0 命令执行过程中发现, 他自动 升级了homebrew, 然后升级了 openssl到1.1 总之,这个 github加密升级的东西是搞定了。
Updating Homebrew...
==> Upgrading 3 outdated packages, with result:
coreutils 8.28_1 -> 8.29, openssl@1.1 1.1.0f -> 1.1.0h, automake 1.15.1 -> 1.16.1
==> Upgrading openssl@1.1
==> Downloading https://homebrew.bintray.com/bottles/openssl@1.1-1.1.0h.high_sie
######################################################################## 100.0%
==> Pouring openssl@1.1-1.1.0h.high_sierra.bottle.tar.gz
CocoaPods 1.5.0 is available.
To update use: `sudo gem install cocoapods`
For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.5.0
Pod installation complete! There are 11 dependencies from the Podfile and 11 total pods installed.
还有一个问题, 在不同的 bash 命令里,假如在一个terminal里ruby没升级,另一个升级了,发现 $ruby --version 显示的ruby的不一样:
关于ruby 多版本的问题以后再做探讨,似乎有一个管理多版本ruby的第三方库。
cocoapods 无法 升级 repo 无法执行pod install命令的更多相关文章
- iOS 开发】解决使用 CocoaPods 执行 pod install 时出现 - Use the `$(inherited)` flag ... 警告
公司项目在执行 pod install 的时候总是出现很多黄色的警告,因为是警告并不会影响项目的正常编译,一直没有在意,但是总是有很多警告看起来很不舒服,于是就花了点时间解决掉了,下面将解决方法记录下 ...
- 利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库)
利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库),完成预期的任务,大致有下面几步: 1.代码提交到github平台 2.创建.podspec 3. ...
- 请使用管理员权限执行pip install命令
重要的事情说三遍! 请使用管理员权限执行pip install命令 请使用管理员权限执行pip install命令 请使用管理员权限执行pip install命令 踩坑记录 当时一切还是从一题Misc ...
- IDEA -01 -忽略指定文件夹 -防止加载Vue-cli执行"npm install"命令后的项目时卡死
问题描述 Vue的"npm install" 命令执行后,会生成一个很大的目录层次的"node_modules",文件十分繁多; idea加载这个项目下的文件夹 ...
- jenkins执行 pod install 报错 CocoaPods requires your terminal to be using UTF-8 encoding. Consider adding the following to ~/.profile:
错误提示是: CocoaPods 需要终端使用utf-8编码 解决办法
- Xcode9,cocoaPod执行pod install时报错,一行命令即可解决。
- eclipse执行maven install命令时跳过test
在pom.xml里面配置一下代码,将跳过test. <plugins> <plugin> <groupId>org.apache.maven.plugins< ...
- pod install vs pod update
Podfile文件,Podfile.lock文件 Podfile文件:指定依赖库的版本规则 Podfile.lock文件:记录当前工程中使用的依赖库的版本号 pod install会去安装podfil ...
- CocoaPods pod install/pod update更新慢的问题
CocoaPods pod install/pod update 最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing d ...
随机推荐
- Python--Redis实战:第四章:数据安全与性能保障:第7节:非事务型流水线
之前章节首次介绍multi和exec的时候讨论过它们的”事务“性质:被multi和exec包裹的命令在执行时不会被其他客户端打扰.而使用事务的其中一个好处就是底层的客户端会通过使用流水线来提高事务执行 ...
- ceph 的 bufferlist
bufferlist是buffer::list的别名,其由来在 http://bean-li.github.io/bufferlist-in-ceph/ 中有非常详细的介绍 其p.p_off.off字 ...
- System.SerializableAttribute
System.SerializableAttribute 串行化是指存储和获取磁盘文件.内存或其他地方中的对象.在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原 ...
- linux每日命令(2):cd命令
1.命令格式: cd [目录名] 2.命令功能 切换当前目录至 [目录名] 3. 常用范例 1.进入系统根目录 命令: cd / 说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到 ...
- 【九天教您南方cass 9.1】 09 提取坐标的几种方法
同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取测量空间中. [点击索取cass教程]5元立得 (给客服说暗号:“ ...
- 【转】详解在visual studio中使用git版本系统(图文)
http://blog.csdn.net/wojilu/article/details/6976230 很多人已经在使用git(或正在转移到git上),在github.com上,也看到不少国内同学的开 ...
- 【转】搭建Java版WebService
原文地址:http://www.cnblogs.com/jasoncc/archive/2011/12/22/2296052.html Hi,大家好! 今天主要和大家分享,如何搭建一个Web服务,做A ...
- 大数据基础篇----jvm的知识点归纳-5个区和垃圾回收机制
一直对jvm看了又忘,忘了又看的.今天做一个笔记整理存放在这里. 我们先看一下JVM的内存模型图: 上面有5个区,这5个区干嘛用的呢? 我们想象一个场景: 我们有一个class文件,里面有很多的类的定 ...
- python中,如何将字符串转换为数字(将数字转换为整型),字符串的10转换为整型的10,10.5转换为10
说明: 在实际的应用过程中,有的时候可能会遇到字符串的10,需要将字符串的10转换为数字的10 在此记录下,通过int函数转换的过程. 操作过程: 1.将字符串转换为整型的10 >>> ...
- Web上传文件的原理及实现
现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload.还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2 ...