Linux軟件包管理_第1頁(yè)
Linux軟件包管理_第2頁(yè)
Linux軟件包管理_第3頁(yè)
Linux軟件包管理_第4頁(yè)
Linux軟件包管理_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文檔模板01文檔副標(biāo)題文檔標(biāo)題文檔模板01Version 1.02015-03-01DEV-07-0018Copyright2015 ZTEsoft Integration Runtime Environment日期編寫/修改人版本記錄2015-03-01IREVer 1.0創(chuàng)建日期審閱人版本密級(jí)狀態(tài)意見2015-03-05IREVer 1.0內(nèi)部公開發(fā)布無(wú)審閱文檔控制頁(yè)面編寫/修改 RHEL6 軟件包的安裝與管理 飛翔學(xué)習(xí)目標(biāo):x了解linux執(zhí)行文件的種類學(xué)習(xí)傳統(tǒng)方法安裝、管理軟件包學(xué)習(xí)通過rpm來(lái)安裝、管理軟件包學(xué)習(xí)yum服務(wù)器的配置,安裝管理軟件包一、 首先我們來(lái)介紹linux下的可執(zhí)

2、行文件的種類在redhat enterprise linux中執(zhí)行命令,大部分室執(zhí)行文件。執(zhí)行文件可以分如下種類1、 程序(program)程序一種存儲(chǔ)cpu指令的機(jī)器碼的特殊文件,由于存儲(chǔ)在程序文件中得極其指令都是采用二進(jìn)制編碼,直接交給cpu執(zhí)行。所以我們習(xí)慣陳可執(zhí)行文件為二進(jìn)制文件。一般來(lái)說程序執(zhí)行的速度比較快,。但是最大缺點(diǎn)室程序文件無(wú)法在不同的cpu中執(zhí)行2、 鏈接庫(kù)(library)鏈接庫(kù)與程序類似,也是一個(gè)存儲(chǔ)機(jī)器碼的二進(jìn)制文件;但鏈接庫(kù)與程序文件的不同之處在于,程序文件會(huì)存儲(chǔ)執(zhí)行進(jìn)入點(diǎn)。所以linux系統(tǒng)會(huì)知道從哪里開始執(zhí)行文件的內(nèi)容;而連接庫(kù)則沒有存儲(chǔ)執(zhí)行進(jìn)入點(diǎn)得信息,因而無(wú)

3、法直接啟動(dòng)redhat linux中得鏈接庫(kù)3、 腳本(script)腳本就是以文本的格式存儲(chǔ)要cpu執(zhí)行的命令。支持腳本類型的程序語(yǔ)言都會(huì)提供一個(gè)編譯器(interpruter)程序。每次執(zhí)行一個(gè)腳本時(shí),redhatlinux都會(huì)吧腳本中的命令交由編譯器,轉(zhuǎn)譯成cpu可以執(zhí)行的機(jī)器碼,然后才讓cpu去執(zhí)行這些機(jī)器碼。通常情況下腳本的好處就是平臺(tái)無(wú)關(guān)性,只要你得機(jī)器提供適當(dāng)?shù)木幾g器,就可以直接執(zhí)行腳本,缺點(diǎn)就是執(zhí)行速度遠(yuǎn)遠(yuǎn),慢于程序文件。產(chǎn)生機(jī)機(jī)器命令的方法為了讓cpu可以順利的執(zhí)行高級(jí)語(yǔ)言開發(fā)出來(lái)的應(yīng)用軟件,必須把高級(jí)語(yǔ)言的轉(zhuǎn)譯成機(jī)器碼,這個(gè)動(dòng)作成為編譯,而負(fù)責(zé)執(zhí)行編譯工作的程序就成為com

