本人的mac環(huán)境:
- MacOS Catalina
- 終端為 zshell
一怒竿、安裝 Homebrew 過程
官網(wǎng)的下載地址你懂的报腔,所以我們使用國內(nèi)源就可以了俊啼,復制下面命令到終端
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
二、升級openssl
先看版本
openssl version
install openssl
brew install openssl
brew upgrade openssl
打開并寫入
open .zshrc
export PATH="/usr/local/opt/openssl/bin:$PATH"
執(zhí)行
source ~/.zshrc
再次查看
which openssl
openssl version
三速缆、到這里届宠,openssl就更新完成了求豫,下面安裝/更新rvm
Ruby Version Manager(RVM) 是一個命令行工具,可以提供一個便捷的多版本 Ruby 環(huán)境的管理和切換膨更。
ruby-china中的 rvm 相關(guān)
注意: 直接使用rvm官網(wǎng)的安裝方式, 會提示各種網(wǎng)絡錯誤, 這里用一個取巧的辦法
附上這位小伙伴給出的解決方案, 在此特別感謝
MacOS Catalina安裝CocoaPods時遇到rvm安裝報錯curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection
解決方案
- 瀏覽器打開
get.rvm.io
妙真,打不開的話就掛代理 -
cmd+A
復制全部內(nèi)容 - 命令行輸入
cd Desktop
進入桌面 - 輸入
touch install.sh
創(chuàng)建腳本文件 - 輸入
vim install.sh
打開編輯,粘貼進去荚守。切記不要從網(wǎng)頁直接導出文件然后改后綴 - 按下
Esc
退出編輯模式 - 按下
:wq
保存并退出 - 把
install.sh
文件拖入終端執(zhí)行珍德,如果提示Permission denied
權(quán)限問題就輸入chmod 777
然后拖入 install.sh 文件,然后再拖入一遍執(zhí)行 - 然后終端應該會顯示成功了, 執(zhí)行
source ~/.zshrc
, 最后輸入rvm -v
能出現(xiàn)版本號就成功了
四矗漾、使用 rvm 安裝 Ruby
安裝其他版本 Ruby 原因:
- 雖然 macOS 自帶了一個 ruby 環(huán)境锈候,但是是系統(tǒng)自己使用的,所以權(quán)限很小敞贡,只有 system泵琳。而/Library 目錄是 root 權(quán)限,所以很多會提示無權(quán)限。
- 使用自帶ruby更新, 管理不方便
- 一系列無原因的報錯
列出已知的 Ruby 版本
rvm list known
安裝最新的版本, 以 3.0.0 為例
rvm install 3.0.0
切換 Ruby 版本并設置為默認版本,這樣一來以后新打開的控制臺默認的 Ruby 就是這個版本
rvm use 3.0.0 --default
注意: 不設置為默認的話, 新開的終端可能會提示一個警告, 有警告強迫癥的小伙伴這里設置為默認即可
查詢已經(jīng)安裝的 ruby
rvm list
卸載一個已安裝版本
rvm remove 1.8.7
注意: 網(wǎng)上有小伙伴說最好不要刪除系統(tǒng)自帶的 ruby, 以免出現(xiàn)問題
ps:
/etc/profile:此文件為系統(tǒng)的每個用戶設置環(huán)境信息,當用戶第一次登錄時,該文件被執(zhí)行.
并從/etc/profile.d目錄的配置文件中搜集shell的設置.
/etc/bashrc:為每一個運行bash shell的用戶執(zhí)行此文件.當bash shell被打開時,該文件被讀取.
~/.bash_profile:每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該文件僅僅執(zhí)行一次!默認情況下,他設置一些環(huán)境變量,執(zhí)行用戶的.bashrc文件.
~/.bashrc:該文件包含專用于你的bash shell的bash信息,當?shù)卿洉r以及每次打開新的shell時該文件被讀取.
~/.bash_logout:當每次退出系統(tǒng)(退出bash shell)時,執(zhí)行該文件.
.zshrc 同理
五获列、更新升級 Gem 版本和安裝 CocoaPods
此部分轉(zhuǎn)自<Cocoapods使用教程>
替換ruby源
查看ruby源
gem sources -l
默認情況下谷市,終端會顯示下面:
*** CURRENT SOURCES ***
https://rubygems.org/
當然這個源在墻內(nèi)是訪問不到的,所以要更換到ruby-china的鏡像
- 移除掉原有的源
gem sources --remove https://rubygems.org/
- 淘寶的源已經(jīng)不更新維護了,現(xiàn)在使用ruby-china的源哦
gem source -a https://gems.ruby-china.com
- 驗證是否替換成功
gem sources -l
如果顯示下面輸出就說明正確:
*** CURRENT SOURCES ***
https://gems.ruby-china.com
更新升級 Gem 版本
Gem是管理Ruby庫和程序的標準包击孩,如果它的版本過低也可能導致安裝失敗迫悠,解決方案自然是升級Gem,執(zhí)行下述命令即可:
// 更新升級gem溯壶,國內(nèi)需要切換源
gem update --system
安裝 CocoaPods
CocoaPods是基于ruby ecosystem的及皂,需要ruby環(huán)境,使用ruby的gem命令且改。
gem install cocoapods
// MacOS 10.11以后用此命令
gem install -n /usr/local/bin cocoapods
如果出現(xiàn)以下錯誤:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/ffi/ffi.h:269:1: note: 'ffi_prep_closure' declared hereffi_prep_closure(^1 error generated.make: *** [Function.o] Error 1make failed, exit code 2
解決方法:刪除目錄下的 MacOSX10.14.sdk 即可
六验烧、使用 CocoaPods
pod install 等命令
如果出現(xiàn)以下錯誤:
LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 或者 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
解決方法:VPN開啟全局代理, 重新 pod install
七、卸載CocoaPods
查看 pod 路徑
which pod
卸載所有版本
gem uninstall cocoapods
查看 cocoapods 是否還有殘余內(nèi)容
gem list --local | grep cocoapods
如果顯示如下:
cocoapods-core (0.39.0)
cocoapods-downloader (0.9.3)
cocoapods-plugins (0.4.2)
可卸載 cocoapods 殘余內(nèi)容, 示例:
gem uninstall cocoapods-core
完結(jié), 撒花~~~~~~~
最后補充一些常用指令
ruby rvm
$ ruby -v # 查看ruby 版本
$ rvm list known # 列出已知的 ruby 版本
$ rvm install 2.3.0 # 選擇指定 ruby 版本進行更新
$ rvm get stable # 更新 rvm
$ rvm use 2.2.2 # 切換到指定 ruby 版本
$ rvm use 2.2.2 --default # 設置指定 ruby 版本為默認版本
$ rvm list # 查詢已安裝的 ruby 版本
$ rvm remove 1.9.2 # 卸載移除 指定 ruby 版本
$ curl -L https://get.rvm.io | bash -s stable # 安裝 rvm 環(huán)境
$ curl -sSL https://get.rvm.io | bash -s stable --ruby # 默認安裝 rvm 最新版本
$ curl -sSL https://get.rvm.io | bash -s stable --ruby=2.3.0 # 安裝 rvm 指定版本
$ source ~/.rvm/scripts/rvm # 載入 rvm
Gem
$ gem -v # 查看 gem 版本
$ gem source # 查看 gem 配置源
$ gem source -l # 查看 gem 配置源目錄
$ gem sources -a url # 添加 gem 配置源(url 需換成網(wǎng)址)
$ gem sources --add url # 添加 gem 配置源(url 需換成網(wǎng)址)
$ gem sources -r url # 刪除 gem 配置源(url 需換成網(wǎng)址)
$ gem sources --remove url # 刪除 gem 配置源(url 需換成網(wǎng)址)
$ gem update # 更新 所有包
$ gem update --system # 更新 Ruby Gems 軟件
$
$ gem install rake # 安裝 rake又跛,從本地或遠程服務器
$ gem install rake --remote # 安裝 rake碍拆,從遠程服務器
$ gem install watir -v 1.6.2 # 安裝 指定版本的 watir
$ gem install watir --version 1.6.2 # 安裝 指定版本的 watir
$ gem uninstall rake # 卸載 rake 包
$ gem list d # 列出 本地以 d 打頭的包
$ gem query -n ''[0-9]'' --local # 查找 本地含有數(shù)字的包
$ gem search log --both # 查找 從本地和遠程服務器上查找含有 log 字符串的包
$ gem search log --remoter # 查找 只從遠程服務器上查找含有 log 字符串的包
$ gem search -r log # 查找 只從遠程服務器上查找含有l(wèi)og字符串的包
$
$ gem help # 提醒式的幫助
$ gem help install # 列出 install 命令 幫助
$ gem help examples # 列出 gem 命令使用一些例子
$ gem build rake.gemspec # 把 rake.gemspec 編譯成 rake.gem
$ gem check -v pkg/rake-0.4.0.gem # 檢測 rake 是否有效
$ gem cleanup # 清除 所有包舊版本,保留最新版本
$ gem contents rake # 顯示 rake 包中所包含的文件
$ gem dependency rails -v 0.10.1 # 列出 與 rails 相互依賴的包
$ gem environment # 查看 gem 的環(huán)境
$
$ sudo gem -v # 查看 gem 版本(以管理員權(quán)限)
$ sudo gem install cocoa pods # 安裝 CocoaPods(以管理員權(quán)限)
$ sudo gem install cocoapods # 安裝 CocoaPods(以管理員權(quán)限)
$ sudo gem install cocoapods --pre # 安裝 CocoaPods 至預覽版(以管理員權(quán)限)
$ sudo gem install cocoapods -v 0.39.0 # 安裝 CocoaPods 指定版本(以管理員權(quán)限)
$ sudo gem update cocoapods # 更新 CocoaPods 至最新版(以管理員權(quán)限)
$ sudo gem update cocoapods --pre # 更新 CocoaPods 至預覽版(以管理員權(quán)限)
$ sudo gem uninstall cocoapods -v 0.39.0 # 移除 CocoaPods 指定版本(以管理員權(quán)限)
pod
1. pod setup
將所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目錄下,更新本地倉庫慨蓝。
2. pod repo update
執(zhí)行 pod repo update更新本地倉庫感混,本地倉庫完成后,即可搜索到指定的第三方庫礼烈,作用類似pod setup弧满。不過這個命令經(jīng)常不單獨調(diào)用。比如執(zhí)行pod setup此熬、pod search庭呜、pod install、pod update會默認執(zhí)行pod repo update
3. pod search xxx
查找某一個開源庫犀忱。查找開源庫之前募谎,默認會執(zhí)行pod repo update指令
4. pod list
列出所有可用的第三方庫.現(xiàn)在已經(jīng)2.4W+了.還在不斷地增長
5. pod install
會根據(jù)Podfile.lock文件中列舉的版本號來安裝第三方框架
如果一開始Podfile.lock文件不存在, 就會按照Podfile文件列舉的版本號來安裝第三方框架
安裝開源庫之前, 默認會執(zhí)行pod repo update指令
6. pod update
將所有第三方框架更新到最新版本, 并且創(chuàng)建一個新的Podfile.lock文件
安裝開源庫之前, 默認會執(zhí)行pod repo update指令
7. pod install --no-repo-update
8. pod update --no-repo-update
安裝開源庫之前, 不會執(zhí)行pod repo update指令