Linux安裝RPM包或源碼包解析 及 課後習題解答----工坊學習記錄--3.3

一、安裝 RPM 包

1.RPM工具

RPM是Red Hat Package Manager的縮寫,由Red Hat公司開發。它是以一種數據庫記錄的方式將我們所需要的套件安裝到Linux主機的一套管理程序。也就是說,你的Linux系統中存在着一個關於RPM的數據庫,它記錄了安裝的包以及包與包之間的依賴關係。
 
如果你的虛擬機光驅中還有系統安裝盤鏡像,就可以通過執行如下命令把光驅掛載到/mnt目錄下。先檢查一下VMware右下角的小光驅圖標是否點亮,如果沒有,點擊一下,再點擊“連接”就可以點亮它。當掛載光驅後,會在/mnt/Packages目錄下看到很多後綴爲.rpm的文件,這些文件就是RPM包。
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
 

1.1 安裝 RPM 包

安裝RPM包的命令如下:
在這裏插入圖片描述

  • -i:表示安裝。
  • -v:表示可視化。
  • -h:表示顯示安裝進度。
    另外,在安裝RPM包時,常用的附帶參數還包括如下幾項。
  • --force:表示強制安裝,即使覆蓋屬於其他包的文件也要安裝。
  • --nodeps:表示當要安裝的RPM包依賴於其他包時,即使其他包沒有安裝,也要安裝這個包。
     

1.2 升級 RPM 包

升級RPM包的命令爲 rpm -Uvh filename,其中 -U 選項表示升級
 

1.3 卸載 RPM 包

卸載RPM包的命令爲 rpm -e filename。卸載時,-e選項後面的filename和安裝時是有區別的。安裝時,是把一個存在的文件作爲參數,而卸載時只需要包名即可。
在這裏插入圖片描述
 

1.4 查詢一個包是否已安裝

查詢一個包的命令爲 rpm -q RPM包名,這裏的“包名”是不帶平臺信息和後綴名的。示例命令如下:
在這裏插入圖片描述
 

1.5 得到一個已安裝的RPM包的相關信息

要得到一個已安裝RPM包的相關信息,可以使用命令rpm-qi包名,這裏也不需要加平臺信息和後綴名。示例命令如下:
在這裏插入圖片描述
 

1.6 列出一個 RPM 包的安裝文件

列出一個RPM包的安裝文件的命令爲rpm -ql包名,示例命令如下:
在這裏插入圖片描述
 

1.7 列出某個文件屬於哪個RPM包

列出某個文件屬於哪個RPM包的命令爲rpm-qf文件的絕對路徑,示例命令如下:
在這裏插入圖片描述
 

2.yum工具

2.1 列出所有可用的安裝包

使用yum list命令,可以列出所有的RPM包資源,如下所示:
在這裏插入圖片描述

從上例中可以看到,有 mirrors.njupt.edu.cn 信息出現,這是在告訴用戶,它是從 mirrors.njupt.edu.cn 這裏下載到的RPM包資源。從上例中還可以看到,最左側是RPM包名,中間是版本信息,最右側是安裝信息。
如果已安裝,最右側就顯示@base、@updates或者@anaconda,它們前面都會有一個@符號,這很好區分。如果未安裝,則顯示base或者anaconda;如果RPM包已安裝但需要升級,則顯示updates。
如果你仔細看看,就會發現yumlist命令會先列出已經安裝的包(installed package),然後再列出可以安裝的包(available package)。

 

2.2 搜索 RPM 包

搜索RPM包的命令爲 yum search [相關關鍵詞],示例命令如下:
在這裏插入圖片描述
 

2.3安裝RPM包

安裝RPM包的命令爲yum install [-y] [RPM包名],如果不加-y選項,則會列出需要安裝的東西,再詢問是否安裝。示例命令如下:
在這裏插入圖片描述
在這裏插入圖片描述
 

2.4 卸載RPM包

卸載RPM包的命令爲yum remove [-y] [RPM包名],示例命令如下:

在這裏插入圖片描述
卸載和安裝一樣,也可以直接加上-y選項,從而省略與用戶交互的那一步。這裏需要注意一下,卸載某個RPM包時一定要看清楚,不要連其他重要的RPM包也一起卸載了,以免影響正常的業務,
所以使用yum remove命令卸載包時,還是不要加 -y 選項了。
 

2.5 升級RPM包

升級RPM包的命令爲yum update [-y] [RPM包],示例命令如下:
在這裏插入圖片描述
在這裏插入圖片描述
 

2.6 使用本地光盤製作yum源

這裏我使用來自書籍《CentOS系統配置與管理》的方法:

