【Linux】軟件管理機制和軟件安裝

文章目錄

  • 1. 軟件管理器
    • 1.1 Linux的軟件管理方式
    • 1.2 Linux的常見軟件管理機制RPM和dpkg
  • 2. RPM
    • 2.1 rpm安裝
    • 2.2 rpm升級與更新
    • 2.3 rpm查詢
    • 2.4 rpm驗證與數字簽名
    • 2.5 rpm反安裝與重建數據庫
  • 3. YUM
    • 3.1 yum查詢
    • 3.2 yum安裝/升級
    • 3.3 yum刪除
    • 3.4 yum的配置文件
    • 3.5 yum的軟件群組功能
  • 4. SRPM
    • 4.1 安裝srpm文件

1. 軟件管理器

1.1 Linux的軟件管理方式

  • Linux開發商先在固定的硬件平臺和操作系統上,將需要安裝或升級的軟件編譯好,并將與這個軟件相關的所有文件打包成一個軟件安裝文件(這個軟件安裝文件中還包含了預先檢測系統與依賴軟件的腳本,并提供記錄該軟件提供的所有文件信息等)然后將這個軟件安裝文件發布。
  • 客戶端獲取該文件之后,僅需通過執行特定的命令來安裝,該文件就會依照內部的腳本來檢測依賴的輔助軟件是否存在,若安裝的環境符合要求,就會開始安裝。安裝完后還會將該軟件的信息寫入軟件管理機制中,以便未來進行升級、刪除等。

1.2 Linux的常見軟件管理機制RPM和dpkg

軟件管理機制使用命令在線升級功能發行商
RPMrpm、rpmbuildyumRed Hat/Fedora
DPKGdpkgaptDebian/Ubuntu

2. RPM

RPM:RedHat Package Manager,rpm是一種以數據庫記錄的方式,將所需的軟件安裝到Linux系統中的一套軟件管理機制。

RPM要求要將安裝的軟件先編譯過,并打包為RPM機制的文件,并通過打包好的軟件里默認的數據庫,記錄該軟件要安裝的時候必須具備的依賴屬性軟件。

RPM屬性依賴的解決方式:YUM在線升級

  • 發行商先將發布的軟件放到yum服務器,然后分析這些軟件的依賴屬性問題,將這些信息(依賴項,以及所在的url)記錄成一個表;
  • 客戶端有軟件安裝需求時,會主動向yum服務器的軟件源地址下載列表,然后與本機rpm數據庫中已存在的軟件數據相比較,從而一次性安裝完所有具有依賴屬性的軟件。

2.1 rpm安裝

P.S. 只有root才能執行rpm命令。

rpm -ivh [packageName]
-i : install的意思
-v : 查看詳細安裝信息
-h : 顯示安裝進度

安裝完后,軟件相關的信息會被寫入/var/lib/rpm目錄下的數據庫文件中。

2.2 rpm升級與更新

-Uvh : 后接的軟件若沒有安裝過,則直接安裝;若之前有安裝過舊版,則自動更新到新版
-Fvh : 若后接的軟件未安裝,則該軟件不會被安裝,即之后已安裝的軟件才會被升級

2.3 rpm查詢

rpm查詢是在/var/lib/rpm/下的數據庫文件中進行查詢的

rpm -qa-q : 僅查詢,后接已安裝的軟件名稱
-qa : 列出所有已安裝的軟件名稱
-qi : 列出該軟件的詳細信息
-ql : 列出該軟件所有的文件與目錄所在完整文件名
-qc : 列出該軟件的所有配置文件
-qd : 列出該軟件的所有說明文件
-qR : 列出與該軟件有關的依賴軟件所含的文件
-qf : 后接文件名,找出該文件屬于哪個已安裝的軟件

2.4 rpm驗證與數字簽名

驗證(Verify)的作用方式是/var/lib/rpm/下的數據庫內容與當前系統下所有安裝的軟件作對比,即若當有文件修改、或誤刪了某個文件,就可使用驗證的功能來驗證下原來的文件。

rpm -Va
-V : 后接軟件名,若該軟件所含的文件有修改才會顯示
-Va : 列出目前系統上所有被修改過的文件
-Vp : 后接某個rpm文件的文件名,列出該軟件內可能被修改過的文件
-Vf : 后接系統上的某個文件,顯示該文件是否被修改過

示例:

