前言:關於rpm、yum及dnf
rpm:為了解決在安裝、升級、卸載服務程序時還要考慮到其他程序、庫的依賴關系,rpm機制應運而生。但是rpm機制也只能幫助運維人員查詢缺少的依賴關系,安裝還是需要自己來進行。這是yum軟件倉庫就來了。
yum:底層為rpm包,搭建的一套基於rpm包的yum軟件倉庫。即Yum方式下載的包都是rpm包,而yum的好處在於在下載指定的rpm包時,會在自己的Yum軟件倉庫中自動尋找其所有依賴包,並進行統一安裝,節省了運維人員的時間。且yum軟件倉庫,可以是基於官方的、也可以是基於第三方的,還可以是自己搭建的。
dnf:在yum機制如此優秀的情況下,仍然存在一些問題,如分析不准確,占用內存量大,不能多人同時安裝軟件等硬傷。因此在隨着Fedora 22系統的發布,紅帽又給了我們一個新的選擇—DNF,即DNF實際上就是yum的升級版,也稱為yum v4版本。且在使用上面,dnf也是和yum命令方式一樣,都是同樣的使用方式,只需把yum換為dnf即可。
-i(安裝) #rpm {-i | --install} [install-option] PACKAGE_FILE.... 如: #rpm -ivh 包.rpm(安裝並顯示詳細過程,以#顯示程序包管理執行進度) #rpm -ivh --force 包.rpm(強制安裝包,忽略錯誤輸出)
解壓縮rpm包
#rpm2cpio 包名.rpm |cpio -tv
升級
#rpm {-U | --upgrade} [install -options] PACKAGE_FILE... -U,upgrade:安裝有舊版程序包,則“升級” 如果不存在舊版程序包,則“安裝” #rpm {-F | --freshen} [install-options] PACKAG_FILE -F,freshen:安裝有舊版程序包,則“升級” 如果不存在舊版程序包,則不執行升級操作。 即#rpm -Uvh PACKAGE_FILE #rpm -Fvh PACKAGE_FILE --oldpackage:降級 --force:強制安裝 內核:一般不建議隨便換內核;除非遇到重大情況,出bug等。 建議用ivh安裝新的內核版本,新版本和舊版本共存,使用新版本一段時間后,若機器穩定運行,再卸載舊版本rpm包即可(# rpm -e ),這樣安全。
若出問題,則換回舊版本的內核繼續使用.(重啟使用舊的內核版本)
-q(查詢) #rpm -qa (列出所有包) #rpm -qpi filename.rpm 查詢軟件描述信息 #rpm -qpl filename.rpm 列出軟件文件信息(查看未安裝的該rpm包內的文件(即預覽包內文件)) #rpm -qf filename 查詢文件屬於哪個RPM #rpm -q --scripts bash (查詢安裝后自帶的所有腳本,都有) #rpm -qp --scripts bash(查詢安裝前自帶的所有腳本,都有) -e(卸載) #rpm -e filename.rpm 卸載軟件 #rpm2cpio 包文件|cpio -itv 預覽包內文件 #rpm2cpio 包文件|cpio -id "*.conf" 釋放包內文件
yum命令使用
其中配置文件 /etc/yum.conf:為所有倉庫提供公共配置 /etc/yum.repos.d/*.repo:為倉庫的指向提供配置 yum軟件倉庫配置 #vim /etc/yum.repos.d/*.repo [name] name=關於repository的描述 baseurl=路徑 #baseurl=file:///mnt/cdrom(本地base源) #baseurl=http://mirrors.aliyun.com/epel/7/$basearch enbaled=1|0 開啟或關閉 gpgcheck=1|0 是否開啟檢驗 gpgkey=file://mnt/cdrom/RPM-GPG-KEY-EPEL-7(若開啟檢驗,則該參數寫上對應公鑰的路徑) 注意:在自己寫的repo文件中,若不寫gpgcheck參數,則默認按/etc/yum.conf配置文件中的gpgcheck參數執行;
yum命令的用法
yum命令的用法: #yum [options] [command] [package ...] 顯示倉庫列表: #yum repolist [all |enabled | disabled] 顯示程序包: #yum list #yum list [all |glob_exp1 ] [glob_exp2] [...] #yum list {available | installed | updates } [glob_exp1] [ ...] 安裝程序包: #yum install package1 [package2] [...] #yum reinstall package1 [package2] [.... ] (重新安裝) yum-config-manager,生成172.16.0.1_cobbler_ks_mirror_centos-x-x86_64_.repo #yum-config-manager --add repo=http://172.16.0.1/cobbler/ks_mirror/7/(即baseurl的路況):自動在/etc/yum.repos.d/生成repo文件,缺點是沒有gpg參數。 啟用|禁用倉庫 #yum-config-manager --disable "倉庫名" :禁用倉庫(enable=0) #yum-config-manager --enable "倉庫名" :啟用倉庫(enable=1) 升級程序包: #yum update [package1] [package2][...] 升級(不加參數,默認升級所有rpm包) #yum downgrade package1 [package2] [...] 降級 檢查可用升級 #yum check-update 卸載程序包 #yum remove | erase package1 [package2] [...] 查看程序包information: #yum info [...] 信息沒有#rpm -qi [...] 詳細 查看指定的特性(可以是某文件)是由哪個程序包所提供: #yum provides | whatprovides feature1 [feature2] [...] 清理本地緩存: 清除/var/cache/yum/$basearch/$releasever緩存 #yum clean [packages | metadata| expire-cache | rpmdb | plugins | all ] 構建緩存: #yum makecache 搜索:以指定的關鍵字搜索程序包名及summary(說明)信息 #yum search string1 [string2] .. 查看指定包所依賴的capabilities: #yum deplist package1 [package2] [..] 查看yum事務歷史: #yum history [ info | list | packages-list | packages-info | summary | addon-info | redo | undo| rollback | new | sync | stats ] #yum history #yum history info 6(即#yum history的ID,查看該ID步驟的詳細信息) #yum history undo 6(撤銷ID步驟的動作 ) #yum history redo 6 (重做ID步驟的動作)
yumdownloader命令
作用:利用yum命令只下載rpm包不安裝(方便從外網機復制包到內網機)
yumdownloader命令下載

下載后:多出來的為yum系列命令的其它插件
2..yumdownloader使用方法

rpm包安裝:


dnf命令使用
①在centos7中,默認還未安裝dnf命令,使用的還是yum;使用dnf命令,還需下載。
②在centos8中,已自動安裝了dnf命令,同時yum命令也可使用。
③dnf命令使用與yum命令使用方式一致,只需將yum改為dnf。
centos7中,dnf命令的下載
1.啟動epel-release依賴
使用命令
# yum install epel-release
下載dnf命令包
# yum install dnf
>....關於dnf命令,我在自己的centos7環境下下載失敗,包環境不夠,之后還未測試,因此關於該dnf塊的實驗,可不看。
>....后續了解到centos8后,再補充。