20 Komanda YUM për Menaxhimin e Paketave Linux
Në këtë artikull, ne do të mësojmë se si të instalojmë, përditësojmë, heqim, gjejmë paketa, menaxhojmë paketat dhe depot në sistemet Linux duke përdorur mjetin YUM (Yellowdog Updater Modified) i zhvilluar nga RedHat.
Shembujt e komandave të paraqitura në këtë artikull janë testuar praktikisht në certifikatat tona RHEL, ose thjesht për të eksploruar mënyra për të instaluar paketa të reja dhe për të mbajtur sistemin tuaj të përditësuar.
Kërkesa themelore e këtij artikulli është, ju duhet të keni një kuptim bazë të komandave dhe një sistem operativ Linux që funksionon, ku mund të eksploroni dhe praktikoni të gjitha komandat e listuara më poshtë.
Çfarë është YUM?
YUM (Yellowdog Updater Modified) është një linjë komande me burim të hapur, si dhe një mjet i menaxhimit të paketave të bazuara në grafik për sistemet Linux të bazuara në RPM (RedHat Package Manager).
Ai i lejon përdoruesit dhe administratorët e sistemit të instalojnë, përditësojnë, heqin ose kërkojnë lehtësisht paketat e softuerit në një sistem. Është zhvilluar dhe lëshuar nga Seth Vidal nën GPL (General Public License) si një burim i hapur, që do të thotë se çdokush mund të lejohet të shkarkojë dhe të ketë akses në kod për të rregulluar gabimet dhe për të zhvilluar paketa të personalizuara.
YUM përdor depo të shumta të palëve të treta për të instaluar automatikisht paketat duke zgjidhur çështjet e varësisë së tyre.
Përditësimi: Komanda yum zëvendësohet nga shpërndarjet e bazuara në RPM.
Për të instaluar një paketë të quajtur Firefox, thjesht ekzekutoni komandën e mëposhtme, ajo automatikisht do të gjejë dhe instalojë të gjitha varësitë e kërkuara për Firefox-in.
# 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!
Komanda e mësipërme do të kërkojë konfirmim përpara se të instaloni ndonjë paketë në sistemin tuaj. Nëse dëshironi të instaloni paketat automatikisht pa kërkuar ndonjë konfirmim, përdorni opsionin -y
siç tregohet në shembullin më poshtë.
# yum -y install firefox
Për të hequr plotësisht një paketë me të gjitha varësitë, thjesht ekzekutoni komandën e mëposhtme siç tregohet më poshtë.
# 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!
Në të njëjtën mënyrë, komanda e mësipërme do të kërkojë konfirmim përpara se të hiqni një paketë. Për të çaktivizuar kërkesën e konfirmimit, thjesht shtoni opsionin -y
siç tregohet më poshtë.
# yum -y remove firefox
Le të themi se keni një version të vjetëruar të paketës MySQL dhe dëshironi ta përditësoni atë në versionin më të fundit të qëndrueshëm. Thjesht ekzekutoni komandën e mëposhtme, ajo automatikisht do të zgjidhë të gjitha çështjet e varësisë dhe do t'i instalojë ato.
# 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!
Përdorni funksionin e listës për të kërkuar paketën specifike me një emër. Për shembull, për të kërkuar një paketë të quajtur OpenSSH, përdorni komandën.
# 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
Për ta bërë kërkimin tuaj më të saktë, përcaktoni emrat e paketave me versionin e tyre, nëse e dini. Për shembull, për të kërkuar një version specifik OpenSSH-4.3p2 të paketës, përdorni komandën.
# yum list openssh-4.3p2
[ Ju gjithashtu mund të pëlqeni: Si të siguroni dhe ngurtësoni serverin OpenSSH ]
Nëse nuk e mbani mend emrin e saktë të paketës, atëherë përdorni funksionin e kërkimit për të kërkuar të gjitha paketat e disponueshme që të përputhen me emrin e paketës që keni specifikuar. Për shembull, për të kërkuar të gjitha paketat që përputhen me fjalën.
# 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
Thuaj se do të dëshironit të dini informacionin për një paketë përpara se ta instaloni atë. Për të marrë informacion mbi një paketë, thjesht lëshoni komandën e mëposhtme.
# 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.
Për të renditur të gjitha paketat e disponueshme në bazën e të dhënave Yum, përdorni komandën e mëposhtme.
# yum list | less
Për të renditur të gjitha paketat e instaluara në një sistem, thjesht lëshoni komandën e mëposhtme, ajo do të shfaqë të gjitha paketat e instaluara.
# yum list installed | less
Funksioni Yum ofron përdoret për të gjetur se cilës paketë i përket një skedar specifik. Për shembull, nëse dëshironi të dini emrin e paketës që ka /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
Për të gjetur se sa paketa të instaluara në sistemin tuaj kanë përditësime të disponueshme, kontrolloni të përdorni komandën e mëposhtme.
# yum check-update
Për ta mbajtur sistemin tuaj të përditësuar me të gjitha përditësimet e paketave të sigurisë dhe binare, ekzekutoni komandën e mëposhtme. Ai do të instalojë të gjitha arnimet më të fundit dhe përditësimet e sigurisë në sistemin tuaj.
# yum update
Në Linux, një numër paketash bashkohen në një grup të caktuar. Në vend që të instaloni paketa individuale me yum, mund të instaloni një grup të caktuar që do të instalojë të gjitha paketat e lidhura që i përkasin grupit. Për shembull, për të renditur të gjitha grupet e disponueshme, thjesht lëshoni komandën e mëposhtme.
# 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
Për të instaluar një grup të caktuar paketash, ne përdorim opsionin si groupinstall. Për shembull, për të instaluar MySQL Database, thjesht ekzekutoni komandën e mëposhtme.
# 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!
Për të përditësuar çdo paketë ekzistuese të grupit të instaluar, thjesht ekzekutoni komandën e mëposhtme siç tregohet më poshtë.
# 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!
Për të fshirë ose hequr çdo grup ekzistues të instaluar nga sistemi, thjesht përdorni komandën e mëposhtme.
# 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!
Për të renditur të gjitha depot e aktivizuara të Yum në sistemin tuaj, përdorni opsionin e mëposhtëm.
# 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 e mëposhtme do të shfaqë të gjitha depot e aktivizuara dhe të çaktivizuara yum në sistem.
# 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
Për të instaluar një paketë të veçantë nga një depo specifike e aktivizuar ose e çaktivizuar, duhet të përdorni një opsion --enablerepo
në komandën tuaj yum. Për shembull, për të instaluar paketën PhpMyAdmin, thjesht ekzekutoni komandën.
# 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!
Shërbimi Yum ofron një guaskë të personalizuar ku mund të ekzekutoni komanda të shumta.
# 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
>
Si parazgjedhje, yum ruan të gjitha të dhënat e paketës së aktivizuar nga depoja në /var/cache/yum/ me secilën nëndrejtori, për të pastruar të gjithë skedarët e ruajtur në memorie nga depoja e aktivizuar, duhet të ekzekutoni rregullisht komandën e mëposhtme për të pastruar të gjithë cache-në dhe i sigurt se nuk ka asgjë të panevojshme që po përdor hapësirë. Ne nuk duam të japim daljen e komandës së mëposhtme, sepse na pëlqen t'i mbajmë të dhënat e memories ashtu siç janë.
# yum clean all
Për të parë të gjitha transaksionet e kaluara të komandës yum, thjesht përdorni komandën e mëposhtme.
# 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
Ne jemi përpjekur të mbulojmë të gjitha komandat themelore për të avancuar yum me shembujt e tyre. Nëse ndonjë gjë në lidhje me komandat yum mund të ketë humbur. Ju lutemi na përditësoni përmes kutisë sonë të komenteve. Pra, ne vazhdojmë të përditësojmë të njëjtën gjë bazuar në komentet e marra.