RPM紅帽軟件包管理器
Yum軟件倉庫
安裝軟件有三種方式
- 第一種是源碼安裝(源碼安裝需要手動安裝軟件,安裝的目錄,還需要進行編譯之后才能安裝),步驟比較繁瑣。
- 第二種是RPM安裝,rpm安裝有點像windows系統的面板,會建立統一的數據庫文件,詳細記錄軟件信息並自動分析依賴關系,不過需要手動安裝依賴的軟件包,如果當安裝一個軟件包的依賴包又有其他依賴包的話,你必須安裝好這個依賴包之后再返回去安裝前面的依賴包。只有將依賴包全部安裝成功才能安裝好最初需要安裝的軟件包。
- 第三種是yum安裝,這一種是最方便的安裝,能自動安裝依賴包。上面說的比較多,其實rpm和yum的區別也就是依賴性問題。下面來介紹下常用的軟件包命令。
軟件包類型
1、二進制包
指已經編譯好,能直接安裝並使用,且不需要編譯,直接下載安裝即可
2、源碼包
程序員寫的原始的程序代碼文件,不能直接在電腦上運行,需要進行編譯成二進制軟件包后,在進行安裝才能使用。命名一般為:軟件包名.tar.gz / .tar.bz2 / .tar.xz / .zip
3、二進制源碼包
半成品,安裝后不能直接使用,需要用rpmbuild工具重建成真正的rpm包或源碼包才可安裝使用。命名一般為:mysql-community-5.7.25-1.el6.src.rpm、mysql-community-5.7.25-1.el7.src.rpm
一、RPM紅帽軟件包管理器
RPM(Red-Hat Package Manager)。rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序,由於它遵循GPL規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易於安裝,升級,間接提升了Linux的適用度。
1)獲取rpm包
- RedHat/Centos光盤
- 推薦網站:www.rpmfind.net rpm.pbone.net
- 相應軟件官方網站:http://www.mysql.com http://nginx.org/packages/
格式:
rpm [選項]
選項:
-a 查詢所有軟件包。 -b<完成階段><套件檔>+或-t <完成階段><套件檔>+ 設置包裝套件的完成階段,並指定套件檔的文件名稱。 -c 只列出組態配置文件,本參數需配合"-l"參數使用。 -d 只列出文本文件,本參數需配合"-l"參數使用。 -e<套件檔>或--erase<套件檔> 刪除指定的套件。
-f<文件>+ 查詢擁有指定文件的套件。 -h或--hash 套件安裝時列出標記。
-i 顯示套件的相關信息。 -i<套件檔>或--install<套件檔> 安裝指定的軟件包。
-l 顯示套件的文件列表。 -p<套件檔>+ 查詢指定的RPM套件檔。 -q 使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶。 -R 顯示套件的關聯性信息。 -s 顯示文件狀態,本參數需配合"-l"參數使用。 -U<套件檔>或--upgrade<套件檔> 升級指定的套件檔。
-v 顯示指令執行過程。 -vv 詳細顯示指令執行過程,便於排錯。 -addsign<套件檔>+ 在指定的套件里加上新的簽名認證。 --allfiles 安裝所有文件。 --allmatches 刪除符合指定的套件所包含的文件。 --badreloc 發生錯誤時,重新配置文件。 --buildroot<根目錄> 設置產生套件時,欲當作根目錄的目錄。 --changelog 顯示套件的更改記錄。 --checksig<套件檔>+ 檢驗該套件的簽名認證。 --clean 完成套件的包裝后,刪除包裝過程中所建立的目錄。 --dbpath<數據庫目錄> 設置欲存放RPM數據庫的目錄。 --dump 顯示每個文件的驗證信息。本參數需配合"-l"參數使用。 --excludedocs 安裝套件時,不要安裝文件。 --excludepath<排除目錄> 忽略在指定目錄里的所有文件。 --force 強行置換套件或文件。 --ftpproxy<主機名稱或IP地址> 指定FTP代理服務器。 --ftpport<通信端口> 設置FTP服務器或代理服務器使用的通信端口。 --help 在線幫助。 --httpproxy<主機名稱或IP地址> 指定HTTP代理服務器。 --httpport<通信端口> 設置HTTP服務器或代理服務器使用的通信端口。 --ignorearch 不驗證套件檔的結構正確性。 --ignoreos 不驗證套件檔的結構正確性。 --ignoresize 安裝前不檢查磁盤空間是否足夠。 --includedocs 安裝套件時,一並安裝文件。 --initdb 確認有正確的數據庫可以使用。 --justdb 更新數據庫,當不變動任何文件。 --nobulid 不執行任何完成階段。 --nodeps 不驗證套件檔的相互關聯性。 --nofiles 不驗證文件的屬性。 --nogpg 略過所有GPG的簽名認證。 --nomd5 不使用MD5編碼演算確認文件的大小與正確性。 --nopgp 略過所有PGP的簽名認證。 --noorder 不重新編排套件的安裝順序,以便滿足其彼此間的關聯性。 --noscripts 不執行任何安裝Script文件。 --notriggers 不執行該套件包裝內的任何Script文件。 --oldpackage 升級成舊版本的套件。 --percent 安裝套件時顯示完成度百分比。 --pipe<執行指令> 建立管道,把輸出結果轉為該執行指令的輸入數據。 --prefix<目的目錄> 若重新配置文件,就把文件放到指定的目錄下。 --provides 查詢該套件所提供的兼容度。 --queryformat<檔頭格式> 設置檔頭的表示方式。 --querytags 列出可用於檔頭格式的標簽。 --rcfile<配置文件> 使用指定的配置文件。 --rebulid<套件檔> 安裝原始代碼套件,重新產生二進制文件的套件。 --rebuliddb 以現有的數據庫為主,重建一份數據庫。 --recompile<套件檔> 此參數的效果和指定"--rebulid"參數類似,當不產生套件檔。 --relocate<原目錄>=<新目錄> 把本來會放到原目錄下的文件改放到新目錄。 --replacefiles 強行置換文件。 --replacepkgs 強行置換套件。 --requires 查詢該套件所需要的兼容度。 --resing<套件檔>+ 刪除現有認證,重新產生簽名認證。 --rmsource 完成套件的包裝后,刪除原始代碼。 --rmsource<文件> 刪除原始代碼和指定的文件。 --root<根目錄> 設置欲當作根目錄的目錄。 --scripts 列出安裝套件的Script的變量。 --setperms 設置文件的權限。 --setugids 設置文件的擁有者和所屬群組。 --short-circuit 直接略過指定完成階段的步驟。 --sign 產生PGP或GPG的簽名認證。 --target=<安裝平台>+ 設置產生的套件的安裝平台。 --test 僅作測試,並不真的安裝套件。 --timecheck<檢查秒數> 設置檢查時間的計時秒數。 --triggeredby<套件檔> 查詢該套件的包裝者。 --triggers 展示套件檔內的包裝Script。 --verify 此參數的效果和指定"-q"參數相同。 --version 顯示版本信息。 --whatprovides<功能特性> 查詢該套件對指定的功能特性所提供的兼容度。 --whatrequires<功能特性> 查詢該套件對指定的功能特性所需要的兼容度。
常用命令:
實列:
[root@rhel8 ~]# ls
samba-4.11.2-13.el8.x86_64.rpm zsh-5.5.1-6.el8.x86_64.rpm # 安裝zsh包
[root@rhel8 ~]# rpm -ivh zsh-5.5.1-6.el8.x86_64.rpm
警告:zsh-5.5.1-6.el8.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID 8483c65d: NOKEY Verifying... ################################# [100%]
准備中... ################################# [100%]
正在升級/安裝... 1:zsh-5.5.1-6.el8 ################################# [100%]
# 查看是否安裝成功
[root@rhel8 ~]# rpm -q zsh
zsh-5.5.1-6.el8.x86_64 # 查看該包相關的文件
[root@rhel8 ~]# rpm -ql zsh
# 卸載包
[root@rhel8 ~]# rpm -e zsh
[root@rhel8 ~]# rpm -q zsh
未安裝軟件包 zsh # 升級軟件包 # rpm -Uvh 軟件包
或 # rpm -Fvh 軟件包
選項說明: -U:如果該軟件沒有安裝,會自動幫你安裝 -F:如果該軟件包沒安裝,不會自動安裝
二、Yum源安裝
yum源安裝需要配置好yum源才能進行安裝。這里也可以參考我的博客:https://i.cnblogs.com/posts/edit;postId=11788558
2)配置本地倉庫
步驟1:掛載鏡像到本地系統
上面是虛擬機中已經掛載了,這里我重新手動掛載
# 掛載鏡像
[root@rhel8 ~]# mount -o ro /dev/sr0 /media/
# 查看掛載是否成功
[root@rhel8 ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點 /dev/sr0 7.4G 7.4G 0 100% /media
步驟2:編輯redhat.repo文件,指定軟件的路徑
# 因為redhat8又來個軟件包BaseOS和AppStream
[root@rhel8 yum.repos.d]# vim local.repo
[BaseOS] name=BaseOS enabled=1 baseurl=file:///media/BaseOS/ gpgcheck=0 [AppStream] name=AppStream enable=1 baseurl=file:///media/AppStream/ gpgcheck=0
步驟3:查看是否成功
# 清空yum緩存 [root@rhel8 yum.repos.d]# yum clean all Updating Subscription Management repositories. Unable to read consumer identity This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. 0 文件已刪除 # 創建yum緩存 [root@rhel8 yum.repos.d]# yum makecache # 查看倉庫 [root@rhel8 yum.repos.d]# yum repolist Updating Subscription Management repositories. Unable to read consumer identity This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. 上次元數據過期檢查:0:00:55 前,執行於 2020年06月04日 星期四 12時44分23秒。 倉庫標識 倉庫名稱 狀態 AppStream AppStream 4,820 BaseOS BaseOS 1,661
3)yum工具使用
注意:yum update謹慎使用