2019-07-12 ./configure、make放钦、make install 命令

這些都是典型的使用GNU的AUTOCONF和AUTOMAKE產(chǎn)生的程序的安裝步驟

一北秽、基本信息

1、./configure?是用來檢測你的安裝平臺的目標(biāo)特征的最筒。比如它會檢測你是不是有CC或GCC贺氓,并不是需要CC或GCC,它是個shell腳本床蜘。

2辙培、make?是用來編譯的,它從Makefile中讀取指令邢锯,然后編譯扬蕊。

  3、make install是用來安裝的丹擎,它也從Makefile中讀取指令尾抑,安裝到指定的位置。

注意:AUTOMAKE和AUTOCONF是非常有用的用來發(fā)布C程序的東西蒂培。

二再愈、詳細(xì)解釋

  1、configure命令

  這一步一般用來生成 Makefile护戳,為下一步的編譯做準(zhǔn)備翎冲,你可以通過在 configure 后加上參數(shù)來對安裝進(jìn)行控制,比如代碼:./configure –prefix=/usr 意思是將該軟件安裝在 /usr 下面媳荒,執(zhí)行文件就會安裝在 /usr/bin (而不是默認(rèn)的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認(rèn)的/usr/local/share)抗悍。同時一些軟件的配置文件你可以通過指定 –sys-config= 參數(shù)進(jìn)行設(shè)定驹饺。有一些軟件還可以加上 –with、–enable缴渊、–without赏壹、–disable 等等參數(shù)對編譯加以控制,你可以通過允許 ./configure –help 察看詳細(xì)的說明幫助衔沼。

  2卡儒、make

  這一步就是編譯,大多數(shù)的源代碼包都經(jīng)過這一步進(jìn)行編譯(當(dāng)然有些perl或python編寫的軟件需要調(diào)用perl或python來進(jìn)行編譯)俐巴。如果 在 make 過程中出現(xiàn) error ,你就要記下錯誤代碼(注意不僅僅是最后一行)硬爆,然后你可以向開發(fā)者提交 bugreport(一般在 INSTALL 里有提交地址)欣舵,或者你的系統(tǒng)少了一些依賴庫等,這些需要自己仔細(xì)研究錯誤代碼缀磕。

可能遇到的錯誤:make *** 沒有指明目標(biāo)并且找不到 makefile缘圈。 停止。問題很明了袜蚕,沒有Makefile糟把,怎么辦,原來是要先./configure?一下牲剃,再make遣疯。

  3、make insatll

這條命令來進(jìn)行安裝(當(dāng)然有些軟件需要先運(yùn)行 make check 或 make test 來進(jìn)行一些測試)凿傅,這一步一般需要你有 root 權(quán)限(因?yàn)橐蛳到y(tǒng)寫入文件)缠犀。

三、擴(kuò)展說明

  Linux的用戶可能知道聪舒,在Linux下安裝一個應(yīng)用程序時辨液,一般先運(yùn)行腳本configure,然后用make來編譯源程序箱残,在運(yùn)行make install滔迈,最后運(yùn)行make clean刪除一些臨時文件。使用上述三個自動工具被辑,就可以生成configure腳本燎悍。運(yùn)行configure腳本,就可以生成Makefile文件盼理,然后就可以運(yùn)行make间涵、make install和make clean。

configure是一個shell腳本榜揖,它可以自動設(shè)定源程序以符合各種不同平臺上Unix系統(tǒng)的特性勾哩,并且根據(jù)系統(tǒng)叁數(shù)及環(huán)境產(chǎn)生合適的Makefile文件或是C的頭文件(header file)抗蠢,讓源程序可以很方便地在這些不同的平臺上被編譯連接。

  這時思劳,就可運(yùn)行configure腳本了迅矛,運(yùn)行configure腳本,就可產(chǎn)生出符合GNU規(guī)范的Makefile文件了: $ ./configure

到此時潜叛,就可以運(yùn)行make進(jìn)行編譯秽褒,在運(yùn)行make install進(jìn)行安裝了,最后運(yùn)行make clean刪除臨時文件威兜。

