歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> tarball方式編譯安裝及升級-make、patch

tarball方式編譯安裝及升級-make、patch

日期:2017/3/1 16:36:13   编辑:關於Linux
tarball方式編譯安裝及升級-make、patch 1、概念: 原碼進行編譯成二進制機構可執行程序,先要make與偵測程序一般是config一起生成編譯連接文件makefile,再由makefile編譯成可執行文件。 Tarball其實是原碼的tar打包與壓縮的包。 rpm是指linux商家幫你編譯好了,省去了長時間編譯而發布的包,但不同類型的系統就不能用。 www.2cto.com 函數庫即提供外部調用的,有點像dll。 2、gcc,是C語句的編譯器,一般是先編譯成目標文件,再連結成一個可執行文件。 3、make可以方便進行編譯,因為它把要編譯的命令及順序都寫到makefile這個文件裡了。 www.2cto.com 4、makefile文件放在程序的原碼裡的一級目錄,它的語法: [root@www ~]# vi makefile LIBS = -lm #這是變量 OBJS = main.o haha.o sin_value.o cos_value.o CFLAGS = -Wall main: ${OBJS} gcc -o $@ ${OBJS} ${LIBS} <==那個 $@ 就是 main !$@ 代表目前的標的(target) clean: rm -f main ${OBJS} #標的:有相關性原代碼文件 #第二行開頭要tab一下,這一行就是執行的命令,如腳本命令 5、具體目錄規則如下: a、最好將 tarball 的原始資料解壓縮到 /usr/local/src 當中; b、安裝時,最好安裝到 /usr/local 這個預設路徑下; c、考慮未來的反安裝步驟,最好可以將每個軟體單獨的安裝在 /usr/local 底下; d、為安裝到單獨目錄的軟體之 man page 加入 man path 搜尋:如果你安裝的軟體放置到 /usr/local/software/ ,那麼 man page 搜尋的設定中,可能就得要在 /etc/man.config 內的 40~50 行左右處,寫入如下的一行: MANPATH /usr/local/software/man 這樣才可以使用 man 來查詢該軟體的線上文件啰! 6、偵測配置程序./configure --help ,可以查看支持參數及說明 一般有的參數是安裝到哪個目錄的參數:--prefix=/path 7、一般的步驟(以ntp為例): cd /usr/local/src tar -zxvf /root/ntp-4.2.4p7.tar.gz cd ntp-4.2.4p7/ cat INSTALL ./configure --help | more ./configure --prefix=/usr/local/ntp make clean; make make check #此步如果不檢測也行 make install 8、原碼進行更新升級: a、cat ~/main_0.1_to_0.2.patch #查看第一行它的相對目錄是什麼樣的 b、用patch -p數字 < patch_file進行更新,這裡的數字表示舊的目錄要去掉幾個/,如果不去則用patch -p1 < patch_file,要根據a步來判斷。如main-0.1/xxx 與 main-0.2/xxx 進行對比,而你現在就在main-0.1目錄下,那麼可以這樣patch -p1 < ../main_0.1_to_0.2.patch c、一般會發布更新包,以.patch為後綴,且會標明從什麼版本到什麼版本,不能跨多版本升級的,要順序升級,如跨了多個更新包,則要把之前的更新包一個個更新 d、make clean; make make check #此步如果不檢測也行 make install 如果報錯,可能就需要執行一下./configure,patch只是更新了有變化的原代碼而已。 e、如果 patch 錯誤呢?我們的 patch 是可以還原的啊!透過patch -R < ../main_0.1_to_0.2.patch 即可。(main_0.1_to_0.2.patch只是個例子)
Copyright © Linux教程網 All Rights Reserved