20 YUM ukazov za upravljanje paketov Linux
V tem članku bomo izvedeli, kako namestiti, posodobiti, odstraniti, najti pakete, upravljati pakete in skladišča v sistemih Linux z uporabo orodja YUM (Yellowdog Updater Modified), ki ga je razvil RedHat. Primeri ukazov, prikazani v tem članku, so praktično preizkušeni na našem strežniku CentOS 6.3, to gradivo lahko uporabite za študijske namene, certificiranje ali samo za raziskovanje načinov namestitve novih paketov in posodabljanja sistema. Osnovna zahteva tega članka je, da morate osnovno razumeti ukaze in delujoč operacijski sistem Linux, kjer lahko raziščete in izvajate vse spodaj naštete ukaze.
Kaj je YUM?
YUM (Yellowdog Updater Modified) je odprtokodna ukazna vrstica in grafično orodje za upravljanje paketov za sisteme Linux na osnovi RPM (RedHat Package Manager). Uporabnikom in sistemskemu skrbniku omogoča enostavno namestitev, posodabljanje, odstranjevanje ali iskanje programskih paketov v sistemih. Seth Vidal jo je razvil in izdal pod GPL (General Public License) kot odprtokodno, kar pomeni, da lahko vsakdo prenese in dostopa do kode za odpravljanje napak in razvoj prilagojenih paketov. YUM uporablja številne repozitorije tretjih oseb za samodejno namestitev paketov z reševanjem težav z odvisnostmi.
Če želite namestiti paket z imenom Firefox 14, preprosto zaženite spodnji ukaz, da bo samodejno našel in namestil vse potrebne odvisnosti za 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!
Zgornji ukaz bo zahteval potrditev pred namestitvijo katerega koli paketa v vaš sistem. Če želite pakete namestiti samodejno brez kakršne koli potrditve, uporabite možnost -y, kot je prikazano v spodnjem primeru.
# yum -y install firefox
Če želite paket popolnoma odstraniti z vsemi odvisnostmi, zaženite naslednji ukaz, kot je prikazano spodaj.
# 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!
Na enak način bo zgornji ukaz zahteval potrditev, preden odstranite paket. Če želite onemogočiti potrditveni poziv, dodajte možnost -y, kot je prikazano spodaj.
# yum -y remove firefox
Recimo, da imate zastarelo različico paketa MySQL in ga želite posodobiti na najnovejšo stabilno različico. Preprosto zaženite naslednji ukaz, ki bo samodejno odpravil vse težave z odvisnostmi in jih namestil.
# 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!
S funkcijo seznama poiščite določen paket z imenom. Če želite na primer poiskati paket z imenom openssh, uporabite ukaz.
# 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
Za natančnejše iskanje določite ime paketa z njihovo različico, če veste. Če želite na primer poiskati določeno različico paketa openssh-4.3p2, uporabite ukaz.
# yum list openssh-4.3p2
Če se ne spomnite natančnega imena paketa, uporabite funkcijo iskanja, da poiščete vse razpoložljive pakete, da se ujemajo z imenom paketa, ki ste ga navedli. Na primer za iskanje po vseh paketih, ki se ujemajo z besedo.
# 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
Recimo, da želite vedeti informacije o paketu, preden ga namestite. Če želite dobiti informacije o paketu, preprosto izdajte spodnji ukaz.
# 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.
Če želite v zbirki podatkov Yum navesti vse razpoložljive pakete, uporabite spodnji ukaz.
# yum list | less
Če želite navesti vse nameščene pakete v sistemu, samo izdajte spodnji ukaz, da bodo prikazani vsi nameščeni paketi.
# yum list installed | less
Funkcija Yum provides se uporablja za iskanje, kateremu paketu pripada določena datoteka. Če na primer želite vedeti ime paketa, ki vsebuje /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
Če želite ugotoviti, koliko nameščenih paketov v vašem sistemu ima posodobitve, preverite z naslednjim ukazom.
# yum check-update
Če želite sistem redno posodabljati z vsemi varnostnimi in binarnimi posodobitvami paketov, zaženite naslednji ukaz. V vaš sistem bo namestil vse najnovejše popravke in varnostne posodobitve.
# yum update
V Linuxu je število paketov združenih v določeno skupino. Namesto da namestite posamezne pakete z yumom, lahko namestite določeno skupino, ki bo namestila vse povezane pakete, ki spadajo v skupino. Če želite na primer našteti vse razpoložljive skupine, samo izdajte naslednji ukaz.
# 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
Za namestitev določene skupine paketov uporabimo možnost kot groupinstall. Na primer, če želite namestiti "MySQL Database", samo izvedite spodnji ukaz.
# 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!
Če želite posodobiti obstoječe nameščene pakete skupin, zaženite naslednji ukaz, kot je prikazano spodaj.
# 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!
Če želite iz sistema izbrisati ali odstraniti katero koli obstoječo nameščeno skupino, uporabite spodnji ukaz.
# 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!
Če želite v svojem sistemu navesti vse omogočene repozitorije Yum, uporabite naslednjo možnost.
# 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
Naslednji ukaz bo prikazal vse omogočene in onemogočene shrambe yum v sistemu.
# 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
Če želite namestiti določen paket iz določenega omogočenega ali onemogočenega repozitorija, morate v ukazu yum uporabiti možnost –enablerepo. Na primer, če želite na primer namestiti paket PhpMyAdmin 3.5.2, samo izvedite ukaz.
# 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!
Pripomoček Yum ponuja lupino po meri, kjer lahko izvajate več ukazov.
# 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 >
Privzeto yum obdrži vse podatke o paketu z omogočenim repozitorijem v/var/cache/yum/z vsakim podimenikom, če želite očistiti vse predpomnjene datoteke iz omogočenega repozitorija, morate redno izvajati naslednji ukaz, da počistite ves predpomnilnik in se prepričajte da ne uporablja ničesar nepotrebnega prostora. Ne želimo dajati rezultatov spodnjega ukaza, ker radi ohranimo predpomnjene podatke takšne, kot so.
# yum clean all
Če si želite ogledati vse pretekle transakcije ukaza yum, uporabite naslednji ukaz.
# 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
S svojimi primeri smo poskušali zajeti vse osnovne korake za napredovanje yum ukazov. Če je karkoli v zvezi z yum ukazi morda zamudilo. Prosimo, posodobite nas prek našega polja za komentar. Torej, isto posodabljamo na podlagi prejetih povratnih informacij.