版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> RHEL6 軟件包的安裝與管理 </p><p><b> 學(xué)習(xí)目標(biāo):</b></p><p> 了解linux執(zhí)行文件的種類</p><p> 學(xué)習(xí)傳統(tǒng)方法安裝、管理軟件包</p><p> 學(xué)習(xí)通過rpm來安裝、管理軟件包</p><p> 學(xué)習(xí)yum服務(wù)器的配
2、置,安裝管理軟件包</p><p> 首先我們來介紹linux下的可執(zhí)行文件的種類</p><p> 在redhat enterprise linux中執(zhí)行命令,大部分室執(zhí)行文件。執(zhí)行文件可以分如下種類</p><p> 程序(program)</p><p> 程序一種存儲cpu指令的機器碼的特殊文件,由于存儲在程序文件中得極其指令
3、都是采用二進(jìn)制編碼,直接交給cpu執(zhí)行。所以我們習(xí)慣陳可執(zhí)行文件為二進(jìn)制文件。</p><p> 一般來說程序執(zhí)行的速度比較快,。但是最大缺點室程序文件無法在不同的cpu中執(zhí)行</p><p> 鏈接庫(library)</p><p> 鏈接庫與程序類似,也是一個存儲機器碼的二進(jìn)制文件;但鏈接庫與程序文件的不同之處在于,程序文件會存儲執(zhí)行進(jìn)入點。所以linu
4、x系統(tǒng)會知道從哪里開始執(zhí)行文件的內(nèi)容;而連接庫則沒有存儲執(zhí)行進(jìn)入點得信息,因而無法直接啟動redhat linux中得鏈接庫</p><p> 腳本(script)</p><p> 腳本就是以文本的格式存儲要cpu執(zhí)行的命令。支持腳本類型的程序語言都會提供一個編譯器(interpruter)程序。每次執(zhí)行一個腳本時,redhatlinux都會吧腳本中的命令交由編譯器,轉(zhuǎn)譯成cpu可以
5、執(zhí)行的機器碼,然后才讓cpu去執(zhí)行這些機器碼。</p><p> 通常情況下腳本的好處就是平臺無關(guān)性,只要你得機器提供適當(dāng)?shù)木幾g器,就可以直接執(zhí)行腳本,缺點就是執(zhí)行速度遠(yuǎn)遠(yuǎn),慢于程序文件。</p><p> 產(chǎn)生機機器命令的方法</p><p> 為了讓cpu可以順利的執(zhí)行高級語言開發(fā)出來的應(yīng)用軟件,必須把高級語言的轉(zhuǎn)譯成機器碼,這個動作成為編譯,而負(fù)責(zé)執(zhí)行編
6、譯工作的程序就成為complier(編譯器)</p><p><b> 編譯的幾個步驟:</b></p><p> 檢查成語代碼的正確性</p><p> 把程序代碼轉(zhuǎn)換成為機器碼</p><p> 程序代碼中如果使用其他鏈接庫的機器碼,則將其鏈接</p><p> 產(chǎn)生操作系統(tǒng)的相關(guān)信
7、息</p><p> 存儲為可執(zhí)行文件。其中不管理員較為密切的可能是連接程序庫的這個動作</p><p><b> 鏈接:</b></p><p> 鏈接室指把存儲在鏈接庫中得機器碼存儲在程序中,這樣開發(fā)人員就不用重復(fù)編寫相同的程序代碼以加快程序的開發(fā)速度。鏈接分為兩種:動態(tài)鏈接和靜態(tài)鏈接</p><p><
8、b> 靜態(tài)鏈接:</b></p><p> 在進(jìn)行鏈接時,把執(zhí)行程序執(zhí)行期間需要用到的機器碼復(fù)制到可執(zhí)行文件中,這種鏈接方法稱為金泰鏈接“static link”.靜態(tài)鏈接而成的程序有如下幾個特性:1、產(chǎn)生的執(zhí)行文件體積龐大:使用靜態(tài)鏈接產(chǎn)生的程序必須吧所有用到的機器碼復(fù)制一份出來,存儲在執(zhí)行文件中,這樣使程序文件的體積比較龐大。</p><p> 2、執(zhí)行時需
9、要較多的空間:在程序執(zhí)行時加載程序文件需要更多的空間。</p><p> 3、可以獨立使用:靜態(tài)鏈接的程序已經(jīng)存儲了程序執(zhí)行期間所需的機器碼,不會因為某些鏈接庫不存在或者版本不符合而無法執(zhí)行。</p><p><b> 動態(tài)鏈接:</b></p><p> 在進(jìn)行鏈接時,編譯器不會把鏈接庫的機器碼復(fù)制到程序文件中,而只是存儲執(zhí)行文件執(zhí)行時
10、需要的鏈接庫,該鏈接庫的版本,以及函數(shù)的符號等信息。當(dāng)執(zhí)行這個程序時,便可以根據(jù)執(zhí)行文件中所記錄的鏈接信息,加載所需要的鏈接庫以及機器碼。這樣的鏈接方式就稱為dynamic link 動態(tài)鏈接。</p><p><b> 動態(tài)鏈接的特性:</b></p><p> 體積?。菏褂脛討B(tài)鏈接產(chǎn)生的執(zhí)行文件,因為只需要存儲機器碼的信息,所以執(zhí)行文件的體積小。</p&
11、gt;<p> 需要內(nèi)存空間少:由于動態(tài)鏈接執(zhí)行文件小,所以執(zhí)行這個程序需要的內(nèi)存空間就少</p><p> 無法獨立使用:執(zhí)行動態(tài)鏈接而成的程序時,會依賴所需要的鏈接庫。如果兩臺機器上得鏈接庫信息不一致,就會使執(zhí)行文件無法在另外一臺機器上執(zhí)行</p><p> 查尋執(zhí)行文件的鏈接方法</p><p> 如果想知道某個程序的鏈接方式,我們可以使
12、用file來查看,file查詢到一個文件時,會顯示該程序的文件中得機器碼和鏈接方法等信息;如果是statically linked就是靜態(tài),如果顯示dynamic linked就是動態(tài)</p><p><b> 下面來看一個例子</b></p><p> 這個信息就是顯示的/bin/ls 采用elf格式,存儲者64位lsb標(biāo)準(zhǔn)執(zhí)行文件采用動態(tài)鏈接庫</p&g
13、t;<p> 并且已經(jīng)提出了(stripped)當(dāng)中的調(diào)試信息</p><p> 查詢鏈接庫ldd來完成</p><p> Ldd的每條記錄的顯示格式library=>library_file(memory_address)</p><p> 注意ldd命令只能查詢采用動態(tài)鏈接而成的程序文件</p><p><
14、;b> 軟件的依賴性</b></p><p> 如果采用動態(tài)連接庫的方式制造出來的執(zhí)行文件,那么管理這些軟件時就要特別注意是否會有依賴性的問題。所謂依賴性,就是指軟件執(zhí)行時需要用到其他的組件,這個時候該軟件就與其他的組件有了依賴性了。</p><p> 我們還是以ldd /bin/grep為例</p><p> 這個程序需要linux-vd
15、so.so.1 libpcre.so.0 動態(tài)鏈接庫。如果刪除動態(tài)庫就無法使用不管刪除多少</p><p> 下面這個例子我講Libc.so.6重命名了,結(jié)果很多程序會出問題了</p><p> 傳統(tǒng)管理軟件的方法:</p><p> 在unix世界,不同的unix系統(tǒng)的system call可能不一樣,即使是相同的呼叫系統(tǒng),不同的unix之間的提供的鏈接庫可
16、能不一樣,甚至鏈接庫一樣,不同平臺的機器碼不一樣。這樣就造成了應(yīng)用軟件的困擾。因為在不同的平臺,不同的鏈接庫的unix系統(tǒng),提供數(shù)百份版本的軟件。為了解決這個問題,傳統(tǒng)的unix軟件提供者,多半選擇將軟件源代碼提供給用戶。用戶取得源代碼后只需要在自己的機器上重新編譯一次,即可產(chǎn)生在該系統(tǒng)上得可執(zhí)行程序。這就解決了unix軟件提供者的麻煩。</p><p> Redhat linux既然是兼容unix同,那么也具
17、備這種特性。</p><p> 不同的軟件的在安裝過城中步驟根據(jù)編寫者的愛好,可能不相同,但是通常的步驟如下:</p><p><b> 獲取軟件</b></p><p><b> 編譯前的工作準(zhǔn)備</b></p><p><b> 開始編譯</b></p>
18、<p><b> 安裝和部署</b></p><p> 假如我們有一份原代碼我們以ntfs-3g源代碼為例</p><p><b> 編譯前的準(zhǔn)備工作</b></p><p><b> 詳細(xì)閱讀文件</b></p><p> 準(zhǔn)備編譯所需要的組件<
19、/p><p><b> 設(shè)置編譯參數(shù)</b></p><p> 詳細(xì)閱讀README</p><p> README 通常情況下提供軟件的基本信息。包括作者,軟件實現(xiàn)的功能,遇到問題向隨報告等</p><p><b> INSTALL</b></p><p> 這個文件
20、就是交你如何安裝這個軟件</p><p> Change log Changes</p><p> 這個文件一般都是軟件版本的修改記錄。比如增加了那些功能,何時修正等等信息</p><p> 準(zhǔn)備編譯所需要的組件</p><p> 某些軟件在編譯期間或者執(zhí)行期間可能會依賴其他的軟件或者鏈接庫,如果有這樣的情況,那么你就得在開始前確認(rèn)系
21、統(tǒng)上是否存在這些軟件。</p><p> 大部分的install和readme都會提供說明</p><p><b> 設(shè)置編譯參數(shù):</b></p><p> 軟件編譯前也必須設(shè)置好編譯的參數(shù),以配置軟件的編譯環(huán)境,啟用那些功能。</p><p> 現(xiàn)在大部分軟件都提供由autoconf /automake 產(chǎn)生
22、的configure ,通過configure 這個shell腳本來可以很方便的獲得編譯參數(shù)</p><p> 執(zhí)行configure 時,可能需要提供額外的參數(shù),不同的軟件提供的configure需要的配置可能不一樣。如果想要知道這個軟件configure 參數(shù)的話,可以執(zhí)行./configure –help</p><p><b> 來查看</b></p
23、><p> 下面我們以ntfs-3g為例首先用我們學(xué)過的解壓縮命令tar 來完成解壓</p><p> 我們可以看到這個源代碼包里面有很多文件</p><p> 下面我們通過./configure –help來獲取參數(shù)</p><p> 上面我只截取去了一部分參數(shù)。</p><p><b> 常見的參數(shù)
24、含義</b></p><p> --prefix=指要安裝到那個目錄,不使用這個參數(shù)的戶就自動默認(rèn)將可執(zhí)行文件和庫都分別放到/usr/local/bin 和usr/local/lib 或者/usr/lib 或者/lib。頭文件就放到/usr/local/include或者/usr/include 等目錄。如果指定了目錄這些文件都會安裝到你得而當(dāng)前目錄下。</p><p>
25、如果是64位的,庫都會放到lib64這個文件夾</p><p> 這些參數(shù)都可以自行指定,也可以使用默認(rèn)的或者直接指定一個—prefix=directory</p><p> 下面我們開始配置參數(shù)通過configure的默認(rèn)值來完成,</p><p> 上面的錯誤是由于我沒有安裝c編譯器造成的</p><p> 安裝好編譯器后我們來做
26、如下操作</p><p><b> 完成參數(shù)的配置后</b></p><p> 下面我們開始編譯程序</p><p> Configure 產(chǎn)生的Makefile文件,常見的target</p><p> all 編譯所有的程序和鏈接庫,產(chǎn)生Info,man等,all通常是configur
27、e 產(chǎn)生的Makefile中得一個target,也可以說是默認(rèn)值</p><p> clean 就是清除上次編譯的記錄</p><p> distclean 清除所有東西。包括Makefile 。執(zhí)行distclean后你得重新設(shè)置編譯參數(shù),再進(jìn)行編譯</p><p> install 安裝所有的程序,鏈接
28、庫,執(zhí)行文件引入文件等</p><p> uninstall 卸載文件</p><p> makefile文件的格式</p><p> TARGET:DEPENDENCE_TARGET</p><p><b> ACTION…</b></p><p> 下面我們開始編譯n
29、tfs-3g</p><p> 如果想看它的編譯信息和錯誤信息可以將其重導(dǎo)向到指定的文件以方便檢查</p><p> 直接執(zhí)行make 就行</p><p><b> 成功完成編譯</b></p><p><b> 下面我們看是安裝</b></p><p> 在這個
30、安裝中剛開始我制定了—prefix=/usr/local/ntfs-3g在安裝時報錯,后來我講./configure直接運行,沒有指定prefix。是由于我制定了安裝過程中會覆蓋源文件導(dǎo)致的報錯。</p><p> 上面要是沒有出現(xiàn)錯誤信息就表明你已經(jīng)成功安裝了這個ntfs-3g</p><p> 安裝完成后就可以關(guān)在ntfs分區(qū)了</p><p> #mou
31、nt –t ntfs-3g /dev/sdb1 /mnt/sdb1</p><p><b> 這樣就完成了</b></p><p><b> 下面我們卸載掉程序</b></p><p> 這樣就卸載了一個程序了</p><p> 要使用make unstall 必須源代碼存在才行否者不行。&
32、lt;/p><p> 上面我們簡單的完成了一個叫ntfs-3g的源代碼包得安裝。</p><p> 這只是一個簡單的范例,不是通用范例,每個程序都有自己的安裝方式,還是得看作者的</p><p> 喜好和使用習(xí)慣。不過大致的過程都是這樣</p><p> 安裝按成后我們?nèi)绻€有幫組文檔我就需要將幫組的路勁寫入到/etc/man.confi
33、g,如果值使用默認(rèn)的參數(shù),幫組文檔就會放到指定的目錄下如下</p><p> 如果是自定義安裝的話</p><p> 就需要講范例幫助加入到/etc/man.config 中格式如上面圖像顯示的格式</p><p> 在linux中我們?nèi)绾蝸砉芾韼爝B接了</p><p> 應(yīng)用軟件一般都會提供一些庫連接,以便給其他開發(fā)人員開發(fā)應(yīng)用軟件
34、使用或者作為軟件</p><p><b> 動態(tài)模塊加載</b></p><p> 靜態(tài)鏈接庫static-link library 是提供給i軟件編譯時靜態(tài)鏈接使用的。一般說來靜態(tài)鏈接庫</p><p> 的文件命名為libNAME.A</p><p> 動態(tài)鏈接庫則是程序在執(zhí)行期間,動態(tài)加載鏈接庫提供的功能,
35、習(xí)慣的命名凡是libNAME.so.VERSION</p><p> REDHAT ENTERPRISE 通常鏈接庫存放的位置lib目錄如果是64位的話,則為lib和lib64一個</p><p> 是lib是支持32,lib64支持64位。</p><p> 通過file 查看鏈接庫的示范</p><p><b> 管理動
36、態(tài)連接器</b></p><p> 動態(tài)鏈接器主要是將動態(tài)鏈接庫加載到內(nèi)核當(dāng)中,提供給采用動態(tài)鏈接方式產(chǎn)生的執(zhí)行文件</p><p> 的呼叫使用。/etc/ld.so.conf是動態(tài)連接器的配置文件</p><p> 這個文件會指定了一個ld.so.conf.d的目錄用來存放自己自定義的內(nèi)容</p><p> 我們會看到
37、上面的這些內(nèi)容</p><p> 下面我們可以查看一下其中一個的內(nèi)容,我們以mytsql這個為例</p><p> 在配置文件當(dāng)中使用如何配置ld.so.conf,如下配置如果是自己自定義的話</p><p> 下面我們還是以ntfs-3g為例,我后來講ntfs-3g指定到了/usr/local/ntfs</p><p> #./co
38、nfigrue –prefix=/usr/local/ntfs</p><p><b> #make</b></p><p> #make && make install</p><p> 現(xiàn)在我向正常調(diào)用某些庫時我必須指定他的路徑</p><p> 然后使其生效通過指定的ldconfig來完成。
39、</p><p> 或者我在ld.so.conf.d目錄下建立一個ntfs.conf</p><p> 然后執(zhí)行l(wèi)dconfig</p><p> 如果要刪除指定的動態(tài)鏈接庫的話就直接在指定的目錄刪除指定的文件就可以了然后執(zhí)行l(wèi)dconfig就完成了。</p><p> 下面我們介紹rpm管理軟件包</p><p&
40、gt; 傳統(tǒng)的unix系統(tǒng)管理軟件到方法很復(fù)雜,那怪有人說,要成為unix系統(tǒng)的管理者,就得具有開發(fā)軟件的能力才行。</p><p> 如果redhat 的系統(tǒng)管理者要管理系統(tǒng)上所有的軟件的話,并且通過傳統(tǒng)方法的話,那么使用紅帽的人就瘋了,對于初學(xué)者來說基本上就放棄了linux的學(xué)習(xí)了。為了減輕管理者在管理軟件上得不變,紅帽開發(fā)了rpm軟件包管理器。通過rpm 可以很方便的管理系統(tǒng)上得軟件。</p>
41、;<p><b> Rpm的介紹</b></p><p> 首先rpm包得組成部分</p><p><b> RPM 軟件包文件</b></p><p> Rpm是一種特殊的文件,里面封裝了軟件的程序,配置文件,說明文件,看鏈接庫以及源代碼</p><p><b>
42、 RPM 管理工具</b></p><p> 紅帽提供了一個叫做rpm 的管理工具以及其他的程序共工具。利用這些工具可以查詢,安裝,升級,刪除和更新軟件包</p><p><b> 網(wǎng)絡(luò)資源</b></p><p> 因特網(wǎng)上有很多提供rpm軟件包的服務(wù)器,我們可以通過這些服務(wù)器取得rpm包,也有部分網(wǎng)站提供搜索rpm軟件包得
43、功能,你可以利用這些網(wǎng)站搜索你需要的軟件包,紅帽的官方RHN站,讓管理者可以更新和遠(yuǎn)程管理REDHAT LINUX</p><p><b> RPM數(shù)據(jù)庫</b></p><p> Rpm數(shù)據(jù)庫會記錄安裝過的軟件信息。這些信息會保存在/var/lib/rpm目錄</p><p> 如果rpm 的資料庫不見了,那么我們也就查不到相關(guān)的rpm
44、包得信息了。所以注意保存</p><p> Rpm包可以分為源代碼包和二進(jìn)制包兩種</p><p> 二進(jìn)制rpm包封裝著可以直接執(zhí)行的執(zhí)行文件,以及執(zhí)行程序相關(guān)的文件等。不過二進(jìn)制rpm的提供是與cpu有關(guān)的程序文件,只能安裝在你得計算機可以可以使用的版本</p><p><b> 源代碼rpm包</b></p><
45、p> 這種rpm封裝者的應(yīng)用軟件的源代碼,所以稱作源代碼軟件包。原代碼軟件包rpm主要是用來制作build其他種類的rpm軟件包文件,安裝源代碼rpm包文件后,軟件會安裝在/usr/src/RedHat/SOURCE中。除非你要自己編譯二進(jìn)制軟件包</p><p><b> Rpm包得命名規(guī)則</b></p><p> PACKAGE-VERSION-RE
46、LEASE.TYPE.rpm</p><p> PACKAGE 這是軟件的名稱</p><p> VERSION:軟件的版本</p><p> RELEASE 軟件包釋放的號碼</p><p> TYPE 這個字段標(biāo)示這個rpm軟件包得文件類型:常見的類型如下</p><p> I386,i486,i586,
47、i686 這些都是針對interl80*86兼容cpu所編譯的binaryrpm包</p><p> Ia32 ,ia64 這是針對interl ia32與ia64架構(gòu)編譯的binary rpm包</p><p> Alpha 這是針對dec alpha 平臺編譯的</p><p> Sparc 這是針對sunsparc的</p><p&g
48、t; Src 就是源碼rpm包</p><p> Noarch 標(biāo)示獨立的rpm軟件包</p><p> 下面我們來介紹一下rpm工具</p><p> 首我們來介紹一下相關(guān)rpm的選項說明</p><p><b> 1、安裝語法:</b></p><p> #rpm –i [選項]
49、file.rpm file2.rpm</p><p> -h 安裝時輸出hash記號(“#”),顯示安裝進(jìn)度</p><p> --test 指對安裝進(jìn)行測試,不安裝</p><p> --percent 以百分比的形式來輸出安裝得進(jìn)度</p><p> --excludedocs 不安裝軟件包中得文件文件</p>&l
50、t;p> --includedocs 安裝文檔</p><p> --replacepkgs 強制重新安裝的軟件包</p><p> --replacefiles 替換屬于其他軟件包的文件</p><p> --force 忽略軟件包以及文件沖突強制安裝</p><p> --noscript 不運行安裝和后腳本安裝</
51、p><p> --ignorearch 不校驗軟件包的結(jié)構(gòu)</p><p> --ignoreos 不檢查阮家寶運行的操作系統(tǒng)</p><p> --nodeps 不檢查依賴性</p><p> --ftpproxy <host> 用host作為代理</p><p> --ftport <por
52、t> 指定ftp端口</p><p><b> -v 顯示附加信息</b></p><p><b> -vv顯示調(diào)試信息</b></p><p> --root <path> 讓rpm包執(zhí)行路徑作為根目錄,這樣原裝和后安裝程序都會安裝在這個目錄下。</p><p> --d
53、bpath <path>設(shè)定rpm資料庫的所在路徑</p><p><b> 2、刪除</b></p><p> #rpm –e [選項] pkg1 pkg2</p><p> --test 只執(zhí)行刪除的測試</p><p> --noscript 不運行預(yù)安裝和后安裝腳本程序</p>
54、<p> --nodeps 不檢查依賴性</p><p> -vv 顯示調(diào)試信息</p><p><b> 3|升級</b></p><p> #rpm –U or(--upgrade) [選項] file.rpm file2.rpm</p><p><b> -h輸出hash號</b
55、></p><p> --oldpackage 允許升級到一個老版本</p><p> --test 只進(jìn)行升級測試</p><p> -F 更新軟件包,如果軟件包新就更新到新版本,如果一樣就不安裝</p><p><b> -v顯示附加信息</b></p><p><b>
56、; 查詢</b></p><p> #rpm –q or(query) </p><p> -p查詢軟件包的文件</p><p> -f 查詢某個文件所屬的軟件包</p><p> -a 查詢所有安裝的軟件包</p><p> -g 查詢屬于組的軟件包</p><p>
57、 --whatrequires查詢所有需要x功能的軟件包</p><p><b> -i顯示概要信息</b></p><p> -l 顯示軟件包中得文件列表</p><p> -c顯示配置文件的列表</p><p><b> -d顯示文檔列表</b></p><p>
58、<b> -v顯示附加參數(shù)</b></p><p><b> 校驗已安裝軟件包</b></p><p> #rpm –V or(query)</p><p> -p 查詢驗證指定的軟件包</p><p> -f 校驗file所屬的軟件包</p><p> -a 校
59、驗所有軟件包</p><p> -g校驗所屬組的軟件包</p><p><b> -v顯示附加信息</b></p><p><b> 校驗軟件包的文件</b></p><p> #rpm –K or(--checksig )[選項] file.rpm file2.rpm</p>
60、<p> CHECKSIG 檢查簽名認(rèn)證是否正確</p><p> --nopgp不校驗pgp簽名</p><p><b> 其他的rpm選項</b></p><p> --rebuild重建rpm資料庫</p><p> --initdb 創(chuàng)建一個新的rpm資料庫</p><
61、p> --quiet盡量減少輸出</p><p> --version 顯示當(dāng)前rpm的版本</p><p><b> 下面就是范例:</b></p><p> 1、我們這些安裝都是以來安裝zsh這個包</p><p> 2、測試不安裝軟件包</p><p> 3、強制重新安裝軟
62、件包</p><p> 在此執(zhí)行就提示軟件包已經(jīng)安裝</p><p> 4、強制安裝軟件包忽略文件的沖突</p><p><b> 指定路徑安裝軟件包</b></p><p> 由于指定路徑就直接報錯找不到庫文件,所以最好默認(rèn)安裝軟件包</p><p> 如果存在依賴該如何安裝了<
63、/p><p> 依賴于python-deltarm,下面我們來安裝python-deltarm</p><p><b> 查詢已安裝的軟件包</b></p><p><b> 直接帶q參數(shù)查詢</b></p><p> 查詢所有的軟件包找出zsh</p><p> 查
64、詢某個文件所屬的軟件包</p><p> 查詢zsh軟件包包含那些文件</p><p> 查看軟件包的配置文件</p><p><b> 顯示軟件的文檔表</b></p><p><b> 7、查看概要信息</b></p><p> 查詢軟件所需要的文件</p
65、><p><b> 查詢軟件的修改記錄</b></p><p> 查看某個軟件包的信息,沒安裝的軟件包信息</p><p> 更新軟件如果版本比較低就升級安裝</p><p> 如果升級版本相同將提示已經(jīng)安裝,可以使用強制升級安裝</p><p> 刷新軟件包,只要版本相同就不更新,即使強制
66、也不更新</p><p><b> 校驗軟件包</b></p><p> 校驗軟件包,如果沒變化不顯示任何信息</p><p> 2、如果我們直接touch一下zsh,修改其時間</p><p><b> 卸載軟件包</b></p><p><b> 直接
67、卸載軟件包</b></p><p> 如果我們卸載軟件包由依賴性該如何完成了。以卸載deltarpm為例</p><p> 有依賴來那個軟件包就先卸載那個軟件包</p><p> src.rpm包得安裝</p><p> 方法一:直接安裝軟件包,以ksh.src.rpm為例</p><p> 在過
68、去RHEL5以及之前的版本會在/usr/src/redhat下SOURCE 和SPECS這兩個目錄</p><p> 現(xiàn)在rhel6是找不到這個目錄的</p><p> 默認(rèn)情況下會在/root/下生成一個rpmbuild的目錄這個下面就有SOURCE 和SPECS著兩個目錄</p><p> 安裝軟件包后就會到這兩個目錄中去</p><p
69、> [root@rhelserver opt]# rpm -ivh bind-9.7.0-1.el6.src.rpm warning: bind-9.7.0-1.el6.src.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY1:bind ########################################### [100%]</p>
70、;<p> 安裝完成后到指定的目錄</p><p> [root@rhelserver src]# cd /root/rpmbuild/[root@rhelserver rpmbuild]# lsSOURCES SPECS[root@rhelserver rpmbuild]# cd SOURCES/[root@rhelserver SOURCES]# lsbind-9.3.1rc1-s
71、db_tools-Makefile.in bind-96-libtool2.patchbind-9.3.2b1-fix_sdb_ldap.patch bind-96-old-api.patchbind-9.3.2b2-sdbsrc.patch bind-9.7.0.tar.gz</p><p> 看到這個目錄下的文件了吧下面的安裝就和之前的一樣了</p><p> 下面就將其打包成
72、為rpm包,前提你首先要安裝rpm-build工具</p><p><b> #cd SPECS</b></p><p> #rpmbuild -bb bind.spec</p><p> warning: Could not canonicalize hostname: rhelserver.example.comWrote: /ro
73、ot/rpmbuild/RPMS/x86_64/bind-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-sdb-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-libs-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/b
74、ind-utils-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-devel-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-chroot-9.7.0-1.el6.x86_64.rpmExecuting(%clean): /bin/sh -e /var/</p><
75、;p> 完成后會在RPMS下生成需要的指定的rpm包了</p><p> [root@rhelserver RPMS]# cd x86_64/[root@rhelserver x86_64]# lsbind-9.7.0-1.el6.x86_64.rpm bind-libs-9.7.0-1.el6.x86_64.rpmbind-chroot-9.7.0-1.el6.x86_64.rpm bind-s
76、db-9.7.0-1.el6.x86_64.rpmbind-devel-9.7.0-1.el6.x86_64.rpm bind-utils-9.7.0-1.el6.x86_64.rpm[root@rhelserver x86_64]# </p><p> 成功完了編譯了,后面的安裝就自行解決</p><p> 下面介紹yum的安裝</p><p> 如果你
77、沒由登陸rhn那么你就不能使用yum源,那么你只有自己建立一個yum源,可以使本地或者網(wǎng)絡(luò)源</p><p><b> yum的特點</b></p><p> 1、自動解決包的依賴性,能夠方便安裝,刪除,更新軟件包</p><p> 2、便于管理大量系統(tǒng)的更新問題</p><p> 3、可以同時配置多個yum源&
78、lt;/p><p><b> 4、簡潔的配置文件</b></p><p> 5、保持與rpm數(shù)據(jù)的一直性</p><p> 6、有一個比較詳細(xì)的log</p><p><b> 7、使用方便</b></p><p> 8、yum是rhel/centos/fedora系統(tǒng)
79、自帶的</p><p> 建立yum源的步驟如下:</p><p> 將所有的rpm文件放到同一個目錄下</p><p> 在該目錄建立yum下載數(shù)據(jù)源</p><p> 通過ftp或者h(yuǎn)ttp分享出去就行了</p><p> 這樣就建立好了一個yum源了</p><p> 下面我們
80、首先來建立一個本地院適合于本地安裝</p><p> 在做源之前安裝createrepo 這個軟件包,它依賴于deltram 和python-deltram兩個軟件包的安裝</p><p> 首先將源文件放到指定目錄下我們以/var/ftp/pub/localsource</p><p> 將cd 包得所有內(nèi)容拷貝到/var/ftp/pub/localsour
81、ce</p><p> [root@rhelserver pub]# cp -ar /mnt/cdrom/Packages /var/ftp/pub/localsource/</p><p><b> 創(chuàng)建下載數(shù)據(jù)源</b></p><p><b> 完成創(chuàng)建</b></p><p> 建立
82、一yum下載源的文件</p><p> #vim local.repo</p><p> [Packages]</p><p> name=Packages</p><p> baseurl=file:///var/ftp/pub/localsource/</p><p><b> enabled=
83、1</b></p><p> gpgchecked=0</p><p> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</p><p> 清楚緩存中的頭和文件</p><p><b> FTPyum安裝源</b></p>
84、<p> 首先安裝vsftpd軟件</p><p> 將文件拷貝到/var/ftp/pub/ftpsource下</p><p><b> 2、下載數(shù)據(jù)源</b></p><p><b> 3、創(chuàng)建分組信息</b></p><p> 建立yum下載源定義文件</p>
85、;<p> [rhel-Packages]</p><p> name=Packages</p><p> baseurl= ftp://192.168.72.30/pub/ftpsource /Packages</p><p><b> enabled=1</b></p><p> gpgche
86、ck=0</p><p> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</p><p> [rhel-Server]</p><p> name=Server</p><p> baseurl= ftp://192.168.72.30/pub/ftpsource
87、/Server</p><p><b> enabled=1</b></p><p> gpgcheck=0</p><p> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</p><p> [rhel-LoadBalancer]</p&
88、gt;<p> name=LoadBalancer</p><p> baseurl= ftp://192.168.72.30/pub/ftpsource /LoadBalancer</p><p><b> enabled=1</b></p><p> gpgcheck=0</p><p> g
89、pgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</p><p> [rhel-HighAvailability]</p><p> name=HighAvailability</p><p> baseurl=ftp://192.168.72.30/pub/ftpsource /HighAvai
90、lability</p><p><b> enabled=1</b></p><p> gpgcheck=0</p><p> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</p><p> [rhel-ResilientStorage]&l
91、t;/p><p> name=ResilientStorage</p><p> baseurl=ftp://192.168.72.30/pub/ftpsource /ResilientStorage</p><p><b> enabled=1</b></p><p> gpgcheck=0</p>
92、<p> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</p><p> [rhel-ScalableFileSystem]</p><p> name=ScalableFileSystem</p><p> baseurl=ftp://192.168.72.30/pub/ftp
93、source /ScalableFileSystem</p><p><b> enabled=1</b></p><p> gpgcheck=0</p><p> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</p><p> 啟動vsftp
94、d服務(wù)</p><p> #yum clean all</p><p><b> #yum list</b></p><p> 配置文件yum.conf的設(shè)置內(nèi)容</p><p> [root@station20 pub]# vim /etc/yum.conf </p><p><b
95、> [main]</b></p><p> cachedir=/var/cache/yum/$basearch/$releasever</p><p> keepcache=0 指定緩存目錄默認(rèn)為/var/cache/yum</p><p> debuglevel=2 指定日志等級</p><p> log
96、file=/var/log/yum.log 指定日志文件路徑</p><p> exactarch=1 是否升級與已安裝的軟件包cpu體系結(jié)構(gòu)一致的包,默認(rèn)為1表示可以不升級</p><p> obsoletes=1 是否升級過時的軟件包,默認(rèn)1表示可以升級。0表示不升級</p><p> gpgcheck=1 為所有軟件倉庫的軟件包是否啟用或者
97、禁用,GPG簽名,默認(rèn)時簽名認(rèn)證1,0表示不認(rèn)證</p><p> plugins=1 是否啟用插件</p><p> installonly_limit=3 安裝內(nèi)核型軟件包的數(shù)量,默認(rèn)3</p><p> 為RHEL6配置EPELrepo</p><p> 為了獲得更高質(zhì)量的,高性能,高可靠性,有需要方便易用的軟件包的新功
98、能。那么Fedora project退出的EPEL正好合適,這是有FEDORA社區(qū)打造,為RHEL的衍生發(fā)行般centos,linux等提供高質(zhì)量的軟件包項目,安裝非常簡單</p><p> [root@redhatlinux ~]# rpm -ivh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm&
99、lt;/p><p> Retrieving http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm</p><p> Preparing... ########################################### [100%]</p&
100、gt;<p> package epel-release-6-5.noarch is already installed</p><p> [root@redhatlinux ~]#</p><p> [root@redhatlinux ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/x86_64/ep
101、el-release-6-5.noarch.rpm</p><p> Retrieving http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm</p><p> Preparing... ###############################
102、############ [100%]</p><p> package epel-release-6-5.noarch is already installed</p><p> [root@redhatlinux ~]#</p><p> 下面就是來學(xué)習(xí)yum的用法:</p><p> #yum options command
103、args</p><p> #yum常見的共享參數(shù)</p><p> -y 表示yum需回答問題,一律為yes</p><p> -c config_file 以config_file 取代默認(rèn)的/etc/yum.conf 作為配置文件</p><p> -d debug_level 指定錯誤等級 必須是0-
104、10之間的整數(shù),值越大,產(chǎn)生的日志信息愈多</p><p> --installroot=ROOT 指定安裝的根目錄</p><p> --enablerepo=REPO 暫時啟動REPO這個下載源</p><p> --disablerepo=REPO 暫時停用repo這個下載源</p><p> --exclude=pa
105、ckages 排除Packages 軟件</p><p> --noplugins 暫時停用所有插件</p><p><b> yum常用指令</b></p><p> #yum check-update 檢查可更新的所有軟件包</p><p> #yum update 下載更新系統(tǒng)已安裝的所有軟件包&
106、lt;/p><p> #yum upgrade 大規(guī)模的版本升級,與yum update 不同的是,連舊的淘汰軟件包也升級</p><p> #yum install packages 安裝指定的軟件包</p><p> #yum update packages 更新指定的軟件包</p><p> #yum remove packages
107、 卸載指定的軟件包</p><p> #yum groupinstall groupname 安裝指定的軟件包組</p><p> #yum groupupdate groupname 更新指定的軟件包組</p><p> #yum grouplist 查看系統(tǒng)中已安裝的和可用地包組</p><p> #yum list 列出資源庫
108、所有可以安裝的或者更新的及已安裝更新的軟件包</p><p> #yum list <regex> 列出資源庫與正則表達(dá)式匹配的可以安裝或者可更新以及安裝的rpm包</p><p> #yum list available 列出資源庫中所有可以安裝的軟件包</p><p> #yum list <regex> 列出資源庫中與正則表達(dá)式的
109、所有安裝或者更新的rpm包</p><p> #yum list updates 列出資源庫中的所有可以更新的軟件包</p><p> #yum list installed 列出已經(jīng)安裝資源庫中的軟件</p><p> #yum list extras 列出已經(jīng)安裝的但是不包含在資源庫中的rpm包</p><p> #yum lis
110、t recent 列出最近添加到資源庫的軟件包</p><p> #yum search regex 搜索所有可用的軟件包的名稱等信息</p><p> #yum provides reges 檢查軟件包中包含的文件及軟件提供的功能,查找與正則表達(dá)式符合的內(nèi)容</p><p> #yum clean all 清除緩存中的rpm 包頭文件和包文件</p&g
111、t;<p> #yum clean header 清除緩存中的rpm包頭文件</p><p> #yum clean packages 清除緩存中的rpm包文件</p><p> #yun deplist packages 顯示軟件包的依賴信息</p><p><b> 1、升級系統(tǒng)</b></p><
112、p><b> 2、安裝指定的軟件</b></p><p> #yum install w3m </p><p> 3、升級指定的軟件包</p><p><b> 4、卸載指定的軟件</b></p><p> 5、檢查系統(tǒng)中已經(jīng)安裝的和可用的軟件的軟件組</p><
113、;p><b> 6、安裝指定的包組</b></p><p> 7、更新指定軟件包組中的軟件</p><p><b> 8、卸載指定的包組</b></p><p> 9、清除緩存中的rpm頭文件和軟件包</p><p> 10、搜索指定的軟件包</p><p>
114、 11、顯示指定軟件包的信息</p><p><b> 網(wǎng)速太慢造成的</b></p><p> 12、列出已安裝但不包含在資源庫中的軟件</p><p><b> # </b></p><p> 這個是由于網(wǎng)速造成的</p><p><b> 總結(jié):&
115、lt;/b></p><p> 學(xué)習(xí)了軟件的管理的方法</p><p> 了解傳統(tǒng)軟件包的安裝方法</p><p> 了解動態(tài)和靜態(tài)鏈接的以及鏈接庫的使用</p><p> 學(xué)習(xí)了rpm管理軟件包的方法</p><p> 學(xué)習(xí)了yum軟件包的管理方法,以及yum源的制作</p><p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- rhel6軟件包的安裝與管理
- yum安裝軟件包(rhel版本從本地yum安裝)
- 查看linux 下已經(jīng)安裝的軟件包
- rhel6下郵件服務(wù)器架構(gòu)畢業(yè)設(shè)計
- java軟件包定義
- rhel6下郵件服務(wù)器架構(gòu) 畢業(yè)設(shè)計
- rhel6版-項目8__dhcp服務(wù)器的搭建
- matlab軟件包與logistic回歸
- spss統(tǒng)計軟件包
- linux系統(tǒng)與天文軟件包idl
- 統(tǒng)計軟件包武頌文
- 電氣設(shè)計軟件包的研究與開發(fā).pdf
- 附錄2 PKPM軟件包 軟件電算結(jié)果.doc
- 附錄2 PKPM軟件包 軟件電算結(jié)果.doc
- 密碼分析工具軟件包的設(shè)計與研究.pdf
- 極進(jìn)網(wǎng)絡(luò)無線管理軟件包(wms)
- 冷連軋機仿真軟件包的研究與開發(fā).pdf
- 附錄2 PKPM軟件包 軟件電算結(jié)果.doc
- 附錄2 PKPM軟件包 軟件電算結(jié)果.doc
- 系統(tǒng)簡單故障分析軟件包的開發(fā).pdf
評論
0/150
提交評論