[root@server8 rpm]# rpm -Vf /var/log/lastlog
.M....G..  g /var/log/lastlogS : file size differs,文件的大小是否被改變
M : mode differs,文件的類型或屬性(rwx)是否被修改
5 : md5sum differs,md5校驗值已不同
D : device major/minor number mis-match,設備的主/次代碼已改變
L : 鏈接路徑已改變
U : user ownership differs,文件的所屬用戶已改變
G : group ownership differ,文件所屬用戶組已改變
T : mtime differs,文件的mtime改變
P : capability differs,功能已改變c : config file, 配置文件
d : documentation,數據文件
g : ghost file,幽靈文件,通常是該文件不被某個軟件所包含,較少發生
l : license file,許可證文件
r : readme,自述文件

數字簽名,是用來檢驗軟件來源的,當要安裝一個rpm文件時:

  1. 先要安裝原廠發布的公鑰文件;
  2. 實際安裝rpm軟件時,rpm命令會讀取rpm文件的簽名信息,并與本機系統內的簽名信息相比較;
  3. 若簽名相同則予以安裝,若找不到相關的簽名信息時,則告警并停止安裝。

以CentOs為例,CentOS使用的數字簽名系統為GnuPG(GPG),GPG通過哈希運算,算出獨一無二的數字簽名或專屬密鑰。

# CentOS的數字簽名位于的路徑
[root@server8 rpm-gpg]# pwd
/etc/pki/rpm-gpg
[root@server8 rpm-gpg]# ll
總用量 12
-rw-r--r--. 1 root root 1683 914 2021 RPM-GPG-KEY-centosofficial
-rw-r--r--. 1 root root 1687 914 2021 RPM-GPG-KEY-centostesting
-rw-r--r--. 1 root root 1855 818 2021 RPM-GPG-KEY-redhat-release
[root@server8 rpm-gpg]# ll RPM-GPG-KEY-centosofficial
-rw-r--r--. 1 root root 1683 914 2021 RPM-GPG-KEY-centosofficial# 安裝公鑰文件
rpm --import RPM-GPG-KEY-centosofficial# 安裝完后,密鑰基本上都是使用pubkey作為軟件的名稱字段
[root@server8 rpm-gpg]# rpm -qa | grep -ai "pubkey"
gpg-pubkey-8483c65d-5ccc5b19# 可使用-qi查看該軟件的信息

2.5 rpm反安裝與重建數據庫

反安裝即將軟件卸載,但要注意的是卸載的時候一定要由最上層往下解除

rpm -e [要刪除的軟件]# rpm重建數據庫
rpm --rebuilddb

3. YUM

3.1 yum查詢

yum [options] [查詢工作選項] [相關參數]# options
-y : 當yum需等待使用者輸入時,該選項可自動提供yes回應
--installroot=/some/path/ : 將該軟件安裝在/some/path/而不使用默認路徑# [查詢工作選項 ] [相關參數]
search : 查找某個軟件名稱或是描述的重要關鍵字
list : 列出目前yum管理的所有軟件與版本,類似rpm -qa
info : 同上,類似rpm -qai
provides : 從文件中去查找軟件,類似rpm -qf

3.2 yum安裝/升級

yum [option] [安裝與升級的工作選項] [相關參數]
# 選項與參數
install : 后接要安裝的軟件
update : 后接要升級的軟件,若要升級整個系統,則不接參數直接update

3.3 yum刪除

yum remove [要刪除的軟件]

3.4 yum的配置文件

yum的配置文件存放在/etc/yum.repos.d/路徑下,文件的后綴為.repo

[root@server8 yum.repos.d]# cat CentOS-Linux-BaseOS.repo
# CentOS-Linux-BaseOS.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client.  You should use this for CentOS updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.[baseos]
name=CentOS Linux $releasever - BaseOS
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

文件內容說明:

[base] : 軟件源名字,中括號一定要存在,名字可以自己取,但不能有兩個相同的軟件源名稱,否則yum會不知道該到哪里去找軟件源相關的軟件列表
name : 僅說明該軟件源的意義,重要性不高
mirrorlist= : 列出該軟件源可使用的鏡像站,若不想使用可直接注釋掉
baseurl= : 最重要,后接軟件源實際地址。mirrorlist是由yum程序去識別鏡像站;baseurl則是指定固定一個軟件源url
enable=1 : 啟用該軟件源
gpgcheck=1 : 數字簽名,指定是否需要查看rpm文件內的數字簽名
gpgkey= : 數字簽名的公鑰文件所在位置,使用默認值即可

關于軟件源:

