[英]Repair Rubygems Sources - MacOS Catalina - XCode 12 - Install Cocoapods
簡短而甜蜜:我最近升級到 MacOS Catalina 和 Xcode 12,這破壞了我的 cocoapods 安裝。 嘗試修復可能會導致需要重新安裝完整的操作系統(或 Xcode?)。 我無法獲得 rubygems 以允許任何源提供者。 我希望避免完全重新安裝操作系統或 Xcode。
長版:升級到 MacOS Catalina 和 Xcode 12 后,我為本地項目安裝的 cocoapods 產生了
Pod failure for arm64 (ArcGIS):
ld: building for iOS Simulator, but linking in dylib built for iOS, file '/<removed>/Pods/ArcGIS-Runtime-SDK-iOS/ArcGIS.framework/ArcGIS' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
嘗試使用gem install cocoapods
重新gem install cocoapods
產生了:
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
我嘗試了用戶和根級別的權限。 這讓我遇到了面對問題 - 錯誤的解釋器:在 MAC 上使用 pod 更新時沒有這樣的文件或目錄
從那里,我最終手動升級了 rubygems。 升級到 3.1.4 后,我再次嘗試安裝 cocoapods:
02:56:46$ sudo gem install cocoapods
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - no such name (https://rubygems.org/specs.4.8.gz)
這導致了“他們仍在使用 TLS 1/SSLv3”的錯誤路徑,請在https://stackoverflow.com/a/51015358和https://stackoverflow.com/a/19179835執行以下操作。 使用我自己的openssl s_client -connect rubygems.org:443
測試后,我確定 SSLv3/TLSv1 問題已得到解決。 無論如何,我在我的 /etc/hosts 設置中為 rubygems.org 強制添加了 IPv4 條目並刪除了https://rubygems.org/源鏈接以放入不安全的http://rubygems.org/以進行更新。 這是中斷:我不知道如何強制它允許我重新添加https://rubygems.org/源,甚至是不安全的http://rubygems.org/源
請參閱以下終端輸出,其中顯示我可以從 rubygems.org 完全訪問 specs.4.8.gz(無網絡問題)並且無法重新添加源鏈接:
Desktop 04:08:17$ curl -s -o specs.4.8.gz https://rubygems.org/specs.4.8.gz
Desktop 04:08:32$ ls | grep specs
specs.4.8.gz
Desktop 04:08:37$ gem sources -l
*** CURRENT SOURCES ***
Desktop 04:08:54$ gem sources -a https://rubygems.org
https://rubygems.org is too similar to https://rubygems.org
Do you want to add this source? [yn] y
Error fetching https://rubygems.org:
no such name (https://rubygems.org/specs.4.8.gz)
Desktop 04:09:02$ gem sources -a https://rubygems.org/
https://rubygems.org/ is too similar to https://rubygems.org
Do you want to add this source? [yn] y
Error fetching https://rubygems.org/:
no such name (https://rubygems.org/specs.4.8.gz)
Desktop 04:09:15$ gem sources -l
*** CURRENT SOURCES ***
Desktop 04:15:57$ gem sources -a http://rubygems.org/
https://rubygems.org is recommended for security over http://rubygems.org/
Do you want to add this insecure source? [yn] y
http://rubygems.org/ is too similar to https://rubygems.org
Do you want to add this source? [yn] y
Error fetching http://rubygems.org/:
no such name (http://rubygems.org/specs.4.8.gz)
Desktop 04:19:00$ gem sources -l
*** CURRENT SOURCES ***
Desktop 04:19:06$ ping rubygems.org
PING rubygems.org (151.101.128.70): 56 data bytes
64 bytes from 151.101.128.70: icmp_seq=0 ttl=57 time=29.700 m
Desktop 04:21:00$ ls -alrt | grep spec
-rw-r--r-- 1 <removed> staff 4254166 Oct 13 16:08 specs.4.8.gz
我對這個問題感到困惑
沒有這樣的名字( https://rubygems.org/specs.4.8.gz )
鑒於我有能力使用 curl 毫無問題地拉動它。 我嘗試從我的/etc/hosts
位置刪除 IPv4 條目,在我的無線中禁用 IPv6,在我的無線中啟用 IPv6。 我根本無法強制 rubygems 重新啟用https://rubygems.org/源。
版本:
Desktop 04:15:16$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
Desktop 04:15:19$ gem --version
3.1.4
Desktop 04:15:23$ gem sources -l
*** CURRENT SOURCES ***
Desktop 04:15:30$ gem install cocoapods
ERROR: Could not find a valid gem 'cocoapods' (>= 0) in any repository
Desktop 04:15:53$ uname -a
Darwin <Removed>.local 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64 x86_6
我最后一次修復嘗試(到目前為止)是再次重新安裝 rubygems。
rubygems-3.1.4 04:29:28$ ruby setup.rb
ERROR: While executing gem ... (Errno::EROFS)
Read-only file system @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem
rubygems-3.1.4 04:29:30$ sudo ruby setup.rb
Password:
ERROR: While executing gem ... (Errno::EROFS)
Read-only file system @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem
所以現在,我什至不能重新安裝 ruby gems,更不用說重新添加 rubygems.org 源了。
使用rvm重新安裝Ruby,並重新安裝Xcode並遇到同樣的問題后,我終於想通了。 我並沒有意識到 root 正在工作,而我的本地用戶卻沒有。 問題是我已斷開與公司網絡的連接以進行安裝,但仍配置為在本地用戶中使用公司代理設置,而不是在 root 中。
基本上,撤消https://stackoverflow.com/a/48824738/14444903 中的設置
vi ~/.gemrc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.