Linux源码安装包快速升级方法
Linux系統(tǒng)中更新用源碼包安裝的軟件,除了卸載重裝這種方法外,還可以下載補(bǔ)丁文件更新源碼包,用新的源碼包重新編譯安裝軟件。使用補(bǔ)丁文件更新源碼包,省去了用./configured生成新的Makefile文件,還省去了大量編譯工作,因此效率更高。
一、Linux補(bǔ)丁文件的生成和使用
Linux系統(tǒng)中可以使用diff命令對比出新舊軟件的不同,并生成補(bǔ)丁文件。
diff命令基本格式:[root@localhost ~]# diff 選項(xiàng) old new? #比較old和new文件的不同
此命令中可使用如下幾個(gè)選項(xiàng):
-a:將任何文檔當(dāng)做文本文檔處理
-b:忽略空格造成的不同
-B:忽略空白行造成的不同
-l:忽略大小寫造成的不同
-N:當(dāng)比較兩個(gè)目錄時(shí),如果某個(gè)文件只在一個(gè)目錄中,則在另一個(gè)目錄中視作空文件
-r:當(dāng)比較目錄時(shí),遞歸比較子目錄
-u:使用同一輸出格式
從生成補(bǔ)丁文件,到使用其實(shí)現(xiàn)更新軟件的目的,為了讓讀者清楚地了解整個(gè)過程的來龍去脈,下面我們自己創(chuàng)建兩個(gè)文件(分別模擬舊軟件和新軟件),通過對比新舊文件生成補(bǔ)丁文件,最后利用補(bǔ)丁文件更新舊文件,具體步驟如下:
這里對 -pn 選項(xiàng)的使用做一下額外說明。我們知道,補(bǔ)丁文件是要打入舊文件的,但是當(dāng)前所在目錄和補(bǔ)丁文件中記錄的目錄不一定是匹配的,需要 "-pn" 選項(xiàng)來同步兩個(gè)目錄。
例如,當(dāng)前位于 "/root/test/" 目錄下(要打補(bǔ)丁的舊文件就在當(dāng)前目錄下),補(bǔ)丁文件中記錄的文件目錄為 "/root/test/dd.txt",如果寫入 "-p1"(在補(bǔ)丁文件目錄中取消一級目錄),那么補(bǔ)丁文件會打入 "root/test/root/test/old.txt" 文件中,這顯然是不對的;如果寫入的是 "-p2"(在補(bǔ)丁文件目錄中取消二級目錄),補(bǔ)丁文件會打入 "/root/test/test/old.txt" 文件中,這顯然也不對。如果寫入的是 "-p3"(在補(bǔ)丁文件目錄中取消三級目錄),補(bǔ)丁文件會打入 "/root/test/old.txt" 文件中,old.txt 文件就在這個(gè)目錄下,所以應(yīng)該用 "-p3" 選項(xiàng)。
如果當(dāng)前所在目錄是 "/root/" 目錄呢?因?yàn)檠a(bǔ)丁文件中記錄的文件目錄為 "/root/test/old.txt",所以這里就應(yīng)該用 "-p2" 選項(xiàng)(代表取消兩級目錄),補(bǔ)丁打在當(dāng)前目錄下的 "test/old.txt" 文件上。
因此,-pn 選項(xiàng)可以這樣理解,即想要在補(bǔ)丁文件中所記錄的目錄中取消幾個(gè) "/",n 就是幾。去掉目錄的目的是和當(dāng)前所在目錄匹配。
? 現(xiàn)在更新 "old.txt" 文件,命令如下: [root@localhost test]# patch -p3 < txt.patch patching file old.txt #給old.txt文件打補(bǔ)丁 [root@localhost test]# cat old.txt #查看一下dd.txt文件的內(nèi)容 our school is lampbrother in Beijing #多出了in Beijing兩行 可以看到,通過使用補(bǔ)丁文件 txt.patch 對舊文件進(jìn)行更新,使得舊文件和新文件完全相同。
通過這個(gè)例子,大家要明白以下兩點(diǎn):
原文:Linux源碼包快速升級方法詳解
配置yum:Linux配置yum源(本地源和網(wǎng)絡(luò)源) - 墨魚菜雞 - 博客園
總結(jié)
以上是生活随笔為你收集整理的Linux源码安装包快速升级方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git 忽略一些文件的提交
- 下一篇: CPDA项目数据分析师和CDA数据分析师