1.mount /dev/cdrom /mnt/ 掛載光盤;
2.cd /etc/yum.repos.d/ 進入yum配置的目錄下;
3.mkdir /etc/yum.repos.d/bak 建立備份文件;
4.mv /etc/yum.repos.d/Cent /etc/yum.repos.d//bak/ 備份原來的配置文件。
5.vi /etc/yum.repos.d/local.repo 新建local.repo文件(新建的文件必須以 .repo爲後綴,local可以修改)
local.repo文件內容如下:
[local_server]
name=This is a local repo
baseurl=file:///mnt
enabled=1
gpgcheck=0
保存退出;
6.使用yum list 命令更新yum配置即可。

 

3. 源碼包

安裝源碼包通常需要以下3個步驟:
(1)/configure。這一步可以定製功能,加上相應的選項即可,具體有什麼選項可以通過命令./configure–help來查看。這一步會自動檢測你的Linux系統與相關的套件是否有編譯該源碼包時所需要的庫,因爲一旦缺少某個庫,就不能完成編譯。只有檢測通過後,纔會生成Makefile文件。
(2)make。使用這個命令,會根據Makefile文件中預設的參數進行編譯,這一步其實就是gcc在工作了。
(3)make instal1。這一步是安裝步驟,用於創建相關軟件的存放目錄和配置文件。
對於以上這3個步驟,並不是所有的源碼包軟件都一樣,也就是說,源碼包的安裝並沒有標準的安裝步驟。這就需要你拿到源碼包解壓後,進入目錄,找到相關的幫助文檔(通常,會以INSTALL或者README爲文件名)。

 
 

二、課後習題

(1)區分rpm與-qi、-qf、-ql和-qa這4個不同選項組合的作用。
答:
rpm -qi //查詢已經安裝的某個RPM軟件包的信息
rpm -qf //查詢某個程序文件是由哪個RPM軟件包安裝的
rpm -ql //查詢某個RPM軟件包的所有安裝文件
rpm -qa //查詢所有已經安裝的RPM軟件包

(2)rpm-qi後面如果跟一個未安裝的包名,會顯示什麼信息?
答:會提示沒有安裝:
在這裏插入圖片描述

(3)vim命令是由哪個RPM包安裝來的?
答:
在這裏插入圖片描述

(4)使用RPM工具安裝和卸載某個包的命令是什麼?
答:
rpm -ivh rpm [包名稱]
rpm -e [包名稱]

(5)當安裝某個有依賴關係的RPM包時,如何忽略依賴關係,強制安裝該包?
答:命令 rpm -ivh 在結尾加上–nodeps

(6)如何使用RPM工具升級包?
答:rpm -Uvh

(7)請使用yum工具搜索包含關鍵詞tidy的RPM包並安裝,安裝後再使用yum工具將其卸載。
答:如圖
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

(8)如何使用yum工具來下載RPM包?
答: yum install -y protobuf-vim

(9)請到PHP的官方網站(http://www.php.net/)下載PHP的源碼包,並動手試試編譯安裝它。
答:地址爲:https://www.php.net/downloads.php/php-7.4.3.tar.bz2,使用wget命令下載
在這裏插入圖片描述

(10)查資料指出yum upgrade與yum update的區別,它們在什麼情況下使用?
答:百度得
yum upgrade 與yum update 都能更新系統的所有軟件包,不同的就是 upgrade相當一次大規模的升級,連帶了舊的要淘汰的包也升級。update 和 upgrade 的側重點不一樣,update主要是使軟件達到最新,但upgrade更側重的是軟件功能得到一個很大的提升,區別於頻繁的發佈最新的補丁。upgrade不改變軟件設置和系統設置,系統版本升級,內核不改變;update改變軟件設置和系統設置,系統版本內核都升級。
yum upgrade : 用於大規模的版本升級,更新Linux系統和整個軟件版本
yum update : 用於安裝補丁文件,更新內核和軟件包到最新

(11)如何查看Linux系統中(CentOS)是否安裝過某個包?
答:rpm -qa | grep 包名稱

(12)./configure完成後,我們並不知道有沒有成功,用什麼命令可以驗證呢?
答:echo $?

(13)如果在./configure這一步出現這樣的錯誤:“configure:error:no acceptable C compiler found in SPATH”,我們該怎麼辦?
答:首先這個錯誤的命令是說:在SPATH中找不到可接受的C編譯器,所以使用命令安裝GNU編譯器套件:yum install -y gcc

(14)有時你會忘記某個編譯參數是如何寫的,你怎麼辦?
答: ./configure --help

(15)如何使用光盤構建yum倉庫?
答:具體步驟參考上文 2.2.6

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章