在這篇文章中,我們將學習如何使用YUM(Yellowdog Updater Modified)工具在Linux系統上安裝、更新、移除、尋找套件,管理套件和儲存庫,該工具由RedHat開發。
本文示例命令在我們的RHEL 8服務器上經過實際測試,您可以用這些材料來學習,取得RHEL認證,或者僅僅是探索安裝新套件並保持系統最新的方式。
本文的基本要求是,您必須對命令有基本的理解,並擁有一個運行Linux操作系統的工作環境,在那裡您可以探索和練習下面列出的所有命令。
什麼是YUM?
YUM(Yellowdog Updater Modified)是一個針對RPM(RedHat套件管理器)的開源命令行和圖形化的套件管理工具。
它允許用戶和系統管理員在系統上輕鬆安裝、更新、刪除或搜索軟件包。它是由 Seth Vidal 在 GPL(通用公共许可证)下作为开源开发和发布的,这意味着任何人都可以下载和访问代码来修复错误和开发定制软件包。
YUM 使用许多第三方存储库来通过解决它们的依赖关系问题自动安装软件包。
更新: yum 命令已被 dnf 命令 替代,它是 yum 的下一代版本,被认为是大多数新版 RPM-based distributions 中 YUM 的替代品。
1. 使用 YUM 安装软件包
要安装一个名为 Firefox 的软件包,只需运行下面的命令,它将自动查找并安装 Firefox 的所有必需依赖项。
# yum install firefox Loaded plugins: fastestmirror Dependencies Resolved ================================================================================================ Package Arch Version Repository Size ================================================================================================ Updating: firefox i686 10.0.6-1.el6.centos updates 20 M Updating for dependencies: xulrunner i686 10.0.6-1.el6.centos updates 12 M Transaction Summary ================================================================================================ Install 0 Package(s) Upgrade 2 Package(s) Total download size: 32 M Is this ok [y/N]: y Downloading Packages: (1/2): firefox-10.0.6-1.el6.centos.i686.rpm | 20 MB 01:10 (2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm | 12 MB 00:52 ------------------------------------------------------------------------------------------------ Total 63 kB/s | 32 MB 02:04 Updated: firefox.i686 0:10.0.6-1.el6.centos Dependency Updated: xulrunner.i686 0:10.0.6-1.el6.centos Complete!
上述命令将在在您的系统上安装任何软件包之前要求确认。如果您想自动安装软件包而不需要任何确认,请使用如下示例中所示的选项 -y
。
# yum -y install firefox
2. 使用YUM移除套件
要完全移除一個套件及其所有相依性,只需運行以下所示的命令。
# yum remove firefox Loaded plugins: fastestmirror Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================== Package Arch Version Repository Size ==================================================================================================== Removing: firefox i686 10.0.6-1.el6.centos @updates 23 M Transaction Summary ==================================================================================================== Remove 1 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Erasing : firefox-10.0.6-1.el6.centos.i686 1/1 Removed: firefox.i686 0:10.0.6-1.el6.centos Complete!
同樣地,上述命令在移除套件前會詢問確認。若要禁用確認提示,只需添加選項-y
,如下所示。
# yum -y remove firefox
3. 使用YUM更新套件
假設您有一個過時版本的MySQL套件,並且您想要將其更新到最新的穩定版本。只需運行以下命令,它將自動解決所有相依性問題並安裝它們。
# yum update mysql Loaded plugins: fastestmirror Dependencies Resolved ============================================================================================================ Package Arch Version Repository Size ============================================================================================================ Updating: vsftpd i386 2.0.5-24.el5_8.1 updates 144 k Transaction Summary ============================================================================================================ Install 0 Package(s) Upgrade 1 Package(s) Total size: 144 k Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Updating : vsftpd 1/2 Cleanup : vsftpd 2/2 Updated: vsftpd.i386 0:2.0.5-24.el5_8.1 Complete!
4. 使用YUM列出套件
使用list功能來搜索具有特定名稱的套件。例如,要搜索名為OpenSSH的套件,請使用以下命令。
# yum list openssh Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.neu.edu.cn * epel: mirror.neu.edu.cn * extras: mirror.neu.edu.cn * rpmforge: mirror.nl.leaseweb.net * updates: mirror.nus.edu.sg Installed Packages openssh.i386 4.3p2-72.el5_6.3 installed Available Packages 4.3p2-82.el5 base
為了使搜索更精確,如果知道,請定義具有其版本的套件名稱。例如,要搜索特定版本OpenSSH-4.3p2的套件,請使用以下命令。
# yum list openssh-4.3p2
[ 您可能也會喜歡:如何保護和強化OpenSSH伺服器 ]
5. 使用YUM搜索套件
如果您不記得套件的確切名稱,那麼可以使用搜索功能來搜索所有可用的套件以匹配您指定的套件名稱。例如,要搜索所有匹配該詞的套件。
# yum search vsftpd Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.neu.edu.cn * epel: mirror.neu.edu.cn * extras: mirror.neu.edu.cn * rpmforge: mirror.nl.leaseweb.net * updates: ftp.iitm.ac.in ============================== Matched: vsftpd ======================== ccze.i386 : A robust log colorizer pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD vsftpd.i386 : vsftpd - Very Secure Ftp Daemon
6. 使用YUM獲取套件信息
假設您想在安裝之前了解套件的信息。要獲取有關套件的信息,只需發出以下命令。
# yum info firefox Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.neu.edu.cn * epel: mirror.neu.edu.cn * extras: mirror.neu.edu.cn * rpmforge: mirror.nl.leaseweb.net * updates: ftp.iitm.ac.in Available Packages Name : firefox Arch : i386 Version : 10.0.6 Release : 1.el5.centos Size : 20 M Repo : updates Summary : Mozilla Firefox Web browser URL : http://www.mozilla.org/projects/firefox/ License : MPLv1.1 or GPLv2+ or LGPLv2+ Description: Mozilla Firefox is an open-source web browser, designed for standards : compliance, performance and portability.
7. 使用YUM列出所有可用套件
要列出Yum資料庫中的所有可用套件,請使用以下命令。
# yum list | less
8. 使用YUM列出所有已安裝的套件
要列出系統上所有已安裝的套件,只需發出以下命令,它將顯示所有已安裝的套件。
# yum list installed | less
9. Yum Provides功能
Yum provides功能用於查找特定文件屬於哪個套件。例如,如果您想知道擁有/etc/httpd/conf/httpd.conf的套件名稱。
# yum provides /etc/httpd/conf/httpd.conf Loaded plugins: fastestmirror httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server Repo : base Matched from: Filename : /etc/httpd/conf/httpd.conf httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server Repo : updates Matched from: Filename : /etc/httpd/conf/httpd.conf httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server Repo : updates Matched from: Filename : /etc/httpd/conf/httpd.conf httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server Repo : installed Matched from: Other : Provides-match: /etc/httpd/conf/httpd.conf
10. 使用Yum檢查可用的更新
要了解系統上有多少已安裝的套件有可用的更新,請使用以下命令進行檢查。
# yum check-update
11. 使用Yum更新系統
要使您的系統保持最新,包括所有安全和二進制套件更新,請運行以下命令。它將在您的系統上安裝所有最新的補丁和安全更新。
# yum update
12. 列出所有可用的組套件
在Linux中,許多套件被打包成特定的群組。與其使用yum安裝個別套件,您可以安裝一個特定的群組,該群組將安裝所有屬於該群組的相關套件。例如,要列出所有可用的群組,只需發出以下命令。
# yum grouplist Installed Groups: Administration Tools DNS Name Server Dialup Networking Support Editors Engineering and Scientific FTP Server Graphics Java Development Legacy Network Server Available Groups: Authoring and Publishing Base Beagle Cluster Storage Clustering Development Libraries Development Tools Eclipse Educational Software KDE (K Desktop Environment) KDE Software Development
13. 安裝群組套件
要安裝特定的套件群組,我們使用groupinstall選項。例如,要安裝“MySQL資料庫”,只需執行以下命令。
# yum groupinstall 'MySQL Database' Dependencies Resolved ================================================================================================= Package Arch Version Repository Size ================================================================================================= Updating: unixODBC i386 2.2.11-10.el5 base 290 k Installing for dependencies: unixODBC-libs i386 2.2.11-10.el5 base 551 k Transaction Summary ================================================================================================= Install 1 Package(s) Upgrade 1 Package(s) Total size: 841 k Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : unixODBC-libs 1/3 Updating : unixODBC 2/3 Cleanup : unixODBC 3/3 Dependency Installed: unixODBC-libs.i386 0:2.2.11-10.el5 Updated: unixODBC.i386 0:2.2.11-10.el5 Complete!
14. 更新群組套件
要更新任何已安裝的群組套件,只需運行以下命令,如下所示。
# yum groupupdate 'DNS Name Server' Dependencies Resolved ================================================================================================================ Package Arch Version Repository Size ================================================================================================================ Updating: bind i386 30:9.3.6-20.P1.el5_8.2 updates 981 k bind-chroot i386 30:9.3.6-20.P1.el5_8.2 updates 47 k Updating for dependencies: bind-libs i386 30:9.3.6-20.P1.el5_8.2 updates 864 k bind-utils i386 30:9.3.6-20.P1.el5_8.2 updates 174 k Transaction Summary ================================================================================================================ Install 0 Package(s) Upgrade 4 Package(s) Total size: 2.0 M Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Updating : bind-libs 1/8 Updating : bind 2/8 Updating : bind-chroot 3/8 Updating : bind-utils 4/8 Cleanup : bind 5/8 Cleanup : bind-chroot 6/8 Cleanup : bind-utils 7/8 Cleanup : bind-libs 8/8 Updated: bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2 Dependency Updated: bind-libs.i386 30:9.3.6-20.P1.el5_8.2 bind-utils.i386 30:9.3.6-20.P1.el5_8.2 Complete!
15. 移除群組套件
要刪除或移除任何已安裝的群組從系統中,只需使用以下命令。
# yum groupremove 'DNS Name Server' Dependencies Resolved =========================================================================================================== Package Arch Version Repository Size =========================================================================================================== Removing: bind i386 30:9.3.6-20.P1.el5_8.2 installed 2.1 M bind-chroot i386 30:9.3.6-20.P1.el5_8.2 installed 0.0 Transaction Summary =========================================================================================================== Remove 2 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : bind 1/2 warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave Erasing : bind-chroot 2/2 Removed: bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2 Complete!
16. 列出啟用的Yum儲存庫
要列出系統中所有啟用的Yum儲存庫,請使用以下選項。
# yum repolist repo id repo name status base CentOS-5 - Base enabled: 2,725 epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783 extras CentOS-5 - Extras enabled: 282 mod-pagespeed mod-pagespeed enabled: 1 rpmforge RHEL 5 - RPMforge.net - dag enabled: 11,290 updates CentOS-5 - Updates enabled: 743 repolist: 20,824
16. 列出所有啟用和禁用的Yum儲存庫
以下命令將顯示系統上所有啟用和禁用的yum儲存庫。
# yum repolist all repo id repo name status C5.0-base CentOS-5.0 - Base disabled C5.0-centosplus CentOS-5.0 - Plus disabled C5.0-extras CentOS-5.0 - Extras disabled base CentOS-5 - Base enabled: 2,725 epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783 extras CentOS-5 - Extras enabled: 282 repolist: 20,824
17. 從特定儲存庫安裝套件
要從特定啟用或禁用的儲存庫安裝特定套件,您必須在yum命令中使用--enablerepo
選項。例如,要安裝PhpMyAdmin套件,只需執行以下命令。
# yum --enablerepo=epel install phpmyadmin Dependencies Resolved ============================================================================================= Package Arch Version Repository Size ============================================================================================= Installing: phpMyAdmin noarch 3.5.1-1.el6 epel 4.2 M Transaction Summary ============================================================================================= Install 1 Package(s) Total download size: 4.2 M Installed size: 17 M Is this ok [y/N]: y Downloading Packages: phpMyAdmin-3.5.1-1.el6.noarch.rpm | 4.2 MB 00:25 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : phpMyAdmin-3.5.1-1.el6.noarch 1/1 Verifying : phpMyAdmin-3.5.1-1.el6.noarch 1/1 Installed: phpMyAdmin.noarch 0:3.5.1-1.el6 Complete!
18. 互動式 Yum Shell
Yum 工具提供了一個自定義的 shell,在這裡你可以執行多個命令。
# yum shell Loaded plugins: fastestmirror Setting up Yum Shell > update httpd Loading mirror speeds from cached hostfile * base: mirrors.sin3.sg.voxel.net * epel: ftp.riken.jp * extras: mirrors.sin3.sg.voxel.net * updates: mirrors.sin3.sg.voxel.net Setting up Update Process >
19. 清理 Yum 快取
預設情況下,yum 將所有啟用的倉庫包數據保留在/var/cache/yum/中,每個子目錄都存儲著這些數據。為了清理所有從啟用倉庫中緩存的文件,你需要定期運行以下命令來清理所有緩存,並確保沒有不必要的空間被使用。我們不想給出以下命令的輸出,因為我們喜歡保持緩存數據不變。
# yum clean all
20. 查看 Yum 的歷史記錄
要查看 yum 命令的所有過去交易,只需使用以下命令。
# yum history Loaded plugins: fastestmirror ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 10 | root | 2012-08-11 15:19 | Install | 3 9 | root | 2012-08-11 15:11 | Install | 1 8 | root | 2012-08-11 15:10 | Erase | 1 EE 7 | root | 2012-08-10 17:44 | Install | 1 6 | root | 2012-08-10 12:19 | Install | 2 5 | root | 2012-08-10 12:14 | Install | 3 4 | root | 2012-08-10 12:12 | I, U | 13 E< 3 | root | 2012-08-09 13:01 | Install | 1 > 2 | root | 2012-08-08 20:13 | I, U | 292 EE 1 | System | 2012-08-08 17:15 | Install | 560 history list
我們已經嘗試涵蓋了從基本到進階的 yum 命令及其示例。如果有任何與 yum 命令相關的內容可能被遺漏,請通過我們的評論框向我們更新。因此,我們將根據收到的反饋不斷更新相同的內容。
Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/