4、plier(編譯器)編譯的幾個(gè)步驟:1、 檢查成語(yǔ)代碼的正確性2、 把程序代碼轉(zhuǎn)換成為機(jī)器碼3、 程序代碼中如果使用其他鏈接庫(kù)的機(jī)器碼,則將其鏈接4、 產(chǎn)生操作系統(tǒng)的相關(guān)信息5、 存儲(chǔ)為可執(zhí)行文件。其中不管理員較為密切的可能是連接程序庫(kù)的這個(gè)動(dòng)作鏈接:鏈接室指把存儲(chǔ)在鏈接庫(kù)中得機(jī)器碼存儲(chǔ)在程序中,這樣開發(fā)人員就不用重復(fù)編寫相同的程序代碼以加快程序的開發(fā)速度。鏈接分為兩種:動(dòng)態(tài)鏈接和靜態(tài)鏈接靜態(tài)鏈接:在進(jìn)行鏈接時(shí),把執(zhí)行程序執(zhí)行期間需要用到的機(jī)器碼復(fù)制到可執(zhí)行文件中,這種鏈接方法稱為靜態(tài)鏈接“static link”.靜態(tài)鏈接而成的程序有如下幾個(gè)特性:1、產(chǎn)生的執(zhí)行文件體積龐大:使用靜態(tài)鏈接產(chǎn)生

5、的程序必須吧所有用到的機(jī)器碼復(fù)制一份出來(lái),存儲(chǔ)在執(zhí)行文件中,這樣使程序文件的體積比較龐大。2、執(zhí)行時(shí)需要較多的空間:在程序執(zhí)行時(shí)加載程序文件需要更多的空間。3、可以獨(dú)立使用:靜態(tài)鏈接的程序已經(jīng)存儲(chǔ)了程序執(zhí)行期間所需的機(jī)器碼,不會(huì)因?yàn)槟承╂溄訋?kù)不存在或者版本不符合而無(wú)法執(zhí)行。動(dòng)態(tài)鏈接:在進(jìn)行鏈接時(shí),編譯器不會(huì)把鏈接庫(kù)的機(jī)器碼復(fù)制到程序文件中,而只是存儲(chǔ)執(zhí)行文件執(zhí)行時(shí)需要的鏈接庫(kù),該鏈接庫(kù)的版本,以及函數(shù)的符號(hào)等信息。當(dāng)執(zhí)行這個(gè)程序時(shí),便可以根據(jù)執(zhí)行文件中所記錄的鏈接信息,加載所需要的鏈接庫(kù)以及機(jī)器碼。這樣的鏈接方式就稱為dynamic link 動(dòng)態(tài)鏈接。動(dòng)態(tài)鏈接的特性:體積小:使用動(dòng)態(tài)鏈接產(chǎn)生

6、的執(zhí)行文件,因?yàn)橹恍枰鎯?chǔ)機(jī)器碼的信息,所以執(zhí)行文件的體積小。需要內(nèi)存空間少:由于動(dòng)態(tài)鏈接執(zhí)行文件小,所以執(zhí)行這個(gè)程序需要的內(nèi)存空間就少無(wú)法獨(dú)立使用:執(zhí)行動(dòng)態(tài)鏈接而成的程序時(shí),會(huì)依賴所需要的鏈接庫(kù)。如果兩臺(tái)機(jī)器上得鏈接庫(kù)信息不一致,就會(huì)使執(zhí)行文件無(wú)法在另外一臺(tái)機(jī)器上執(zhí)行查尋執(zhí)行文件的鏈接方法如果想知道某個(gè)程序的鏈接方式,我們可以使用file來(lái)查看,file查詢到一個(gè)文件時(shí),會(huì)顯示該程序的文件中得機(jī)器碼和鏈接方法等信息;如果是statically linked就是靜態(tài),如果顯示dynamic linked就是動(dòng)態(tài)下面來(lái)看一個(gè)例子這個(gè)信息就是顯示的/bin/ls 采用elf格式,存儲(chǔ)者64位lsb

