企業(yè)注冊在哪個網(wǎng)站申請網(wǎng)絡(luò)營銷的發(fā)展現(xiàn)狀及趨勢
文章目錄
- 前言
- 開發(fā)環(huán)境
- 問題描述
- 問題分析
- 解決方案
- 最后
前言
公司新到一臺電腦需要配置開發(fā)環(huán)境,在用RVM安裝Ruby時遇到了一個奇怪的問題。
開發(fā)環(huán)境
- RVM: 1.29.12
- OpenSSL: 3.1.1
問題描述
執(zhí)行命令安裝Ruby 3.0版本:
rvm install ruby-3.0.0
在編譯階段出現(xiàn)報錯:
ruby-3.0.0 - #compiling - please wait
Error running '__rvm_make -j10',
please read /Users/xxx/.rvm/log/1688010549_ruby-3.0.0/make.logThere has been an error while running make. Halting the installation.
問題分析
這個問題看起來有點熟悉,有點像以前遇到過的問題,不過那是在安裝最新Ruby版本的時候遇到的:
Error running ' CFLAGS=-O3 ...',
please read /Users/xxx/.rvm/log/1679388668_ruby-3.2.1/configure.log
There has been an error while running configure. Halting the installation.
雖然報錯內(nèi)容不一樣,但是也沒找到什么好的解決辦法。姑且一試這個問題的解決方法:
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl`
不出意外,還是報一樣的錯誤。找來自己使用的電腦和新電腦進行開發(fā)環(huán)境對比,RVM版本是一致的,不過新電腦上的OpenSSL的版本竟然是當前最新的3.1.1
版本:
OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023)
OpenSSL不是我主動安裝的,應(yīng)該是用HomeBrew安裝某個軟件時因為依賴了OpenSSL而自動安裝的。那么是因為OpenSSL的版本導致的報錯嗎?
先用HomeBrew安裝一個1.1
版本的OpenSSL:
brew install openssl@1.1
安裝成功后,指定OpenSSL的版本重新執(zhí)行安裝Ruby的命令:
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl@1.1`
結(jié)果還是不行,我懷疑指定的OpenSSL版本可能沒生效,于是干脆通過brew uninstall openssl
命令把最新版本的OpenSSL卸載了,再次執(zhí)行上面的命令一切正常🎉!
經(jīng)測試,當安裝有最新版的OpenSSL(brew list
中顯示openssl@3
)時,Ruby 3.0怎么安裝都不成功,但是Ruby 3.2.1版本可以安裝成功。
解決方案
如果不局限于安裝Ruby 3.0版本,那么可以通過安裝更高的Ruby版本解決該問題,可以參考這篇文章RVM - 安裝最新Ruby版本。
如果一定要安裝Ruby 3.0版本,請安裝1.1
版本的OpenSSL,并卸載最新版本,同時指定使用HomeBrew安裝的OpenSSL完成安裝:
- 安裝
1.1
版本的OpenSSL
brew install openssl@1.1
- 卸載最新版本的OpenSSL
brew uninstall openssl
- 指定使用HomeBrew安裝的OpenSSL完成安裝
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl`
如果不想卸載最新版本,可以通過brew link
命令切換(鏈接)openssl
的版本完成安裝:
- 安裝
1.1
版本的OpenSSL
brew install openssl@1.1
- 切換OpenSSL的版本為
1.1
brew link --overwrite openssl@1.1
--overwrite
參數(shù)的作用是強制切換。如果不使用該參數(shù),可以先執(zhí)行brew unlink openssl
命令后再執(zhí)行brew link openssl@1.1
命令完成切換。
- 指定使用HomeBrew安裝的OpenSSL完成安裝
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl@1.1`
實測這里需要指定OpenSSL的版本為1.1
,不然還是會報錯。補充一點,如果想知道當前使用的OpenSSL是什么版本,可以通過openssl version
命令查看。
最后
如果這篇文章對你有所幫助,請不要吝嗇你的點贊👍加星🌟,謝謝~