運維之道 RPM

2021-10-01 14:31:27 字數 2734 閱讀 5028

一、rpm工具簡介

rpm是"redhat package manager"的縮寫,根據名字也能猜到這是redhat公司開發出來的。rpm 是以一種資料庫記錄的方式來將你所需要的套件安裝到你的linux 主機的一套管理程式。也就是說,你的linux系統中存在著乙個關於rpm的資料庫,它記錄了安裝的包以及包與包之間依賴相關性。rpm包是預先在linux機器上編譯好並打包好的檔案,安裝起來非常快捷。但是也有一些缺點,比如安裝的環境必須與編譯時的環境一致或者相當;包與包之間存在著相互依賴的情況;解除安裝包時需要先把依賴的包解除安裝掉,如果依賴的包是系統所必須的,那就不能解除安裝這個包,否則會造成系統崩潰。

如果你的光碟機中還有系統安裝盤的話,你可以通過mount /dev/cdrom /mnt命令把光碟機掛載到/mnt目錄下,那麼你在/mnt/centos目錄下看到很多.rpm的檔案,這就是rpm包了。

每乙個rpm包的名稱都由"-「和」."分成了若干部分。就拿 a2ps-4.13b-57.2.el5.i386.rpm 這個包來解釋一下,a2ps 為包名4.13b則為版本資訊57.2.el5為發布版本號i386為執行平台。其中執行平台常見的有i386, i586, i686, x86_64 ,需要你注意的是cpu目前是分32位和64位的,i386,i586和i686都為32位平台,x86_64則代表為64位的平台。另外有些rpm包並沒有寫具體的平台而是noarch,這代表這個rpm包沒有硬體平台限制。例如 alacarte-0.10.0-1.fc6.noarch.rpm 。下面介紹一下rpm常用的命令。

二、rpm命令使用解析

1、安裝乙個rpm包

rpm -ivh rpm包名

2、公升級乙個rpm包

rpm -uvh filename -u

3、解除安裝乙個rpm包

4、查詢乙個包是否安裝

rpm -q rpm包名(這裡的包名,是不帶有平台資訊以及字尾名的)

5、查詢當前系統中所安裝的所有rpm包

rpm -qa | head(分頁查詢)

6、查詢乙個rpm包的相關資訊

rpm -qi 包名(同樣不需要加平台資訊與字尾名)

7、列出乙個rpm包安裝的檔案

rpm -ql 包名

通過上面的命令可以看出vim是通過安裝vim-enhanced-7.0.109-6.el5這個rpm包得來的。那麼反過來如何通過乙個檔案去查詢是由安裝哪個rpm包得來的?

8、列出某乙個檔案屬於哪個rpm包

rpm -qf 檔案的絕對路徑

前面講過如何查詢乙個檔案(可執行命令)的絕對路徑

所以你也可以把這兩條命令連起來寫

三、安裝原始碼包

原始碼包的編譯用到了linux系統裡的編譯器,常見的原始碼包一般都是用c語言開發的,這也是因為c語言為linux上最標準的程式語言。linux上的c語言編譯器叫做gcc,利用它就可以把c語言變成可執行的二進位制檔案。所以如果你的機器上沒有安裝gcc就沒有辦法去編譯原始碼。你可以使用 yum install -y gcc 來完成安裝。

安裝乙個原始碼包,通常需要三個步驟:

1、./config在這一步可以定製功能,加上相應的選項即可,具有有什麼選項可以通過」./config --help 」命令來檢視。在這一步會自動檢測你的linux系統與相關的套件是否有編譯該原始碼包時需要的庫,因為一旦缺少某個庫就不能完成編譯。只有檢測通過後才會生成乙個makefile檔案。

2、make使用這個命令會根據makefile檔案中預設的引數進行編譯,這一步其實就是gcc在工作了。

3、make install安裝步驟,生成相關的軟體存放目錄和配置檔案的過程。

例項:2、解壓原始碼包

3、配置相關的選項,並生成makefile

4、進行編譯

這一步操作,就是把源**編譯成二進位制的可執行檔案,這一步也是最漫長的一步,編譯時間的長短取決於源**的多少和機器配置。

5、安裝

在安裝前,先確認上一步操作是否成功完成。

make install 會建立相應的目錄以及檔案。當完成安裝後,會在/usr/local目錄下多了乙個apache2目錄,這就是apache所安裝的目錄了。

yum、rpm、原始碼安裝,三者區別

《IT運維之道》一導讀

it運維之道 這麼多年,從事it服務及其管理工作,覺得it服務就像一本奇書,初讀它時,覺得懂了,用起來卻差強人意 有時候突然從裡面發現了什麼似的,又轉瞬即逝 有些道理看似平淡,多年的感悟才體會到是千真萬確的真理。於是,興趣所致,常常在夜深人靜時把一點一滴的得與失進行思考總結,日積月累,便有了一些積澱...

運維之道 運維技巧百寶箱

1 暫停 並在後台執行命令 ctrl z 暫停應用程式 fg 重新將程式喚醒到前台 2 tldr 快速查詢命令使用方法 man進化版 tldr的意思是 too long,don t read 翻譯成中文就是 太長不讀 它比man,help這種獲取命令列幫助資訊的方式好太多。tldr安裝命令如下 su...

讀《Linux運維之道》有感

linux系統越來越流行,對於不喜歡玩遊戲的我,似乎也找不理由去拒絕它 曾經聽過某位朋友說過 linux的份額沒window的高,原因是window擁有一大批遊戲玩家和電腦文盲!現在回想,覺得這話並不全對,對於遊戲玩家,window平台很好的支援了幾乎所有的遊戲,但是介面操作,linux相比wind...