Yum (Yellowdog Update, Modifier) merupakan package manager yang digunakan oleh system berbasiskan Red Hat Package Manager (rpm), pada distro lain kita mengenal adanya apt-get atau aptitude (debian based system), pkg_add pada OpenBSD.
Yum digunakan untuk meng-query informasi dari package, men-download package dari repository, melakukan installasi package, uninstall package, meng-update system. Yum secara otomatis akan memeriksa dependencies dari package waktu melakukan process installasi, uninstall atau update dan secara otomatis juga akan menginstall, uninstall atau update package yang dibutuhkan.
Jika pernah menggunakan rpm untuk menginstall package, mungkin pernah melihat output berikut
[root@anif ~]# rpm -ivh supertuxkart-0.7-2.fc15.i686.rpm
error: Failed dependencies:
libIrrXML.so.1.7 is needed by supertuxkart-0.7-2.fc15.i686
libIrrlicht.so.1.7 is needed by supertuxkart-0.7-2.fc15.i686
opengl-games-utils is needed by supertuxkart-0.7-2.fc15.i686
supertuxkart-data = 0.7 is needed by supertuxkart-0.7-2.fc15.i686
rpm command tidak bisa secara otomatis menginstall package-package yang dibutuhkan oleh supertuxkart-0.7-2.fc15.i686.rpm, sehingga pada saat installasi akan gagal karena dependencies package tidak terpenuhi.
Hal yang berbeda jika kita menggunakan yum untuk menginstall program supertuxkart, dimana yum secara otomatis akan mendeteksi package yang dibutuhkan dan menginstallnya
[root@anif ~]# yum install supertuxkart
Loaded plugins: langpacks, presto, refresh-packagekit
adobe-linux-i386 | 951 B 00:00
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package supertuxkart.i686 0:0.7-2.fc15 will be installed
–> Processing Dependency: supertuxkart-data = 0.7 for package: supertuxkart-0.7-2.fc15.i686
–> Processing Dependency: opengl-games-utils for package: supertuxkart-0.7-2.fc15.i686
–> Processing Dependency: libIrrlicht.so.1.7 for package: supertuxkart-0.7-2.fc15.i686
–> Processing Dependency: libIrrXML.so.1.7 for package: supertuxkart-0.7-2.fc15.i686
–> Running transaction check
—> Package irrlicht.i686 0:1.7.2-4.fc15 will be installed
–> Processing Dependency: libaesgm.so.0 for package: irrlicht-1.7.2-4.fc15.i686
—> Package opengl-games-utils.noarch 0:0.1-10.fc15 will be installed
—> Package supertuxkart-data.noarch 0:0.7-2.fc15 will be installed
–> Running transaction check
—> Package libaesgm.i686 0:20090429-4.fc15 will be installed
–> Finished Dependency ResolutionDependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
supertuxkart i686 0.7-2.fc15 fedora 829 k
Installing for dependencies:
irrlicht i686 1.7.2-4.fc15 fedora 1.4 M
libaesgm i686 20090429-4.fc15 fedora 43 k
opengl-games-utils noarch 0.1-10.fc15 fedora 6.6 k
supertuxkart-data noarch 0.7-2.fc15 fedora 99 MTransaction Summary
================================================================================
Install 5 Package(s)Total download size: 101 M
Installed size: 147 M
Is this ok [y/N]:
terlihat dari output diatas, tidak hanya package supertuxkart yang diinstall, tapi juga package lain yang dibutuhkan oleh program supertuxkart juga ikut diinstall oleh yum.
Package source yang digunakan oleh yum untuk mendownload packages yang akan diinstall dikenal dengan nama repositories. Repositories ini bisa berupa package source local (jika terdapat banyak PC menggunakan Fedora, maka bisa di configure repository local sehingga akan bisa menghemat bandwith internet), bisa juga menggunakan packages source online dari repositories resmi fedora.
Jika menggunakan repositories default setelah installasi Fedora 15 yang ada di /etc/yum.repos.d, untuk bisa melakukan install, update atau searching package harus terkoneksi dengan internet.
- yum konfigurasi file
konfigurasi yum terdapat pada /etc/yum.conf, sedangkan file konfigurasi untuk repositories terletak pada /etc/yum.repos.d.
ada banyak options yang bisa digunakan pada /etc/yum.conf yang mengatur yum. Untuk melihat options yang bisa digunakan oleh yum.conf dari command line gunakan perintahman yum.conf
Direktori /etc/yum.repos.d digunakan untuk menyimpan file konfigurasi repositories, disini berisikan list server yang akan digunakan oleh yum. File-file konfigurasi repositories yang terdapat /etc/yum.repos.d menggunakan .repo extension yang dikenal dengan nama .repo file. Untuk melihat daftar repositories yang ada di /etc/yum.repos.d gunakan ls command.
[anif@anif ~]$ ls -l /etc/yum.repos.d/
total 48
-rw-r–r– 1 root root 179 Jul 26 2007 adobe-linux-i386.repo
-rw-r–r– 1 root root 1144 Jun 24 21:27 fedora.repo
-rw-r–r– 1 root root 1105 Jun 24 21:27 fedora-updates.repo
-rw-r–r– 1 root root 1163 Jun 24 21:27 fedora-updates-testing.repo
-rw-r–r– 1 root root 1301 May 28 14:30 rpmfusion-free-rawhide.repo
-rw-r–r– 1 root root 1202 May 28 14:30 rpmfusion-free.repo
-rw-r–r– 1 root root 1200 May 28 14:30 rpmfusion-free-updates.repo
-rw-r–r– 1 root root 1260 May 17 2009 rpmfusion-free-updates-testing.repo
-rw-r–r– 1 root root 1355 May 28 14:31 rpmfusion-nonfree-rawhide.repo
-rw-r–r– 1 root root 1247 May 28 14:31 rpmfusion-nonfree.repo
-rw-r–r– 1 root root 1245 May 28 14:31 rpmfusion-nonfree-updates.repo
-rw-r–r– 1 root root 1305 May 17 2009 rpmfusion-nonfree-updates-testing.repo - yum cache dan log file
yum cache path bisa diketahui dari variable cachedir pada /etc/yum.conf, defaultnya ada di /var/cache/yumcachedir=/var/cache/yum/$basearch/$releasever
Untuk melihat isi file .repo gunakan vi atau gedit text editor, bisa juga langsung menggunakan command more atau less
[anif@anif ~]$ more /etc/yum.repos.d/fedora-updates.repo
yum log file bisa dilihat di /var/log/yum.log. File yum.log ini me-record semua transaksi yang terjadi baik itu untuk file yang di update, di install atau di uninstall. Untuk bisa melihat isi dari yum.log harus menggunakan hak akses sebagai root.
[anif@anif ~]$ su -c ‘cat /var/log/yum.log’
Jul 04 05:44:57 Updated: libass-0.9.12-1.fc15.i686
Jul 04 05:47:18 Erased: fedora-release-rawhide
Jul 04 05:48:12 Erased: report-gtk
Jul 04 06:32:52 Installed: flash-plugin-10.3.181.34-release.i386
Jul 08 08:05:32 Updated: systemtap-sdt-devel-1.5-5.fc15.i686
Jul 08 08:05:33 Updated: python-IPy-0.75-1.fc15.noarch
Jul 08 08:05:46 Updated: glibc-common-2.14-4.i686
- Create repo
Untuk meng-create Fedora repositories, terlebih dahulu harus menginstall packages createrepo. Setelah package ini terinstall, copy semua file rpm yang didownload ke direktori seperti /home/local_repo/f15.
Running command berikut untuk create file dan generate file yang dibutuhkan:[root@anif ~]# createrepo –database /home/local_repo/f15/
Spawning worker 0 with 1 pkgs
Workers Finished
Gathering worker resultsSaving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs completeUntuk bisa menggunakan file rpm yang ada di repo yang sudah dicreate ini, create file .repo di /etc/yum.repos.d, misalkan filenamenya adalah urangkayo.repo,
# vi urangkayo.repo
[urangkayo]
name=urangkayo Local Repo F15
baseurl=file:/home/local_repo/f15sample file diatas adalah minimal value yang harus ada di file .repo