20 YUM komandas Linux pakotņu pārvaldībai
Šajā rakstā mēs uzzināsim, kā instalēt, atjaunināt, noņemt, atrast paketes, pārvaldīt paketes un krātuves Linux sistēmās, izmantojot RedHat izstrādāto YUM (Yellowdog Updater Modified) rīku. Šajā rakstā parādītās komandu piemēri ir praktiski pārbaudīti mūsu CentOS 6.3 serverī. Jūs varat izmantot šo materiālu mācību mērķiem, sertifikātiem vai vienkārši izpētīt veidus, kā instalēt jaunas paketes un uzturēt savu sistēmu atjauninātu. Šī raksta pamatprasība ir tāda, ka jums ir jābūt pamatzināšanām par komandām un darbojošai Linux operētājsistēmai, kurā varat izpētīt un praktizēt visas zemāk uzskaitītās komandas.
Kas ir YUM?
YUM (modificēts Yellowdog Updater Modified) ir atvērtā pirmkoda komandrinda, kā arī grafisku pakotņu pārvaldības rīks RPM (RedHat Package Manager) balstītām Linux sistēmām. Tas ļauj lietotājiem un sistēmas administratoram viegli instalēt, atjaunināt, noņemt vai meklēt programmatūras pakotnes sistēmās. To izstrādāja un izlaida Sets Vidals saskaņā ar GPL (General Public License) kā atvērto avotu. Tas nozīmē, ka ikviens var atļaut lejupielādēt kodu un piekļūt tam, lai labotu kļūdas un izstrādātu pielāgotas paketes. YUM izmanto daudzas trešo pušu krātuves, lai automātiski instalētu paketes, atrisinot to atkarības problēmas.
Lai instalētu paketi ar nosaukumu Firefox 14, vienkārši palaidiet zemāk esošo komandu, tā automātiski atradīs un instalēs visas nepieciešamās Firefox atkarības.
# 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!
Iepriekš minētā komanda lūgs apstiprinājumu pirms jebkura pakotnes instalēšanas jūsu sistēmā. Ja vēlaties pakotnes instalēt automātiski, neprasot nekādu apstiprinājumu, izmantojiet opciju -y, kā parādīts zemāk esošajā piemērā.
# yum -y install firefox
Lai pilnībā noņemtu paketi ar visām atkarībām, vienkārši izpildiet šo komandu, kā parādīts zemāk.
# 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!
Tādā pašā veidā iepriekš minētā komanda lūgs apstiprinājumu pirms pakotnes noņemšanas. Lai atspējotu apstiprināšanas uzvedni, vienkārši pievienojiet opciju -y, kā parādīts zemāk.
# yum -y remove firefox
Pieņemsim, ka jums ir novecojusi MySQL pakotnes versija un vēlaties to atjaunināt uz jaunāko stabilo versiju. Vienkārši palaidiet šo komandu, tas automātiski atrisinās visas atkarību problēmas un tās instalēs.
# 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!
Izmantojiet saraksta funkciju, lai meklētu konkrēto paketi ar nosaukumu. Piemēram, lai meklētu pakotni ar nosaukumu opensh, izmantojiet komandu.
# 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
Lai padarītu meklēšanu precīzāku, definējiet paketes nosaukumu ar tā versiju, ja zināt. Piemēram, lai meklētu noteiktu pakotnes openssh-4.3p2 versiju, izmantojiet komandu.
# yum list openssh-4.3p2
Ja neatceraties precīzu pakotnes nosaukumu, izmantojiet meklēšanas funkciju, lai meklētu visus pieejamos paketes, lai tie atbilstu jūsu norādītās paketes nosaukumam. Piemēram, lai meklētu visus paketes, kas atbilst vārdam.
# 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
Pieņemsim, ka pirms instalēšanas vēlaties uzzināt informāciju par pakotni. Lai iegūtu informāciju par pakotni, vienkārši izdodiet tālāk norādīto komandu.
# 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.
Lai uzskaitītu visas pieejamās paketes Yum datu bāzē, izmantojiet zemāk esošo komandu.
# yum list | less
Lai uzskaitītu visas sistēmā instalētās pakotnes, vienkārši izdodiet komandu zemāk, tā parādīs visas instalētās paketes.
# yum list installed | less
Funkcija Yum nodrošina, lai atrastu, kurai pakotnei pieder konkrēts fails. Piemēram, ja vēlaties uzzināt tās paketes nosaukumu, kurai ir /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
Lai uzzinātu, cik daudz jūsu sistēmā instalēto pakotņu ir pieejami atjauninājumi, pārbaudiet, izmantojot šo komandu.
# yum check-update
Lai sistēma būtu atjaunināta ar visiem drošības un bināro pakotņu atjauninājumiem, izpildiet šo komandu. Tas instalēs visus jaunākos ielāpus un drošības atjauninājumus jūsu sistēmā.
# yum update
Operētājsistēmā Linux pakotņu skaits ir apvienots noteiktā grupā. Tā vietā, lai instalētu atsevišķas paketes ar yum, varat instalēt noteiktu grupu, kas instalēs visas saistītās paketes, kas pieder grupai. Piemēram, lai uzskaitītu visas pieejamās grupas, vienkārši izdodiet šādu komandu.
# 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
Lai instalētu noteiktu pakotņu grupu, mēs izmantojam opciju kā grupas instalēšanu. Piemēram, lai instalētu “MySQL Database”, vienkārši izpildiet tālāk norādīto komandu.
# 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!
Lai atjauninātu visas esošās instalētās grupas pakotnes, vienkārši izpildiet šo komandu, kā parādīts zemāk.
# 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!
Lai dzēstu vai noņemtu jebkuru esošo instalēto grupu no sistēmas, vienkārši izmantojiet zemāk esošo komandu.
# 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!
Lai uzskaitītu visus iespējotos Yum krātuves jūsu sistēmā, izmantojiet šo opciju.
# 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
Šī komanda parādīs visas iespējotās un atspējotās yum krātuves sistēmā.
# 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
Lai instalētu noteiktu pakotni no konkrēta iespējota vai atspējota repozitorija, yum komandā jāizmanto opcija –enablerepo. Piemēram, lai instalētu paketi PhpMyAdmin 3.5.2, vienkārši izpildiet komandu.
# 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!
Yum lietderība nodrošina pielāgotu čaulu, kurā varat izpildīt vairākas komandas.
# 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 >
Pēc noklusējuma yum glabā visus repozitorijā iespējotos pakotnes datus mapē/var/cache/yum/ar katru apakšdirektoriju. Lai notīrītu visus kešatmiņā saglabātos failus no iespējotā repozitorija, regulāri jāizpilda šāda komanda, lai notīrītu visu kešatmiņu un pārliecinieties, vai ka nav nekā nevajadzīga telpa. Mēs nevēlamies dot šīs komandas izvadi, jo mums patīk saglabāt kešatmiņā saglabātos datus tādus, kādi tie ir.
# yum clean all
Lai skatītu visus iepriekšējos komandas yum darījumus, vienkārši izmantojiet šo komandu.
# 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
Mēs esam mēģinājuši aptvert visas pamata komandas, lai virzītu yum komandas ar saviem piemēriem. Ja kaut kas saistīts ar yum komandām, iespējams, ir palaidis garām. Lūdzu, atjauniniet mūs, izmantojot mūsu komentāru lodziņu. Tātad mēs turpinām to pašu atjaunināt, pamatojoties uz saņemtajām atsauksmēm.