Bu yazıda, RedHat tarafından geliştirilen YUM (Yellowdog Updater Modified) aracını kullanarak Linux sistemlerinde paketler ve depoları nasıl kuracağınızı, güncelleyeceğini, kaldıracağını, paketleri bulacağını, paketleri nasıl yöneteceğinizi öğreneceğiz. Bu yazıda gösterilen örnek komutlar, CentOS 6.3 sunucuda pratik olarak test edilmekte, bu materyali çalışma amacı, sertifikaları veya sadece yeni paketler yüklemenin yollarını keşfetmek ve sisteminizi güncel tutmak için kullanabilirsiniz. Bu makalenin temel gereksinimi, aşağıda listelenen tüm komutları keşfedip uygulayabileceğiniz komutlar ve çalışan bir Linux işletim sistemi hakkında temel bilgiye sahip olmalısınız.
YUM nedir?
YUM ( Yellowdog Updater Modified ), açık kaynak kodlu bir komut satırı yanı sıra RPM ( RedHat Package Manager ) tabanlı Linux sistemleri için grafik tabanlı bir paket yönetim aracıdır. Kullanıcıların ve sistem yöneticisinin, bir sistemdeki yazılım paketlerini kolayca yüklemesine, güncellemesine, kaldırmasına veya aramalarına olanak tanır. Seth Vidal tarafından GPL ( General Public License ) uyarınca geliştirilmiş ve açık kaynak kod olarak yayınlanmıştır. Herkes bugs’ları düzeltmek ve özelleştirilmiş paketler geliştirmek için kodu indirip erişmesine izin verilebilir demektir. YUM , paketleri bağımlılık sorunlarını çözerek otomatik olarak yüklemek için sayısız üçüncü taraf depolarını kullanmaktadır.
Yum komutlarını kendi örnekleriyle ilerletmek için gereken tüm temel bilgileri kapsamaya çalıştım. Yum komutlarıyla ilgili herhangi bir şey kaçırılmış olabilir.
- YUM ile bir Paket Yükleyin:
Firefox 14 adlı bir paket yüklemek için aşağıdaki komutu çalıştırmanız yeterlidir; Firefox için gerekli tüm bağımlılıkları otomatik olarak bulur ve yükler.
# 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!
Yukarıdaki komut, sisteminize herhangi bir paket yüklemeden önce onay isteyecektir. Herhangi bir teyit istemeksizin paketleri otomatik olarak yüklemek istiyorsanız, aşağıdaki örnekte gösterildiği gibi -y seçeneğini kullanın.
# yum -y install firefox
2. YUM ile bir Paket Çıkarma:
Bir paketi tamamen bağımlılıklarıyla kaldırmak için aşağıdaki komutu aşağıda gösterildiği gibi çalıştırın.
# 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!
Aynı şekilde yukarıdaki komut, bir paketi çıkarmadan önce onaylamayı isteyecektir. Onay istemini devre dışı bırakmak için, aşağıda gösterildiği gibi -y seçeneğini ekleyin.
# yum -y remove firefox
- YUM’u Kullanarak Paket Güncelleme:
Diyelim ki, MySQL paketinin eski sürümüne sahip olduğunuzu ve en son kararlı sürümüne güncellemek istediğinizi varsayalım. Aşağıdaki komutu çalıştırmanız otomatik olarak tüm bağımlılık sorunlarını çözer ve yükler.
# 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!
- YUM kullanarak bir Paket Listeleme:
Belirli paketi adıyla aramak için list işlevini kullanın. Örneğin openssh adlı bir paket aramak için komutu kullanı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
Aramanızı daha doğru hale getirmek için, paket adını versiyonlarıyla birlikte tanımlayın, biliyorsanız. Örneğin paketin belirli bir sürümünü openssh-4.3p2 aramak için komutu kullanın.
# yum list openssh-4.3p2
- YUM kullanarak bir Paket Arayın
Paketin tam adını hatırlamıyorsanız, belirtilen paketin adıyla eşleşen tüm mevcut paketleri aramak için arama işlevini kullanın. Örneğin, kelimeyle eşleşen tüm paketleri aramak için.
# 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
- YUM kullanarak bir Paket Bilgileri Alın
Kurmadan önce bir paketin bilgilerini öğrenmek istediğinizi söyleyin. Bir paket hakkında bilgi almak için aşağıdaki komutu çalıştırın.
# 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.
- Kullanılabilir Paketlerin tümünü YUM kullanarak listele:
Yum veritabanındaki tüm paketleri listelemek için aşağıdaki komutu kullanın.
# yum list | less
- Yüklü Paketlerin tümünü YUM kullanarak listeleyin:
Bir sistemde yüklü olan tüm paketleri listelemek için aşağıdaki komutu çalıştırmanız yeterlidir; yüklü olan tüm paketleri görüntüler.
# yum list installed | less
- Yum Sağlayan Fonksiyonlar:
Yum , belirli bir dosyanın hangi paketin ait olduğunu bulmak için işlev sağlar. Örneğin, /etc/httpd/conf/httpd.conf dosyasının bulunduğu paketin adını öğrenmek isterseniz.
# 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
- Yum kullanarak Mevcut Güncellemeleri Kontrol Edin:
Sisteminizde kaç tane yüklü paketin mevcut olduğunu bulmak için aşağıdaki komutu kullanın kontrol edin.
# yum check-update
- Yum kullanarak güncelleme sistemi:
Sisteminizi tüm güvenlik ve ikili paket güncellemeleri ile güncel tutmak için aşağıdaki komutu çalıştırın. Sisteminize en son çıkan tüm yamaları ve güvenlik güncellemelerini yükleyecektir.
# yum update
- Mevcut tüm Grup Paketlerini listele:
Linux’ta, paketlerin sayısı belirli gruba dağıtılır. Yum’la bireysel paketler yüklemek yerine, gruba ait tüm ilgili paketleri kuracak belirli bir grubu kurabilirsiniz. Örneğin mevcut tüm grupları listelemek için aşağıdaki komutu verin.
# 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
- Grup Paketleri Yükleme:
Belirli bir paket grubunu yüklemek için seçeneği groupinstall olarak kullanın . Örneğin, ” MySQL Veritabanı ” nı yüklemek için aşağıdaki komutu çalıştırmanız yeterlidir.
# 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!
- Bir Grup Paketlerini Güncelleme:
Mevcut tüm kurulu grup paketlerini güncellemek için aşağıdaki komutu aşağıda gösterildiği gibi çalıştırın.
# 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. Bir Grup Paketlerini Kaldırın:
Sistemde varolan herhangi bir grubu silmek veya silmek için aşağıdaki komutu kullanın.
# 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!
- Etkin Yum Depolarını Listele:
Sisteminizdeki tüm etkin Yum depolarını listelemek için aşağıdaki seçeneği kullanın.
# 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. a) Tüm devre dışı ve Engelli Yum Depolarını listele:
Aşağıdaki komut, sistemdeki tüm etkin ve devre dışı bırakılmış yum havuzlarını görüntüleyecektir.
# 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
- Belirli Depodan Bir Paket Kurun:
Belirli bir paketin belirli bir etkinleştirilmiş veya devre dışı bırakılmış depodan yüklenmesi için, yum komutunuzda -enablerepo seçeneğini kullanmanız gerekir. Örneğin PhpMyAdmin 3.5.2 paketini kurmak için komutu çalıştırmanız yeterlidir .
# 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. Etkileşimli Yum Kabuk:
Yum yardımcı programı, birden fazla komutu çalıştırabileceğiniz özel bir kabuk sağlar.
# 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 Önbelleğini Temizle
Varsayılan olarak yum, tüm önbellek dosyalarını etkin depodan temizlemek için tüm alt havuzda etkinleştirilmiş paket verilerini / var / cache / yum / alt dizininde tutar; tüm önbelleği temizlemek için düzenli olarak aşağıdaki komutu çalıştırmanız gerekir. Aşağıdaki komutun çıktısını vermek istemiyoruz çünkü önbelleğe alınmış verileri olduğu gibi saklamayı severiz.
# yum clean all
20. Yum’un Tarihini Görüntüle:
Yum komutunun tüm geçmiş işlemlerini görüntülemek için aşağıdaki komutu kullanın.
# 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