В тази статия ще научим как да инсталираме, актуализираме, премахваме, намираме пакети, управляваме пакети и хранилища в Linux системи, използвайки YUM (Yellowdog Updater е модифициран) инструмент, разработен от Червена шапка.
Примерните команди, показани в тази статия, са практически тествани на нашия сървър RHEL 8, можете да използвате тези материали за учебни цели, RHEL сертификати или просто за да проучите начини да инсталирате нови пакети и да поддържате системата си актуална.
Основното изискване на тази статия е, че трябва да имате основно разбиране за командите и работеща операционна система Linux, където можете да изследвате и практикувате всички команди, изброени по-долу.
Какво е YUM?
YUM (Yellowdog Updater е модифициран) е команден ред с отворен код, както и графично базиран инструмент за управление на пакети за обороти в минута (Мениджър на пакети RedHat) базирани Linux системи.
Той позволява на потребителите и системните администратори лесно да инсталират, актуализират, премахват или търсят софтуерни пакети в системата. Той е разработен и пуснат от Сет Видал под LPG (Общ публичен лиценз) като с отворен код, което означава, че на всеки може да бъде разрешено да изтегля и да има достъп до кода, за да коригира грешки и да разработва персонализирани пакети.
YUM използва множество хранилища на трети страни за автоматично инсталиране на пакети, като разрешава проблемите с техните зависимости.
Актуализация: The ням командата се заменя с командата dnf, която е версия от следващо поколение на yum и се счита за заместител на YUM в повечето по-нови RPM-базирани дистрибуции.
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
Използвай списък функция за търсене на конкретния пакет с име. Например за търсене на пакет, наречен 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
[ You might also like: How to Secure and Harden OpenSSH Server ]
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 осигурява функция
ням осигурява функцията се използва за намиране на кой пакет принадлежи даден файл. Например, ако искате да знаете името на пакета, който съдържа /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. Инсталирайте групови пакети
За да инсталираме конкретна група пакети, ние използваме опцията as групова инсталация. Например, за да инсталирате “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. Инсталирайте пакет от конкретно хранилище
За да инсталирате конкретен пакет от конкретно активирано или деактивирано хранилище, трябва да използвате --enablerepo
опция във вашата yum команда. Например, за да инсталирате пакета 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 предоставя персонализирана обвивка, където можете да изпълнявате множество команди.
# 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 Cache
По подразбиране 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 команди, може да е пропуснало. Моля, актуализирайте ни чрез нашето поле за коментари. Така че ние продължаваме да актуализираме същото въз основа на получените отзиви.
Публикациите се превеждат автоматично с google translate