7、標(biāo)準(zhǔn)執(zhí)行文件采用動(dòng)態(tài)鏈接庫(kù)并且已經(jīng)提出了(stripped)當(dāng)中的調(diào)試信息查詢鏈接庫(kù)ldd來(lái)完成Ldd的每條記錄的顯示格式library=>library_file(memory_address)注意ldd命令只能查詢采用動(dòng)態(tài)鏈接而成的程序文件軟件的依賴性如果采用動(dòng)態(tài)連接庫(kù)的方式制造出來(lái)的執(zhí)行文件,那么管理這些軟件時(shí)就要特別注意是否會(huì)有依賴性的問題。所謂依賴性,就是指軟件執(zhí)行時(shí)需要用到其他的組件,這個(gè)時(shí)候該軟件就與其他的組件有了依賴性了。我們還是以ldd /bin/grep為例這個(gè)程序需要linux-vdso.so.1 libpcre.so.0 動(dòng)態(tài)鏈接庫(kù)。如果刪除動(dòng)態(tài)庫(kù)就無(wú)法使用不管刪

8、除多少下面這個(gè)例子我講Libc.so.6重命名了,結(jié)果很多程序會(huì)出問題了傳統(tǒng)管理軟件的方法:在unix世界,不同的unix系統(tǒng)的system call可能不一樣,即使是相同的呼叫系統(tǒng),不同的unix之間的提供的鏈接庫(kù)可能不一樣,甚至鏈接庫(kù)一樣,不同平臺(tái)的機(jī)器碼不一樣。這樣就造成了應(yīng)用軟件的困擾。因?yàn)樵诓煌钠脚_(tái),不同的鏈接庫(kù)的unix系統(tǒng),提供數(shù)百份版本的軟件。為了解決這個(gè)問題,傳統(tǒng)的unix軟件提供者,多半選擇將軟件源代碼提供給用戶。用戶取得源代碼后只需要在自己的機(jī)器上重新編譯一次,即可產(chǎn)生在該系統(tǒng)上得可執(zhí)行程序。這就解決了unix軟件提供者的麻煩。Redhat linux既然是兼容unix

9、同,那么也具備這種特性。不同的軟件的在安裝過城中步驟根據(jù)編寫者的愛好,可能不相同,但是通常的步驟如下:1、 獲取軟件2、 編譯前的工作準(zhǔn)備3、 開始編譯4、 安裝和部署假如我們有一份原代碼我們以ntfs-3g源代碼為例編譯前的準(zhǔn)備工作1、 詳細(xì)閱讀文件2、 準(zhǔn)備編譯所需要的組件3、 設(shè)置編譯參數(shù)詳細(xì)閱讀READMEREADME 通常情況下提供軟件的基本信息。包括作者,軟件實(shí)現(xiàn)的功能,遇到問題向隨報(bào)告等INSTALL這個(gè)文件就是交你如何安裝這個(gè)軟件Change log Changes這個(gè)文件一般都是軟件版本的修改記錄。比如增加了那些功能,何時(shí)修正等等信息準(zhǔn)備編譯所需要的組件某些軟件在編譯期間或者

10、執(zhí)行期間可能會(huì)依賴其他的軟件或者鏈接庫(kù),如果有這樣的情況,那么你就得在開始前確認(rèn)系統(tǒng)上是否存在這些軟件。大部分的install和readme都會(huì)提供說明設(shè)置編譯參數(shù):軟件編譯前也必須設(shè)置好編譯的參數(shù),以配置軟件的編譯環(huán)境,啟用那些功能?,F(xiàn)在大部分軟件都提供由autoconf /automake 產(chǎn)生的configure ,通過configure 這個(gè)shell腳本來(lái)可以很方便的獲得編譯參數(shù)執(zhí)行configure 時(shí),可能需要提供額外的參數(shù),不同的軟件提供的configure需要的配置可能不一樣。如果想要知道這個(gè)軟件configure 參數(shù)的話,可以執(zhí)行./configure help來(lái)查看 下

11、面我們以ntfs-3g為例首先用我們學(xué)過的解壓縮命令tar 來(lái)完成解壓我們可以看到這個(gè)源代碼包里面有很多文件下面我們通過./configure help來(lái)獲取參數(shù)上面我只截取去了一部分參數(shù)。常見的參數(shù)含義-prefix=指要安裝到那個(gè)目錄,不使用這個(gè)參數(shù)的戶就自動(dòng)默認(rèn)將可執(zhí)行文件和庫(kù)都分別放到/usr/local/bin 和usr/local/lib 或者/usr/lib 或者/lib。頭文件就放到/usr/local/include或者/usr/include 等目錄。如果指定了目錄這些文件都會(huì)安裝到你得而當(dāng)前目錄下。如果是64位的,庫(kù)都會(huì)放到lib64這個(gè)文件夾這些參數(shù)都可以自行指定,也可