$ make$ make install(注:運(yùn)行這個要有足夠的權(quán)限)$ make clean

  利用configure所產(chǎn)生的Makefile文件有幾個預(yù)設(shè)的目標(biāo)可供使用销斟,其中幾個重要的簡述如下:

  make all:產(chǎn)生我們設(shè)定的目標(biāo),即此范例中的可執(zhí)行文件椒舵。只打make也可以蚂踊,此時會開始編譯原始碼,然后連結(jié)笔宿,并且產(chǎn)生可執(zhí)行文件犁钟。

  make clean:清除編譯產(chǎn)生的可執(zhí)行文件及目標(biāo)文件(object file,*.o)泼橘。

  make distclean:除了清除可執(zhí)行文件和目標(biāo)文件外涝动,把configure所產(chǎn)生的Makefile也清除掉。

  make install:將程序安裝至系統(tǒng)中炬灭。如果原始碼編譯無誤醋粟,且執(zhí)行結(jié)果正確,便可以把程序安裝至系統(tǒng)預(yù)設(shè)的可執(zhí)行文件存放路徑重归。如果用bin_PROGRAMS宏的話昔穴,程序會被安裝至/usr/local/bin這個目錄。

  make dist:將程序和相關(guān)的檔案包裝成一個壓縮文件以供發(fā)布提前。執(zhí)行完在目錄下會產(chǎn)生一個以PACKAGE-VERSION.tar.gz為名稱的文件吗货。 PACKAGE和VERSION這兩個變數(shù)是根據(jù)configure.in文件中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定義狈网。在此范例中會產(chǎn)生test-1.0.tar.gz的檔案宙搬。

  make distcheck:和make dist類似,但是加入檢查包裝后的壓縮文件是否正常拓哺。這個目標(biāo)除了把程序和相關(guān)文件包裝成tar.gz文件外勇垛,還會自動把這個壓縮文件解開,執(zhí)行 configure士鸥,并且進(jìn)行make all 的動作闲孤,確認(rèn)編譯無誤后,會顯示這個tar.gz文件可供發(fā)布了烤礁。這個檢查非常有用讼积,檢查過關(guān)的包肥照,基本上可以給任何一個具備GNU開發(fā)環(huán)境-的人去重新編譯。

當(dāng)我們在使用make命令時勤众,常常會在make后面加上其他單詞舆绎,比如check,install们颜,installcheck…這些單詞都是make的參數(shù)吕朵,我們稱之為“目標(biāo)(targets)”。

最常見的幾個目標(biāo):

make all:編譯程序窥突、庫努溃、文檔等(等同于make)

make install:安裝已經(jīng)編譯好的程序。復(fù)制文件樹中到文件到指定的位置

make unistall:卸載已經(jīng)安裝的程序阻问。

make clean:刪除由make命令產(chǎn)生的文件

make distclean:刪除由./configure產(chǎn)生的文件

make check:測試剛剛編譯的軟件(某些程序可能不支持)

make installcheck:檢查安裝的庫和程序(某些程序可能不支持)

make dist:重新打包成packname-version.tar.gz

總結(jié):

linux源碼安裝軟件梧税,一般下載源碼包得到文件:xxxx.tgz

====================================

1、解包軟件

tar zxf xxxx.tgz

====================================

2则拷、配置

cd xxxx

./configure ....

====================================

3、編譯

make

====================================

4曹鸠、安裝

make install

====================================

5煌茬、卸載

make uninstall

====================================

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市彻桃,隨后出現(xiàn)的幾起案子坛善,更是在濱河造成了極大的恐慌,老刑警劉巖邻眷,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眠屎,死亡現(xiàn)場離奇詭異,居然都是意外死亡肆饶,警方通過查閱死者的電腦和手機(jī)改衩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驯镊,“玉大人葫督,你說我怎么就攤上這事“寤螅” “怎么了橄镜?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長冯乘。 經(jīng)常有香客問我洽胶,道長,這世上最難降的妖魔是什么裆馒? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任姊氓,我火速辦了婚禮丐怯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘他膳。我一直安慰自己响逢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布棕孙。 她就那樣靜靜地躺著舔亭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蟀俊。 梳的紋絲不亂的頭發(fā)上钦铺,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機(jī)與錄音肢预,去河邊找鬼矛洞。 笑死,一個胖子當(dāng)著我的面吹牛烫映,可吹牛的內(nèi)容都是我干的沼本。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼锭沟,長吁一口氣:“原來是場噩夢啊……” “哼抽兆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起族淮,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤辫红,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后祝辣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贴妻,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年蝙斜,在試婚紗的時候發(fā)現(xiàn)自己被綠了名惩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡孕荠,死狀恐怖绢片,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岛琼,我是刑警寧澤底循,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站槐瑞,受9級特大地震影響熙涤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一祠挫、第九天 我趴在偏房一處隱蔽的房頂上張望那槽。 院中可真熱鬧,春花似錦等舔、人聲如沸骚灸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甚牲。三九已至,卻和暖如春蝶柿,著一層夾襖步出監(jiān)牢的瞬間丈钙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工交汤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雏赦,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓芙扎,卻偏偏與公主長得像星岗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子戒洼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容