# 列出當前yum服務器所使用的軟件源
yum repolist all
# 回顯內容一共有三列
# 列1 : repoid 
# 列2 : repo name
# 列3 : status , 表示該軟件源是否正常運行

修改軟件源:

# 例如將yum源替換為國內源
# 先備份原始yum源文件
mkdir repoBak
cp -r *.repo repoBak
# 刪除原來的repo文件,或者將其置為enable=0
# 下載國內源(阿里)的配置文件
sudo wget -O /etc/yum.repos.d/CentOS-Base-Ali.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# P.S. Cetnos-8.repo已停止維護,使用Centos-vault-8.5.2111.repo# 清理yum緩存.更換yum源之后需要清理原有緩存,以便使用新的源進行軟件包更新
yum clean all
yum makecache

新建.repo文件。

3.5 yum的軟件群組功能

yum [群組功能] [軟件群組]
# 選項與參數
grouplist : 列出所有可使用的【軟件群組組】
groupinfo : 后接group name,則可了解該group內含的所有軟件名
groupinstall : 可安裝一整組的軟件群組
groupremove : 刪除某個軟件群組

4. SRPM

srpm文件是包含了軟件源碼的。srpm最大的優點就是可以讓用戶自行修改設置參數(makefile/configure的參數),以符合用戶自己的Linux環境。

4.1 安裝srpm文件

rpmbuild命令用于安裝srpm文件。使用默認值安裝srpm文件:

--rebuild : 該選項會見過后跟的srpm進行編譯和打包,最后產生rmp文件,但產生的rpm文件并未安裝到系統上
--recompile : 這個選項會直接編譯、打包并安裝

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76556.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76556.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android第三次面試總結(網絡篇)

