圖片來(lái)源于網(wǎng)絡(luò)
問(wèn)題場(chǎng)景:
平常使用python安裝包時(shí),同時(shí)會(huì)用到gcc/g++造輪子進(jìn)行安裝,但當(dāng)我們?cè)诠酒髽I(yè)的服務(wù)器集群上進(jìn)行操作時(shí),我們一般都是非root用戶,無(wú)法對(duì)/bin或/lib目錄進(jìn)行更改,無(wú)法更新相應(yīng)文件夾下對(duì)應(yīng)軟件的鏈接。conda為我們提供了環(huán)境的隔離,如何為用戶配置conda內(nèi)下載的指定版本gcc呢?甚至做到多環(huán)境gcc/g++版本共存,在有需要時(shí)快速切換!
解決思路:
1.下載gcc/g++至conda環(huán)境
一般,通過(guò)conda下載gcc及g++可通過(guò)如下命令(在對(duì)應(yīng)的conda環(huán)境env中):
conda install -c moussi gcc_impl_linux-64
conda install -c moussi gxx_impl_linux-64
?當(dāng)需要下載指定版本時(shí),如下載8.4.0版本,我們可以在包名稱后加=<版本號(hào)>即可,如:
conda install -c moussi gcc_impl_linux-64=8.4.0
等待下載完成(可以加入-y參數(shù),這樣之后下載的過(guò)程中就不用輸入y同意繼續(xù)下載了)
這里可以用-y搭配nohup免于操心漫長(zhǎng)的下載過(guò)程。
2.配置環(huán)境變量
因?yàn)閏onda下載類似的內(nèi)容后會(huì)把對(duì)應(yīng)內(nèi)容的軟連接(可以理解為windows的快捷方式)添加至bin或lib目錄,我們需要將兩個(gè)目錄添加至環(huán)境變量:
# 這里假設(shè)你的conda環(huán)境(環(huán)境名稱yourEnv)路徑為 /custom/conda/envs/yourEnv/
# 如果是base環(huán)境則對(duì)應(yīng)?/custom/conda/
export PATH=/custom/conda/envs/yourEnv/bin/:$PATH
# gcc/g++在bin目錄下,有的下載會(huì)在lib目錄下
# 所以如果你想以conda作為你的整體環(huán)境,可以同時(shí)配置如下環(huán)境變量
export PATH=/custom/conda/envs/yourEnv/lib/:$PATH
一般用如下命令查看gcc/g++版本來(lái)檢驗(yàn)配置是否成功
gcc -v
g++ -v
# 你會(huì)發(fā)現(xiàn)他們輸出的都是gcc的版本,一般二者是版本相配的,所以輸出保持一致
你會(huì)發(fā)現(xiàn)是失敗的,還是老的gcc/g++,這里是較難發(fā)現(xiàn)的地方!被conda坑了
因?yàn)閏onda下載后的gcc/g++并不以gcc/g++命名,而是有如下對(duì)應(yīng):
gcc: x86_64-conda-linux-gnu-cc
g++:?x86_64-conda-linux-gnu-c++
因?yàn)闆](méi)發(fā)現(xiàn)這個(gè),在此卡了很久(因?yàn)槠匠V恍枰砑覲ATH環(huán)境變量即可)
所以我們可以用如下命令再新建軟連接,這樣gcc/g++才能被你識(shí)別到,否則你就需要輸入一長(zhǎng)串來(lái)執(zhí)行了!
x86_64-conda-linux-gnu-cc -v
而python之類的所用的命令是gcc/g++,而不是這一長(zhǎng)串,所以必須配置新的軟連接!保證名字是gcc/g++!
3.為gcc/g++建立軟連接(坑)
建立軟連接命令(${bin}代表你的conda環(huán)境bin目錄):
# cd轉(zhuǎn)至你conda下載gcc/g++的bin目錄,通過(guò)pwd獲得目錄路徑賦值
bin=`pwd`
# 或者使用????????bin=你的bin目錄路徑
ln -s ${bin}/x86_64-conda-linux-gnu-cc ${bin}/gcc
ln -s ${bin}/x86_64-conda-linux-gnu-c++ ${bin}/g++?# ln -s <源文件路徑> <建立軟連接路徑>?
至此配置完畢,若你的export PATH配置正確,再次調(diào)用gcc -v
你會(huì)發(fā)現(xiàn)這樣就配置完成了!?
4.export PATH添加至.bashrc
為了避免每次SSH登錄都需要重復(fù)配置PATH,可以將如下代碼添加至你的用戶目錄的.bashrc啟動(dòng)文件中,通過(guò) vim ~/.bashrc 打開編輯,添加如下內(nèi)容即可:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-775873.html
export PATH=你的conda環(huán)境路徑/bin/:你的conda環(huán)境路徑/lib/:$PATH文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-775873.html
到了這里,關(guān)于Linux系統(tǒng) 利用conda更改gcc、g++版本(非root用戶)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!