20 YUM-i käsku Linuxi pakettide haldamiseks
Selles artiklis õpime, kuidas RedHati väljatöötatud tööriista YUM (Yellowdog Updater Modified) abil Linuxi süsteemides installida, värskendada, eemaldada pakette, hallata pakette ja hoidlaid. Selles artiklis näidiskäske testitakse praktiliselt meie CentOS 6.3 serveris. Võite kasutada seda materjali õppetöö eesmärgil, sertifikaatide saamiseks või lihtsalt uute pakettide installimise ja süsteemi ajakohasena hoidmise võimaluste uurimiseks. Selle artikli põhinõue on, et teil peaks olema põhiteadmised käskudest ja toimiv Linuxi operatsioonisüsteem, kus saate uurida ja harjutada kõiki allpool loetletud käske.
Mis on YUM?
YUM (Yellowdog Updater Modified) on nii avatud lähtekoodiga käsurida kui ka graafiline pakettide haldamise tööriist RPM (RedHat Package Manager) põhinevatele Linuxi süsteemidele. See võimaldab kasutajatel ja süsteemiadministraatoril tarkvarapakette süsteemidesse hõlpsasti installida, värskendada, eemaldada või otsida. Selle on välja töötanud ja välja andnud Seth Vidal GPL (General Public License) all avatud lähtekoodina, mis tähendab, et igaüks võib lubada koodi alla laadida ja sellele juurde pääseda, et vigu parandada ja kohandatud pakette arendada. YUM kasutab arvukaid kolmanda osapoole hoidlaid pakettide automaatseks installimiseks, lahendades nende sõltuvusprobleemid.
Firefox 14-nimelise paketi installimiseks käivitage lihtsalt järgmine käsk: see leiab ja installib kõik Firefoxi kõik vajalikud sõltuvused.
# 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!
Ülaltoodud käsk küsib enne paketi installimist teie süsteemi kinnitust. Kui soovite pakette automaatselt installida ilma kinnitust küsimata, kasutage valikut -y, nagu on näidatud allpool näites.
# yum -y install firefox
Paketi täielikuks eemaldamiseks koos kõigi nende sõltuvustega käivitage lihtsalt järgmine käsk, nagu allpool näidatud.
# 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!
Samamoodi küsib ülaltoodud käsk enne paketi eemaldamist kinnitust. Kinnitusviiba keelamiseks lisage lihtsalt valik -y, nagu allpool näidatud.
# yum -y remove firefox
Oletame, et teil on MySQL-i paketi vananenud versioon ja soovite selle värskendada uuemale stabiilsele versioonile. Käivitage lihtsalt järgmine käsk. See lahendab automaatselt kõik sõltuvuse probleemid ja installib need.
# 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!
Kasutage loendi funktsiooni konkreetse nimega paketi otsimiseks. Näiteks paketi opensh otsimiseks kasutage käsku.
# 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
Otsingu täpsemaks muutmiseks määrake paketi nimi nende versiooniga, kui teate. Näiteks paketi konkreetse versiooni openssh-4.3p2 otsimiseks kasutage käsku.
# yum list openssh-4.3p2
Kui te ei mäleta paketi täpset nime, siis kasutage otsingufunktsiooni kõigi saadaolevate pakettide otsimiseks, et see vastaks teie määratud paketi nimele. Näiteks otsida kõiki pakette, mis sobivad sõnaga.
# 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
Oletame, et soovite enne paketi installimist saada teavet paketi kohta. Paketi kohta teabe saamiseks väljastage lihtsalt järgmine käsk.
# 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.
Kõigi saadaolevate pakettide loetlemiseks Yumi andmebaasis kasutage allolevat käsku.
# yum list | less
Kõigi süsteemis installitud pakettide loetlemiseks väljastage lihtsalt käsk allpool, kuvatakse kõik installitud paketid.
# yum list installed | less
Funktsiooni Yum pakub, et leida, millisesse paketti konkreetne fail kuulub. Näiteks kui soovite teada paketi nime, millel on /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
Kui soovite teada, kui palju teie süsteemis installitud pakette on värskendusi saadaval, kontrollige järgmist käsku.
# yum check-update
Süsteemi kõigi turvalisuse ja binaarpakettide värskenduste ajakohasena hoidmiseks käivitage järgmine käsk. See installib teie süsteemi kõik uusimad plaastrid ja turvavärskendused.
# yum update
Linuxis on pakettide arv seotud teatud rühmaga. Selle asemel, et installida yumiga üksikuid pakette, saate installida kindla rühma, mis installib kõik seotud rühmale kuuluvad paketid. Näiteks kõigi saadaolevate rühmade loetlemiseks väljastage lihtsalt järgmine käsk.
# 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
Konkreetse paketirühma installimiseks kasutame rühmainstallina valikut. Näiteks "MySQL Database" installimiseks käivitage lihtsalt järgmine käsk.
# 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!
Olemasolevate installitud rühmapakettide värskendamiseks käivitage lihtsalt järgmine käsk, nagu allpool näidatud.
# 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!
Olemasoleva installitud rühma kustutamiseks või süsteemist eemaldamiseks kasutage lihtsalt käsku allpool.
# 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!
Kõigi teie süsteemis lubatud Yumi hoidlate loetlemiseks kasutage järgmist valikut.
# 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
Järgmine käsk kuvab kõik süsteemi lubatud ja keelatud yum-hoidlad.
# 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
Konkreetse paketi installimiseks konkreetsest lubatud või keelatud hoidlast peate yum-käsus kasutama suvandit –enablerepo. Näiteks paketi PhpMyAdmin 3.5.2 installimiseks käivitage lihtsalt käsk.
# 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!
Yumi utiliit pakub kohandatud kest, kus saate käivitada mitu käsku.
# 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 >
Vaikimisi hoiab yum kõiki alamkataloogi võimaldavaid paketiandmeid kataloogis/var/cache/yum/iga alamkataloogiga. Kõigi vahemällu salvestatud failide puhastamiseks lubatud hoidlast peate kogu vahemälu puhastamiseks regulaarselt käivitama järgmise käsu ja veenduma, et et pole midagi tarbetut ruumi. Me ei soovi anda allpool toodud käsu väljundit, sest meile meeldib vahemällu salvestatud andmeid hoida.
# yum clean all
Kõigi käsu yum eelmiste tehingute vaatamiseks kasutage lihtsalt järgmist käsku.
# 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
Oleme püüdnud oma näidetega katta kõik põhilised yum-käskude edendamise viisid. Kui midagi yum-käskudega seonduvat võib olla vahele jäänud. Palun värskendage meid meie kommentaarikasti kaudu. Niisiis, värskendame sama teavet saadud tagasiside põhjal.