12、以使用默認(rèn)的或者直接指定一個(gè)prefix=directory下面我們開始配置參數(shù)通過configure的默認(rèn)值來(lái)完成,上面的錯(cuò)誤是由于我沒有安裝c編譯器造成的安裝好編譯器后我們來(lái)做如下操作完成參數(shù)的配置后下面我們開始編譯程序Configure 產(chǎn)生的Makefile文件,常見的targetall 編譯所有的程序和鏈接庫(kù),產(chǎn)生Info,man等,all通常是configure 產(chǎn)生的Makefile中得一個(gè)target,也可以說是默認(rèn)值clean 就是清除上次編譯的記錄distclean 清除所有東西。包括Makefile 。執(zhí)行distclean后你得重新設(shè)置編譯參數(shù),再進(jìn)行編譯install

13、 安裝所有的程序,鏈接庫(kù),執(zhí)行文件引入文件等uninstall 卸載文件makefile文件的格式TARGET:DEPENDENCE_TARGETACTION下面我們開始編譯ntfs-3g如果想看它的編譯信息和錯(cuò)誤信息可以將其重導(dǎo)向到指定的文件以方便檢查直接執(zhí)行make 就行成功完成編譯下面我們看是安裝在這個(gè)安裝中剛開始我制定了prefix=/usr/local/ntfs-3g在安裝時(shí)報(bào)錯(cuò),后來(lái)我講./configure直接運(yùn)行,沒有指定prefix。是由于我制定了安裝過程中會(huì)覆蓋源文件導(dǎo)致的報(bào)錯(cuò)。上面要是沒有出現(xiàn)錯(cuò)誤信息就表明你已經(jīng)成功安裝了這個(gè)ntfs-3g安裝完成后就可以關(guān)在ntfs分區(qū)

14、了#mount t ntfs-3g /dev/sdb1 /mnt/sdb1這樣就完成了下面我們卸載掉程序這樣就卸載了一個(gè)程序了要使用make unstall 必須源代碼存在才行否者不行。上面我們簡(jiǎn)單的完成了一個(gè)叫ntfs-3g的源代碼包得安裝。這只是一個(gè)簡(jiǎn)單的范例,不是通用范例,每個(gè)程序都有自己的安裝方式,還是得看作者的喜好和使用習(xí)慣。不過大致的過程都是這樣安裝按成后我們?nèi)绻€有幫組文檔我就需要將幫組的路勁寫入到/etc/man.config,如果值使用默認(rèn)的參數(shù),幫組文檔就會(huì)放到指定的目錄下如下如果是自定義安裝的話就需要講范例幫助加入到/etc/man.config 中格式如上面圖像顯示的格

15、式在linux中我們?nèi)绾蝸?lái)管理庫(kù)連接了應(yīng)用軟件一般都會(huì)提供一些庫(kù)連接,以便給其他開發(fā)人員開發(fā)應(yīng)用軟件使用或者作為軟件動(dòng)態(tài)模塊加載靜態(tài)鏈接庫(kù)static-link library 是提供給軟件編譯時(shí)靜態(tài)鏈接使用的。一般說來(lái)靜態(tài)鏈接庫(kù)的文件命名為libNAME.A動(dòng)態(tài)鏈接庫(kù)則是程序在執(zhí)行期間,動(dòng)態(tài)加載鏈接庫(kù)提供的功能,習(xí)慣的命名凡是libNAME.so.VERSIONREDHAT ENTERPRISE 通常鏈接庫(kù)存放的位置lib目錄如果是64位的話,則為lib和lib64一個(gè)是lib是支持32,lib64支持64位。通過file 查看鏈接庫(kù)的示范管理動(dòng)態(tài)連接器動(dòng)態(tài)鏈接器主要是將動(dòng)態(tài)鏈接庫(kù)加載到內(nèi)核

