Linux中make安裝與卸載及注意事項(xiàng)小結(jié)
Linux安裝軟件采用源碼安裝靈活自由,適用于不同的平臺(tái),維護(hù)也十分方便。源碼的安裝一般由3個(gè)步驟組成:
- 配置(configure)
- 編譯(make)
- 安裝(make install)
具體的安裝方法一般作者都會(huì)給出文檔,這里說(shuō)明配置(configure)的prefix選項(xiàng)
以安裝supersparrow-0.0.0為例,我們打算把他安裝到目錄 /usr/local/supersparrow,于是在supersparrow-0.0.0目錄執(zhí)行帶選項(xiàng)的腳本
./configure –prefix=/usr/local/supersparrow
執(zhí)行成功后再編譯、安裝(make,make install);安裝完成將自動(dòng)生成目錄supersparrow,而且該軟件任何的文檔都被復(fù)制到這個(gè)目錄。為什么要指定這個(gè)安裝目錄?是為了以后的維護(hù)方便,假如沒(méi)有用這個(gè)選項(xiàng),安裝過(guò)程結(jié)束后,該軟件所需的軟件被復(fù)制到不同的系統(tǒng)目錄下,很難弄清楚到底復(fù)制了那些文檔、都復(fù)制到哪里去了—基本上是一塌糊涂。
用了—prefix選項(xiàng)的另一個(gè)好處是卸載軟件或移植軟件。當(dāng)某個(gè)安裝的軟件不再需要時(shí),只須簡(jiǎn)單的刪除該安裝目錄,就能夠把軟件卸載得干干凈凈;移植軟件只需拷貝整個(gè)目錄到另外一個(gè)機(jī)器即可(相同的操作系統(tǒng))。
一個(gè)小選項(xiàng)有這么方便的作用,建議在實(shí)際工作中多多使用。
注意
“configure --prefix=/” 的作用是:編譯的時(shí)候用來(lái)指定程序存放路徑 。
- 不指定prefix,可執(zhí)行文件默認(rèn)放在/usr/local/bin,庫(kù)文件默認(rèn)放在/usr/local/lib,配置文件默認(rèn)放在/usr/local/etc。其它的資源文件放在/usr/local/share。
- 指定prefix,直接刪掉一個(gè)文件夾就夠了。
還有關(guān)鍵的一點(diǎn)是,編譯安裝完成后,不要?jiǎng)h除源代碼,不然就算作者寫(xiě)了unnistall目標(biāo),你也沒(méi)有makefile可以執(zhí)行了。
使用 make 安裝和卸載軟件
安裝
用源碼包安裝,請(qǐng)?jiān)诎惭b的時(shí)候指定–prefix安裝目錄,另外安裝的時(shí)候請(qǐng)使用
make >& LOG_make &make install >& LOG_install &
用于保存安裝信息日志,這樣需要卸載的時(shí)候方便查看哪些文件安裝在了系統(tǒng)目錄中,例如/usr/lib下的庫(kù)文件。
注意:
在使用make install是要養(yǎng)成加–prefix的參數(shù)指定安裝路徑
卸載
make uninstall/distclean/veryclean
找一個(gè)臨時(shí)目錄重新安裝一遍。比如
./configure --prefix=/tmp/to_remove && make install
然后遍歷/tmp/to_remove里的文件,把原來(lái)安裝位置的文件都刪除。這樣的壞處是有些文件夾還可能刪除不了(分不清是系統(tǒng)的還是安裝上的)
make 命令說(shuō)明
makefile定義了一系列的規(guī)則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)?makefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令
先先看一下什么是makefile
makefile定義了一系列的規(guī)則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)?makefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。
makefile帶來(lái)的好處就是–“自動(dòng)化編譯”,一旦寫(xiě)好,只需要一個(gè)make命令,整個(gè)工程完全自動(dòng)編譯,極大的提高了軟件開(kāi)發(fā)的效率。make是一個(gè)命令工具,是一個(gè)解釋makefile中指令的命令工具,一般來(lái)說(shuō),大多數(shù)的IDE都有這個(gè)命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可見(jiàn),makefile都成為了一種在工程方面的編譯方法。
make
根據(jù)Makefile文件編譯源代碼、連接、生成目標(biāo)文件、可執(zhí)行文件。
make clean
清除上次的make命令所產(chǎn)生的object文件(后綴為“.o”的文件)及可執(zhí)行文件。
make install
將編譯成功的可執(zhí)行文件安裝到系統(tǒng)目錄中,一般為/usr/local/bin目錄。
make dist
產(chǎn)生發(fā)布軟件包文件(即distribution package)。這個(gè)命令將會(huì)將可執(zhí)行文件及相關(guān)文件打包成一個(gè)tar.gz壓縮的文件用來(lái)作為發(fā)布軟件的軟件包。
它會(huì)在當(dāng)前目錄下生成一個(gè)名字類(lèi)似“PACKAGE-VERSION.tar.gz”的文件。PACKAGE和VERSION,是我們?cè)赾onfigure.in中定義的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。
make distcheck
生成發(fā)布軟件包并對(duì)其進(jìn)行測(cè)試檢查,以確定發(fā)布包的正確性。這個(gè)操作將自動(dòng)把壓縮包文件解開(kāi),然后執(zhí)行configure命令,并且執(zhí)行make,來(lái)確認(rèn)編譯不出現(xiàn)錯(cuò)誤,最后提示你軟件包已經(jīng)準(zhǔn)備好,可以發(fā)布了。
make distclean
類(lèi)似make clean,但同時(shí)也將configure生成的文件全部刪除掉,包括Makefile文件。
make distclean 清空上次編譯失敗殘留文件
到此這篇關(guān)于Linux中make安裝與卸載及注意事項(xiàng)的文章就介紹到這了,更多相關(guān)Linux make安裝與卸載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux shell 之 提取文件名和目錄名的一些方法總結(jié)
本篇文章主要介紹了Linux shell 之 提取文件名和目錄名的一些方法總結(jié),具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01php-fpm開(kāi)機(jī)自動(dòng)啟動(dòng)Shell腳本
這篇文章主要介紹了php-fpm開(kāi)機(jī)自動(dòng)啟動(dòng)Shell腳本,本文腳本只是范例,其實(shí)你編譯安裝完成后,啟動(dòng)腳本已經(jīng)生成在編譯目錄中,只需要復(fù)制出來(lái)用就可以了,需要的朋友可以參考下2015-06-06linux shell 字符串操作(長(zhǎng)度,查找,替換)詳解
這篇文章主要介紹了linux shell 字符串操作(長(zhǎng)度,查找,替換)詳解,需要的朋友可以參考下2015-10-10CentOS7運(yùn)行.sh腳本提示syntax error: unexpected end of file的解決方法
這篇文章主要介紹了解決執(zhí)行腳本報(bào)syntax error: unexpected end of file或syntax error near unexpected token fi錯(cuò)誤的問(wèn)題,需要的朋友可以參考下2020-02-02Linux 壓縮某個(gè)文件夾的實(shí)現(xiàn)方法
這篇文章主要介紹了Linux 壓縮某個(gè)文件夾的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10Linux Shell腳本系列教程(三):變量和環(huán)境變量
這篇文章主要介紹了Linux Shell腳本系列教程(三):變量和環(huán)境變量,本文講解了普通變量、獲取字符串的長(zhǎng)度、環(huán)境變量等內(nèi)容,需要的朋友可以參考下2015-06-06