mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/... ...

996.icu LICENSE

  • 問題背景
  • 解決方法
  • 總結

閱讀之前注意:

本文閱讀建議用時:15min
本文閱讀結構如下表:

項目 下屬項目 測試用例數量
問題背景 0
解決方法 1
總結 0

問題背景

把Mac升級到了最新版系統(macOS Catlina 10.15.3)後,似乎之前安裝的cocoaPods就用不了了。於是嘗試重新安裝。
直接終端輸入指令:sudo gem install cocoapods,結果安裝錯誤,提示如下:
在這裏插入圖片描述
可以看到有3處提示:

  1. 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的頭文件。
  2. You might have to install separate package for the ruby development
    environment, ruby-dev or ruby-devel for example.
    這裏提示可能的解決方法是重新安裝ruby開發環境。
  3. 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點,第一點就不需要了。
如果本文對你有幫助,不如請我一罐可樂吧 🍺
在這裏插入圖片描述


  1. 如何在Mac OS X上安裝 Ruby運行環境

    ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章