16、當(dāng)中,提供給采用動(dòng)態(tài)鏈接方式產(chǎn)生的執(zhí)行文件的呼叫使用。/etc/ld.so.conf是動(dòng)態(tài)連接器的配置文件這個(gè)文件會(huì)指定了一個(gè)ld.so.conf.d的目錄用來(lái)存放自己自定義的內(nèi)容我們會(huì)看到上面的這些內(nèi)容下面我們可以查看一下其中一個(gè)的內(nèi)容,我們以mytsql這個(gè)為例在配置文件當(dāng)中使用如何配置ld.so.conf,如下配置如果是自己自定義的話下面我們還是以ntfs-3g為例,我后來(lái)講ntfs-3g指定到了/usr/local/ntfs#./configrue prefix=/usr/local/ntfs#make#make && make install現(xiàn)在我向正常調(diào)用某些庫(kù)時(shí)我

17、必須指定他的路徑然后使其生效通過指定的ldconfig來(lái)完成?;蛘呶以趌d.so.conf.d目錄下建立一個(gè)ntfs.conf然后執(zhí)行l(wèi)dconfig如果要?jiǎng)h除指定的動(dòng)態(tài)鏈接庫(kù)的話就直接在指定的目錄刪除指定的文件就可以了然后執(zhí)行l(wèi)dconfig就完成了。下面我們介紹rpm管理軟件包傳統(tǒng)的unix系統(tǒng)管理軟件到方法很復(fù)雜,那怪有人說,要成為unix系統(tǒng)的管理者,就得具有開發(fā)軟件的能力才行。如果redhat 的系統(tǒng)管理者要管理系統(tǒng)上所有的軟件的話,并且通過傳統(tǒng)方法的話,那么使用紅帽的人就瘋了,對(duì)于初學(xué)者來(lái)說基本上就放棄了linux的學(xué)習(xí)了。為了減輕管理者在管理軟件上得不變,紅帽開發(fā)了rpm軟件包管

18、理器。通過rpm 可以很方便的管理系統(tǒng)上得軟件。Rpm的介紹首先rpm包得組成部分RPM 軟件包文件Rpm是一種特殊的文件,里面封裝了軟件的程序,配置文件,說明文件,鏈接庫(kù)以及源代碼RPM 管理工具紅帽提供了一個(gè)叫做rpm 的管理工具以及其他的程序共工具。利用這些工具可以查詢,安裝,升級(jí),刪除和更新軟件包網(wǎng)絡(luò)資源因特網(wǎng)上有很多提供rpm軟件包的服務(wù)器,我們可以通過這些服務(wù)器取得rpm包,也有部分網(wǎng)站提供搜索rpm軟件包得功能,你可以利用這些網(wǎng)站搜索你需要的軟件包,紅帽的官方RHN站,讓管理者可以更新和遠(yuǎn)程管理REDHAT LINUXRPM數(shù)據(jù)庫(kù)Rpm數(shù)據(jù)庫(kù)會(huì)記錄安裝過的軟件信息。這些信息會(huì)保存

19、在/var/lib/rpm目錄如果rpm 的資料庫(kù)不見了,那么我們也就查不到相關(guān)的rpm包得信息了。所以注意保存Rpm包可以分為源代碼包和二進(jìn)制包兩種二進(jìn)制rpm包封裝著可以直接執(zhí)行的執(zhí)行文件,以及執(zhí)行程序相關(guān)的文件等。不過二進(jìn)制rpm的提供是與cpu有關(guān)的程序文件,只能安裝在你得計(jì)算機(jī)可以可以使用的版本源代碼rpm包這種rpm封裝者的應(yīng)用軟件的源代碼,所以稱作源代碼軟件包。原代碼軟件包rpm主要是用來(lái)制作build其他種類的rpm軟件包文件,安裝源代碼rpm包文件后,軟件會(huì)安裝在/usr/src/RedHat/SOURCE中。除非你要自己編譯二進(jìn)制軟件包Rpm包得命名規(guī)則PACKAGE-VE

