linux下如何使用configure/make/make install命令编译安装卸载程序
源碼的安裝一般由3個(gè)步驟組成:配置(configure)、編譯(make)、安裝(make install)。安裝成功的源碼就是所謂的可執(zhí)行文件,在你不需要的時(shí)候,也是可以刪除/卸載(remove/uninstall)的。下面就逐個(gè)進(jìn)行分析:
一、源碼的配置
配置命令就是configure命令。一般來說,configure文件是位于源碼根目錄下的一個(gè)可執(zhí)行的腳本文件,它有很多選項(xiàng),而且不同軟件的選項(xiàng)都不完全一致。可以在待安裝的源碼目錄下使用命令./configure –help可以輸出詳細(xì)的選項(xiàng)列表。
其中有一個(gè)通用的選項(xiàng),叫做–prefix選項(xiàng),目的是配置安裝目錄。
如果不配置該選項(xiàng),安裝后可執(zhí)行文件默認(rèn)放在/usr/local/bin,庫文件默認(rèn)放在/usr/local/lib,配置文件默認(rèn)放在/usr/local/etc,其它的資源文件放在/usr/local/share,比較凌亂。
如果你想統(tǒng)一存放,或者想指定到另外的一個(gè)路徑下,你可以人工配置–prefix參數(shù),如:
./configure --prefix=/usr/local/test那么,安裝后的所有資源文件都會(huì)被放在/usr/local/test目錄中,不會(huì)分散到其他目錄。
另外,使用–prefix選項(xiàng)的另一個(gè)好處是方便卸載軟件或移植軟件。當(dāng)某個(gè)安裝的軟件不再需要時(shí),只須簡(jiǎn)單的刪除該安裝目錄,就可以把軟件卸載得干干凈凈。
二、源碼的編譯
配置完畢之后,一般都會(huì)提示你,直接運(yùn)行make命令進(jìn)行編譯。此時(shí)你照做就好,程序就會(huì)開始自動(dòng)編譯。
有一個(gè)要注意的就是,考慮到目前的計(jì)算機(jī)一般都是多核的,如果你想人工加快程序的編譯速度,可以手工指定一個(gè)make命令的一個(gè)參數(shù)“-j8”或者“-j16”,后面的數(shù)字表示的就是用幾個(gè)核進(jìn)行編譯,數(shù)字越大,編譯速度越快。當(dāng)然,要說明的是,這里的編譯速度與內(nèi)核的個(gè)數(shù),并不是成正比的。而且,具體多少個(gè)任務(wù)同時(shí)執(zhí)行為佳,還需要根據(jù)具體的機(jī)器配置,任務(wù)數(shù)太多,反而效果不好。
比如我自己做過的一個(gè)linux內(nèi)核的編譯過程測(cè)試,使用不同的參數(shù)編譯的時(shí)間如下:
- 用make:40分16秒;
- 用make -j4:23分16秒;
- 用make -j8:22分59秒;
另外,這個(gè)方案不是完全沒有弊端的,如果項(xiàng)目的Makefile不規(guī)范,沒有正確的設(shè)置好依賴關(guān)系,并行編譯的結(jié)果就是編譯不能正常進(jìn)行。如果依賴關(guān)系設(shè)置過于保守,則可能本身編譯的可并行度就下降了,也不能取得最佳的效果。
三、程序的安裝
編譯完成之后,就是安裝。這里的安裝,其實(shí)就是把編譯出來的可執(zhí)行文件,以及一堆的頭文件和依賴庫,以及文檔資料等,按照linux系統(tǒng)約定的規(guī)則,拷貝到你事先指定的目錄下去。所以,與其叫安裝,其實(shí)就是一個(gè)拷貝的過程。
同樣,這里也有一點(diǎn)要說明的是,很多時(shí)候,手冊(cè)或者提示信息里都只是告訴你,執(zhí)行“make install”命令來進(jìn)行安裝。然而,你執(zhí)行了這個(gè)命令之后,往往會(huì)遇到一些錯(cuò)誤的提示。經(jīng)過一番排查之后,你會(huì)發(fā)現(xiàn),就是因?yàn)闄?quán)限不夠,導(dǎo)致文件拷貝失敗。于是,我建議你,最好養(yǎng)成一個(gè)習(xí)慣,每次在“make install”的命令前加上sudo的權(quán)限,如下:
sudo make install四、程序的卸載
當(dāng)然,要卸載程序,也可以在原來的make目錄下用一次make uninstall,但前提是Makefile文件有uninstall命令。
而如果你安裝時(shí)沒有配置–prefix選項(xiàng),源碼包也沒有提供make uninstall命令,則可以通過以下方式來卸載:
找到make install之后產(chǎn)生的這個(gè)文件install_manifest.txt
里面有安裝的所有東西的路徑,使用下述命令逐個(gè)刪除它們即可。
cat install_manifest.txt | sudo xargs rm總結(jié)
以上是生活随笔為你收集整理的linux下如何使用configure/make/make install命令编译安装卸载程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧盟已就动视暴雪交易案向微软发出反垄断警
- 下一篇: 玩转mini2440开发板之【64位Ub