- 問題背景
- 解決方法
- 總結
閱讀之前注意:
本文閱讀建議用時:15min
本文閱讀結構如下表:
項目 | 下屬項目 | 測試用例數量 |
---|---|---|
問題背景 | 無 | 0 |
解決方法 | 無 | 1 |
總結 | 無 | 0 |
問題背景
把Mac升級到了最新版系統(macOS Catlina 10.15.3)後,似乎之前安裝的cocoaPods就用不了了。於是嘗試重新安裝。
直接終端輸入指令:sudo gem install cocoapods,結果安裝錯誤,提示如下:
可以看到有3處提示:
- mkmf.rb can’t find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/include/ruby.h
這裏提示無法獲取到ruby的頭文件。 - You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.
這裏提示可能的解決方法是重新安裝ruby開發環境。 - Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/ffi-1.12.2/gem_make.out
這裏提示錯誤日誌已經記錄在gem_make.out這個文件裏,可以從finder中直接前往查看。
解決方法
根據安裝錯誤的提示,我查看了自己Mac的環境,首先檢查了自己是否有安裝ruby,終端命令行輸入ruby -v即可,如下圖。
可以看出我是安裝了ruby的,而且是2.6版本。
然後網上1 搜索怎麼安裝ruby開發環境,知道了rvm(ruby version manager),於是我輸入了下一條指令:curl -L https://get.rvm.io | bash -s stable來安裝rvm。哈!沒想到,原來我就有安裝這個rvm的!
接着輸入指令:source ~/.rvm/scripts/rvm,進入RVM 環境。
然後在rvm環境中查詢已經安裝的ruby,即輸入指令:rvm list,這一次不得了!
可以看出這裏提示是沒有安裝ruby環境!
現在可以知道,ruby(命令行ruby -v可以查詢到)和rvm我都已經安裝,那麼問題出在哪裏呢?
是的,問題就在於,rvm環境中無法查詢到安裝的ruby環境!至於這裏應該是Apple的失誤,還是rvm的失誤,或者是我的失誤,那就不清楚了。
這樣一來,解決方法就很簡單了,直接在rvm中安裝ruby環境即可,由於我的ruby是2.6版本的,於是我選擇安裝ruby 2.6開發環境。
這裏的安裝時間非常漫長,和網絡狀況和CPU都有關,反正我是安裝了一個下午和一個晚上(期間還會莫名其妙失去連接,又得再次安裝…)😂
第二天,我終於愉快的安裝上了cocoapods。
安裝cocoapods還有一點注意,cocoapods是通過gem來安裝的,安裝前要切換一下gem的安裝源,打開終端:
先輸入 gem sources -r https://rubygems.org/ 移除默認安裝源;
然後輸入 gem sources --add https://gems.ruby-china.com/ 添加國內的安裝源。(PS:可以捐助下國內維持這個源的人員,瀏覽器可以直接訪問這個網址的)
另外可以通過 gem sources -l 指令來查看安裝源。
總結
安裝cocoapods,有幾個前提:1. 安裝ruby 2. 安裝rvm 3. 在rvm環境下安裝ruby開發環境 4. 記得切換gem的安裝源。我個人猜測,有第3點,第一點就不需要了。
如果本文對你有幫助,不如請我一罐可樂吧 🍺