20、RSION-RELEASE.TYPE.rpmPACKAGE 這是軟件的名稱VERSION:軟件的版本RELEASE 軟件包釋放的號(hào)碼TYPE 這個(gè)字段標(biāo)示這個(gè)rpm軟件包得文件類型:常見的類型如下I386,i486,i586,i686 這些都是針對(duì)interl80*86兼容cpu所編譯的binaryrpm包Ia32 ,ia64 這是針對(duì)interl ia32與ia64架構(gòu)編譯的binary rpm包Alpha 這是針對(duì)dec alpha 平臺(tái)編譯的Sparc 這是針對(duì)sunsparc的Src 就是源碼rpm包Noarch 標(biāo)示獨(dú)立的rpm軟件包下面我們來(lái)介紹一下rpm工具首我們來(lái)介紹一下相關(guān)r

21、pm的選項(xiàng)說明1、安裝語(yǔ)法:#rpm i 選項(xiàng) file.rpm file2.rpm-h 安裝時(shí)輸出hash記號(hào)(“#”),顯示安裝進(jìn)度-test 指對(duì)安裝進(jìn)行測(cè)試,不安裝-percent 以百分比的形式來(lái)輸出安裝得進(jìn)度-excludedocs 不安裝軟件包中得文件文件-includedocs 安裝文檔-replacepkgs 強(qiáng)制重新安裝的軟件包-replacefiles 替換屬于其他軟件包的文件-force 忽略軟件包以及文件沖突強(qiáng)制安裝-noscript 不運(yùn)行安裝和后腳本安裝-ignorearch 不校驗(yàn)軟件包的結(jié)構(gòu)-ignoreos 不檢查軟件運(yùn)行的操作系統(tǒng)-nodeps 不檢查依賴

22、性-ftpproxy <host> 用host作為代理-ftport <port> 指定ftp端口-v 顯示附加信息-vv顯示調(diào)試信息-root <path> 讓rpm包執(zhí)行路徑作為根目錄,這樣原裝和后安裝程序都會(huì)安裝在這個(gè)目錄下。-dbpath <path>設(shè)定rpm資料庫(kù)的所在路徑2、刪除#rpm e 選項(xiàng) pkg1 pkg2-test 只執(zhí)行刪除的測(cè)試-noscript 不運(yùn)行預(yù)安裝和后安裝腳本程序-nodeps 不檢查依賴性-vv 顯示調(diào)試信息3|升級(jí)#rpm U or(-upgrade) 選項(xiàng) file.rpm file2.rpm-h輸

23、出hash號(hào)-oldpackage 允許升級(jí)到一個(gè)老版本-test 只進(jìn)行升級(jí)測(cè)試-F 更新軟件包,如果軟件包新就更新到新版本,如果一樣就不安裝-v顯示附加信息4、 查詢#rpm q or(query) -p查詢軟件包的文件-f 查詢某個(gè)文件所屬的軟件包-a 查詢所有安裝的軟件包-g 查詢屬于組的軟件包-whatrequires查詢所有需要x功能的軟件包-i顯示概要信息-l 顯示軟件包中得文件列表-c顯示配置文件的列表-d顯示文檔列表-v顯示附加參數(shù)5、 校驗(yàn)已安裝軟件包#rpm V or(query)-p 查詢驗(yàn)證指定的軟件包-f 校驗(yàn)file所屬的軟件包-a 校驗(yàn)所有軟件包-g校驗(yàn)所屬組的

24、軟件包-v顯示附加信息6、 校驗(yàn)軟件包的文件#rpm K or(-checksig )選項(xiàng) file.rpm file2.rpmCHECKSIG 檢查簽名認(rèn)證是否正確-nopgp不校驗(yàn)pgp簽名其他的rpm選項(xiàng)-rebuild重建rpm資料庫(kù)-initdb 創(chuàng)建一個(gè)新的rpm資料庫(kù)-quiet盡量減少輸出-version 顯示當(dāng)前rpm的版本下面就是范例:1、我們這些安裝都是以來(lái)安裝zsh這個(gè)包2、測(cè)試不安裝軟件包3、強(qiáng)制重新安裝軟件包在此執(zhí)行就提示軟件包已經(jīng)安裝4、強(qiáng)制安裝軟件包忽略文件的沖突5、 指定路徑安裝軟件包由于指定路徑就直接報(bào)錯(cuò)找不到庫(kù)文件,所以最好默認(rèn)安裝軟件包6、 如果存在依賴