在計算機網絡領域,網絡模型是理解通信原理的基礎框架。本文將詳細解析 OSI 參考模型和 TCP/IP 模型的分層結構、核心功能及實際應用,并通過對比幫助讀者建立完整的知識體系。 一、OSI 參考模型:七層架構的理論基石 OSI(開放系統…

OpenCV day5

函數內容接上文:OpenCV day4-CSDN博客 目錄 9.cv2.adaptiveThreshold(): 10.cv2.split(): 11.cv2.merge(): 12.cv2.add(): 13.cv2.subtract(): 14.cv2.multiply(): 15.cv2.divide(): 1…

智能運維新范式

在制造業、設備制造、工業物聯網等領域,“服務周期長、響應效率低” 始終是產品運維的痛點 —— 設備故障突發時,工程師千里奔赴現場的耗時耗力;非計劃停機帶來的生產損失;客戶對服務體驗的更高期待…… 傳統運維模式早已難以適應…

實現定時發送郵件,以及時間同步

定時發送郵件 部署郵件服務 查看有沒有安裝mailx,安裝了 [root192 ~]# rpm -q mailx mailx-12.5-43.fc38.x86_64去網易拿一下授權碼,寫到配置文件里 vim /etc/mail.rcset fromxxxxxxx163.com set smtpsmtp.163.com set smtp-auth-userxxxxxxx163.com set smtp-auth-passwor…

狀態模式:有限狀態機在電商訂單系統中的設計與實現

狀態模式:有限狀態機在電商訂單系統中的設計與實現 一、模式核心:用狀態切換驅動行為變化 在電商訂單系統中,訂單狀態會隨著用戶操作動態變化:「已創建」的訂單支付后變為「已支付」,發貨后變為「已發貨」&#xff0…

ubuntu 24.02部署java web服務

ubuntu 24.02 版本推薦使用jdk 21版本部署java web服務,開發后先使用sudo java -jar xxx.jar驗證運行結果。 jdk安裝:sudo apt install openjdk-21-jdk-headless 編輯服務文本 [Unit] DescriptionWebMgr Java Application Afternetwork.target mysql.…

深入淺出:LDAP 協議全面解析

在網絡安全和系統管理的世界中,LDAP(輕量級目錄訪問協議,Lightweight Directory Access Protocol)是一個不可忽視的核心技術。它廣泛應用于身份管理、認證授權以及目錄服務,尤其在企業級環境中占據重要地位。本文將從基…

AI書籍大模型微調-基于亮數據獲取垂直數據集

大模型的開源,使得每位小伙伴都能獲得AI的加持,包括你可以通過AIGC完成工作總結,圖片生成等。這種加持是通用性的,并不會對個人的工作帶來定制的影響,因此各個行業都出現了垂直領域大模型。 垂直大模型是如何訓練出來…

【2025軟考高級架構師】——計算機系統基礎(7)

摘要 本文主要介紹了計算機系統的組成,包括硬件和軟件兩大部分。硬件由處理器、存儲器、總線、接口和外部設備等組成,軟件則涵蓋系統軟件和應用軟件。文章還詳細闡述了馮諾依曼計算機的組成結構,包括 CPU、主存儲器、外存等,并解…

AI大模型之模型幻覺

模型幻覺(Model Hallucination)是大模型生成內容時脫離事實、虛構信息的一種現象,尤其在語言模型、圖像生成模型等中較為常見。為了更深入地理解這一現象,我們可以將其分為兩個維度進行分析:內在幻覺(Intrinsic Hallucination) 和 外在幻覺(Extrinsic Hallucination)。…

spring Ai---向量知識庫(一)

在一些垂直領域以及公司內部信息相關或者實時性相關的大模型應用,就無法直接使用chatGPT。 這個時候,向量知識庫就進入了。 通過坐標向量最接近的即為匹配相關答案。 向量模型定義:將文檔向量化,保證內容越相似的文本,…

Viper配置管理筆記

一、什么是 Viper? Viper 是 Go 語言的一個強大工具,就像一個超級管家,專門負責幫你打理程序的各種配置。它能把配置文件(比如 JSON、YAML、TOML 等格式)里的內容讀出來,還能監控配置文件的變化&#xff0…

實現對象之間的序列化和反序列化

1.什么是序列化? 在項目的開發中,為了讓前端更好的分析后端返回的結果,我們一般會將返回的信息進行序列化,序列化就是將返回對象的狀態信息轉換為一種標準化的格式,方便在網絡中傳輸也方便打印日志時號觀察&#xff0…

ThreadLocal - 原理與應用場景詳解

ThreadLocal 的基礎概念 在 Java 的多線程世界里,線程之間的數據共享與隔離一直是一個關鍵話題。如果處理不當,很容易引發線程安全問題,比如數據混亂、臟讀等。而 ThreadLocal 這個工具類,就像是為線程量身定制的 “私人儲物柜”…

iwebsec靶場 文件包含關卡通關筆記11-ssh日志文件包含

目錄 日志包含 1.構造惡意ssh登錄命令 2.配置ssh日志開啟 (1)配置sshd (2)配置rsyslog (3)重啟服務 3.寫入webshell木馬 4.獲取php信息滲透 5.蟻劍連接 日志包含 1.構造惡意ssh登錄命令 ssh服務…

Diamond軟件的使用--(4)搭建Modelsim仿真庫

使用Modelsim仿真的原因 由于diamond自帶的仿真軟件Active-HDL需要另一套Lisence,所以我們使用第三方仿真軟件Modelsim來進行仿真。 Modelsim10.5下載鏈接如下:https://pan.baidu.com/s/1G9699ocWm1UTqK2yS2igyQ 提取碼:lewa 一、Lattice仿…

2025年4月19日,四月第三周,C++,字符串數組答案解析

答案與解析 1. 輸出字符串數組所有元素 cpp 復制 下載 #include <iostream> using namespace std;int main() {string arr[] = {"apple", "banana", "cherry"};int n = sizeof(arr)/sizeof(arr[0]); // 計算數組長度for (int i = 0; …

C語言之高校學生信息快速查詢系統的實現

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 總有人間一兩風&#xff0c;填我十萬八千夢。 &#x1f680; 路漫漫其修遠兮&#xff0c;吾將上下而求索。 C語言之高校學生信息快速查詢系統的實現 目錄 任務陳述與分析 問題陳述問題分析 數據結構設…

【網絡篇】TCP vs UDP底層區別+網絡編程概念

大家好呀 我是浪前 今天講解的是網絡篇的第三章&#xff1a;網絡編程概念和TCP&UDP的區別 網絡編程概念TCP和UDP的區別 跨主機通信:網絡編程插座&#xff1a;網絡編程的本質&#xff1a; 網絡編程的重要概念&#xff1a;客戶端和服務器&#xff1a; 客戶端和服務器的交互模…

EMIF詳解

一、EMIF的基本定義 EMIF&#xff08;External Memory Interface&#xff0c;外部存儲器接口&#xff09; 是嵌入式處理器&#xff08;如DSP、FPGA、SoC&#xff09;用于連接外部存儲器的專用硬件接口模塊&#xff0c;負責管理處理器與存儲器之間的地址/數據總線、控制信號及時…