Saat Anda melakukan pembaruan yum, itu akan mengunduh versi terbaru dari semua paket yang diinstal pada sistem Anda, dan tingkatkan ke versi terbaru.
Anda mungkin berada dalam situasi di mana Anda mungkin tidak ingin yum memperbarui satu (atau lebih) paket tertentu secara otomatis.
Dalam situasi tersebut, gunakan opsi pengecualian yum seperti yang ditunjukkan pada contoh di bawah ini.
1. Kecualikan Paket Tunggal menggunakan opsi -x
Misalnya, pada sistem ini, kami menggunakan PHP 5.1, dan aplikasi php khusus yang berjalan pada sistem ini belum diuji dengan versi PHP baru lainnya.
# rpm -q php php-5.1.0-27.el6_5.x86_64
Jadi, dalam hal ini ketika kami melakukan pembaruan, kami hanya ingin mengecualikan satu paket tertentu, yaitu php. Seperti yang kita lihat di bawah, berikut ini menunjukkan bahwa paket php akan diperbarui ke ver 5.3.3 ketika kita menjalankan perintah 'yum update'.
# yum check-update php php.x86_64 5.3.3-40.el6_6 updates
Berikut ini akan mengecualikan hanya satu paket (php) selama pembaruan yum.
# yum -x php update
2. Kecualikan Beberapa Paket menggunakan opsi -x
Anda dapat mengecualikan beberapa paket dengan menentukan beberapa opsi -x seperti yang ditunjukkan di bawah ini:
yum -x php -x httpd update
Anda juga dapat mengecualikan lebih dari satu paket dengan menentukan daftar paket yang dipisahkan dengan koma. Berikut ini akan berperilaku persis sama seperti di atas.
yum -x php,httpd update
3. Kecualikan Beberapa Paket (misalnya paket Kernel) menggunakan Wildcard
Dalam kebanyakan situasi, Anda mungkin tidak ingin yum update mengupgrade kernel secara otomatis.
Sebelum Anda melakukan pembaruan yum yang sebenarnya, Anda dapat melakukan pembaruan pemeriksaan yum, yang akan menampilkan semua paket yang akan ditingkatkan selama pembaruan yum.
Seperti yang Anda lihat di bawah, dalam contoh ini, ada tiga paket terkait kernel yang akan diupgrade oleh yum update.
# yum check-update | grep -i kernel kernel.x86_64 2.6.32-504.1.3.el6 updates kernel-firmware.noarch 2.6.32-504.1.3.el6 updates kernel-headers.x86_64 2.6.32-504.1.3.el6 updates
Alih-alih menentukan semua nama paket individual dalam daftar pengecualian -x, kita cukup menggunakan wildcard shell glob seperti yang ditunjukkan di bawah ini. Berikut ini akan mengecualikan semua bentuk paket terkait kernel yang mulai ditingkatkan selama pembaruan yum.
yum -x kernel* update
4. Beberapa Daftar Wildcard di Opsi -x
Anda juga dapat menentukan beberapa daftar karakter pengganti dalam opsi -x.
Seperti yang Anda lihat di bawah, berikut ini menunjukkan bahwa ada beberapa paket php yang akan ditingkatkan selama pembaruan yum berikutnya.
# yum check-update | grep -i php php.x86_64 5.3.3-40.el6_6 updates php-cli.x86_64 5.3.3-40.el6_6 updates php-common.x86_64 5.3.3-40.el6_6 updates php-xml.x86_64 5.3.3-40.el6_6 updates
Jika Anda ingin mengecualikan semua paket terkait php dan kernel selama pembaruan yum berikutnya, Anda dapat menggunakan yang berikut ini. Harap dicatat bahwa Anda harus menggunakan ' ' dalam contoh ini.
yum -x 'php*' -x 'kernel*' update
5. Menggunakan –exclude sebagai ganti -x
Anda juga dapat menggunakan –exclude sebagai ganti -x seperti yang ditunjukkan di bawah ini:
yum --exclude php update yum --exclude httpd update yum --exclude kernel update yum -exclude php*,httpd*,kernel* update
6. Kecualikan Paket Menggunakan File yum.conf
Alih-alih menentukan paket yang akan dikecualikan di baris perintah, Anda dapat menentukannya di file /etc/yum.conf.
Misalnya, untuk mengecualikan semua paket php, httpd, dan kernel yang akan dikecualikan dari pembaruan yum, tambahkan baris berikut:
exclude=php* httpd* kernel*
Atau, jalankan perintah berikut:
echo "exclude=php* httpd* kernel*" >> /etc/yum.conf
7. Gunakan Daftar Dipisahkan Koma
Anda juga dapat mengecualikan lebih dari satu paket dengan menentukan daftar paket wildcard yang dipisahkan dengan koma. Berikut ini akan berperilaku persis sama seperti di atas.
yum -x php*,kernel* update
Agar konsisten dengan cara kami menunjukkan contoh lain menggunakan opsi -x di atas, Anda juga dapat menggunakan koma (bukan hanya spasi) untuk memisahkan beberapa paket seperti yang ditunjukkan di bawah ini:
# vi /etc/yum.conf exclude=php*,httpd*,kernel*
8. Kecualikan Parameter di dalam File Repo Kustom
Alih-alih menentukan parameter pengecualian di file yum.conf utama, Anda juga dapat menentukannya di file repositori individual.
Misalnya, jika Anda telah menginstal mongodb, Anda akan memiliki mongodb.repo di bawah direktori /etc/yum.repos.d. Anda dapat menentukan daftar paket pengecualian untuk repositori mongodb di dalam file mongodb.repo ini.
# vi /etc/yum.repos.d/mongodb.repo exclude=mongo*
9. Simulasikan Yum Exclude Check menggunakan check-update (Dry-run -x)
Anda dapat menentukan opsi -x bersama dengan check-update juga. Ini membantu Anda memeriksa apakah opsi -x yang Anda tentukan di baris perintah atau di file yum.conf berfungsi seperti yang diharapkan.
Misalnya, berikut ini menunjukkan bahwa kernel akan ditingkatkan selama pembaruan yum.
# yum check-update | grep -i kernel kernel.x86_64 2.6.32-504.1.3.el6 updates kernel-firmware.noarch 2.6.32-504.1.3.el6 updates kernel-headers.x86_64 2.6.32-504.1.3.el6 updates
Berikut ini menunjukkan bahwa flag -x akan berfungsi seperti yang diharapkan karena tidak mengembalikan apa pun dalam hasil.
# yum -x kernel* check-update | grep -i kernel
Sebagai contoh, katakanlah baris pengecualian berikut ini ada di file yum.conf.
# grep exclude /etc/yum.conf exclude=php*,httpd*,kernel*
Kemudian, berikut ini menunjukkan bahwa daftar pengecualian yang ditentukan dalam /etc/yum.conf di atas akan berfungsi seperti yang diharapkan karena check-update tidak menampilkan paket-paket tersebut (termasuk kernel) pada output berikut.
# yum check-update | egrep 'php|httpd|kernel'
10. Abaikan Exclude from yum.conf File
Jika Anda ingin menonaktifkan pengecualian yang disebutkan dalam file yum.conf. yaitu Jika Anda tidak ingin pembaruan yum mempertimbangkan daftar pengecualian yang ditentukan dalam file yum.conf, Anda dapat menggunakan opsi –disableexcludes dari baris perintah.
Dalam contoh kami sebelumnya, kami telah mengecualikan paket php, httpd, dan kernel untuk diperbarui oleh pembaruan yum.
Namun, jika Anda ingin yum mengabaikan daftar pengecualian itu (yaitu menonaktifkan pengecualian) dan terus meningkatkan versi php, httpd, dan kernel sebagai bagian dari perintah pembaruan yum biasa, jalankan perintah berikut:
yum --disableexcludes=all update
Berikut ini adalah tiga kemungkinan nilai yang dapat Anda tentukan untuk disableexcludes
- semua Nonaktifkan semua pengecualian
- main Disable tidak termasuk yang ditentukan di bagian utama file yum.conf
- repoid Nonaktifkan pengecualian yang ditentukan untuk id repo yang diberikan
Jika Anda ingin menonaktifkan pengecualian hanya untuk repositori khusus tertentu, Anda dapat menentukan id repo (yang merupakan kolom pertama dalam perintah yum repolist seperti yang ditunjukkan di bawah).
# yum repolist repo id repo name status mongodb MongoDB Repository 240 base CentOS-6 - Base 6,518 extras CentOS-6 - Extras 35 updates CentOS-6 - Updates 315
Berikut ini akan menonaktifkan (mengabaikan) daftar pengecualian yang ditentukan dalam file mongodb.repo di bawah direktori /etc/yum.repos.d.
yum --disableexcludes=mongodb update