25、該如何安裝了依賴于python-deltarm,下面我們來(lái)安裝python-deltarm查詢已安裝的軟件包1、 直接帶q參數(shù)查詢2、 查詢所有的軟件包找出zsh3、 查詢某個(gè)文件所屬的軟件包4、 查詢zsh軟件包包含那些文件5、 查看軟件包的配置文件6、 顯示軟件的文檔表7、查看概要信息7、 查詢軟件所需要的文件8、 查詢軟件的修改記錄9、 查看某個(gè)軟件包的信息,沒安裝的軟件包信息更新軟件如果版本比較低就升級(jí)安裝1、 如果升級(jí)版本相同將提示已經(jīng)安裝,可以使用強(qiáng)制升級(jí)安裝2、 刷新軟件包,只要版本相同就不更新,即使強(qiáng)制也不更新校驗(yàn)軟件包1、 校驗(yàn)軟件包,如果沒變化不顯示任何信息2、如果我們直接

26、touch一下zsh,修改其時(shí)間卸載軟件包1、 直接卸載軟件包2、 如果我們卸載軟件包由依賴性該如何完成了。以卸載deltarpm為例有依賴來(lái)那個(gè)軟件包就先卸載那個(gè)軟件包src.rpm包得安裝方法一:直接安裝軟件包,以ksh.src.rpm為例在過去RHEL5以及之前的版本會(huì)在/usr/src/redhat下SOURCE 和SPECS這兩個(gè)目錄現(xiàn)在rhel6是找不到這個(gè)目錄的默認(rèn)情況下會(huì)在/root/下生成一個(gè)rpmbuild的目錄這個(gè)下面就有SOURCE 和SPECS著兩個(gè)目錄安裝軟件包后就會(huì)到這兩個(gè)目錄中去rootrhelserver opt# rpm -ivh bind-9.7.0-1.

27、el6.src.rpm warning: bind-9.7.0-1.el6.src.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY1:bind # 100%安裝完成后到指定的目錄rootrhelserver src# cd /root/rpmbuild/rootrhelserver rpmbuild# lsSOURCES SPECSrootrhelserver rpmbuild# cd SOURCES/rootrhelserver SOURCES# lsbind-9.3.1rc1-sdb_tools-Makefile.in

28、 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看到這個(gè)目錄下的文件了吧下面的安裝就和之前的一樣了下面就將其打包成為rpm包,前提你首先要安裝rpm-build工具#cd SPECS#rpmbuild -bb bind.specwarning: Could not canonicalize hostname: Wrote: /root/rpmbuild/RPMS/x86_64/bind-9.7.0-1.el

29、6.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/bind-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/R

30、PMS/x86_64/bind-chroot-9.7.0-1.el6.x86_64.rpmExecuting(%clean): /bin/sh -e /var/tmp/rpm-tmp.JbocUf+ umask 022+ cd /root/rpmbuild/BUILD+ cd bind-9.7.0+ rm -rf /root/rpmbuild/BUILDROOT/bind-9.7.0-1.el6.x86_64+ :+ exit 0rootrhelserver SPECS# 完成后會(huì)在RPMS下生成需要的指定的rpm包了rootrhelserver RPMS# cd x86_64/rootrhe

31、lserver 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-sdb-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.rpmrootrhelserver x86_64# 成功完了編譯了,后面的安裝就自行解決二、 下面介紹yum的安裝如果你沒由登陸rhn那么你就不能使用yum源,那么你只有自己建立一個(gè)y

32、um源,可以使本地或者網(wǎng)絡(luò)源yum的特點(diǎn)1、自動(dòng)解決包的依賴性,能夠方便安裝,刪除,更新軟件包2、便于管理大量系統(tǒng)的更新問題3、可以同時(shí)配置多個(gè)yum源4、簡(jiǎn)潔的配置文件5、保持與rpm數(shù)據(jù)的一直性6、有一個(gè)比較詳細(xì)的log7、使用方便8、yum是rhel/centos/fedora系統(tǒng)自帶的建立yum源的步驟如下:1、 將所有的rpm文件放到同一個(gè)目錄下2、 在該目錄建立yum下載數(shù)據(jù)源3、 通過ftp或者h(yuǎn)ttp分享出去就行了4、 這樣就建立好了一個(gè)yum源了下面我們首先來(lái)建立一個(gè)本地院適合于本地安裝在做源之前安裝createrepo 這個(gè)軟件包,它依賴于deltram 和python-d

33、eltram兩個(gè)軟件包的安裝1、 首先將源文件放到指定目錄下我們以/var/ftp/pub/localsource將cd 包得所有內(nèi)容拷貝到/var/ftp/pub/localsourcerootrhelserver pub# cp -ar /mnt/cdrom/Packages /var/ftp/pub/localsBource/2、 創(chuàng)建下載數(shù)據(jù)源完成創(chuàng)建3、 建立一yum下載源的文件#vim local.repoPackagesname=Packagesbaseurl=file:/var/ftp/pub/localsource/enabled=1gpgchecked=0gpgkey=fi

34、le:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release清楚緩存中的頭和文件FTPyum安裝源首先安裝vsftpd軟件1、 將文件拷貝到/var/ftp/pub/ftpsource下2、下載數(shù)據(jù)源3、創(chuàng)建分組信息建立yum下載源定義文件rhel-Packagesname=Packagesbaseurl= 0/pub/ftpsource /Packagesenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-Serverna

35、me=Serverbaseurl= 0/pub/ftpsource /Serverenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-LoadBalancername=LoadBalancerbaseurl= 0/pub/ftpsource /LoadBalancerenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-

36、HighAvailabilityname=HighAvailabilitybaseurl=0/pub/ftpsource /HighAvailabilityenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-ResilientStoragename=ResilientStoragebaseurl=0/pub/ftpsource /ResilientStorageenabled=1gpgcheck=0gpgkey=file:

37、/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-ScalableFileSystemname=ScalableFileSystembaseurl=0/pub/ftpsource /ScalableFileSystemenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release啟動(dòng)vsftpd服務(wù)#yum clean all#yum list配置文件yum.conf的設(shè)置內(nèi)容rootstation20 pub# vim /etc

38、/yum.conf maincachedir=/var/cache/yum/$basearch/$releaseverkeepcache=0 指定緩存目錄默認(rèn)為/var/cache/yumdebuglevel=2 指定日志等級(jí)logfile=/var/log/yum.log 指定日志文件路徑exactarch=1 是否升級(jí)與已安裝的軟件包c(diǎn)pu體系結(jié)構(gòu)一致的包,默認(rèn)為1表示可以不升級(jí)obsoletes=1 是否升級(jí)過時(shí)的軟件包,默認(rèn)1表示可以升級(jí)。0表示不升級(jí)gpgcheck=1 為所有軟件倉(cāng)庫(kù)的軟件包是否啟用或者禁用,GPG簽名,默認(rèn)時(shí)簽名認(rèn)證1,0表示不認(rèn)證plugins=1 是否啟用插件

39、installonly_limit=3 安裝內(nèi)核型軟件包的數(shù)量,默認(rèn)3為RHEL6配置EPELrepo為了獲得更高質(zhì)量的,高性能,高可靠性,有需要方便易用的軟件包的新功能。那么Fedora project退出的EPEL正好合適,這是有FEDORA社區(qū)打造,為RHEL的衍生發(fā)行般centos,linux等提供高質(zhì)量的軟件包項(xiàng)目,安裝非常簡(jiǎn)單rootredhatlinux # rpm -ivh Retrieving Preparing. # 100%package epel-release-6-5.noarch is already installedrootredhatlinux #rootredhatlinux # rpm -Uvh Retrieving Preparing. # 100%package epel-release-6-5.noarch is already installedrootredhatlinux #下面就是來(lái)學(xué)習(xí)yum的用法:#yum options command args#yum常見的共享參數(shù)-y 表示yum需回答問題,一律為yes-c config_file 以config_file 取代默

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論