T:Saya memiliki beberapa repositori yum di sistem saya. Misalnya, centos, epel, docker, mongo, dll. Ketika saya menjalankan perintah yum update, paket yang diinstal dari semua repositori diperbarui. Bagaimana saya bisa mengecualikan repositori tertentu selama pembaruan yum?
J:Selama pembaruan yum, untuk mengecualikan paket yang dimiliki repositori tertentu, gunakan salah satu dari dua metode yang dijelaskan dalam tutorial ini.
Selain itu, perlu diingat bahwa alih-alih mengecualikan seluruh repositori, Anda juga dapat mengecualikan paket tertentu:10 Yum Exclude Contoh untuk Melewati Paket untuk Linux Yum Update (Cara Yum Mengecualikan Pembaruan Kernel)
1. Dapatkan Daftar Repositori
Untuk melihat semua repositori yang tersedia di sistem Anda, jalankan yum repolist seperti yang ditunjukkan di bawah ini.
# yum repolist repo id repo name status base CentOS-6 - Base 6,575 extras CentOS-6 - Extras 62 updates CentOS-6 - Updates 1,622 dockerrepo Docker Repository 2 mongodb-org-3.0 MongoDB Repository 75 repolist: 8,336
Dalam contoh di atas, kita memiliki yang berikut:
- Tiga repositori pertama yang tercantum di atas adalah repositori CentOS utama:basis, ekstra, dan pembaruan
- dockerrepo adalah repositori pihak ke-3 yang berisi paket terkait kontainer Docker
- mongodb-org-3.0 adalah repositori pihak ketiga yang berisi paket terkait MongoDB.
Ketika Anda melakukan pembaruan yum seperti yang ditunjukkan di bawah, itu akan meningkatkan semua paket yang sudah diinstal pada sistem Anda ke versi terbaru yang tersedia dari semua repositori di atas.
yum update
Jika Anda sudah menginstal mongodb di sistem Anda, dan ketika Anda menjalankan “yum update” di atas, paket mongodb juga akan ditingkatkan ke versi terbaru.
Jika Anda tidak ingin mengupgrade mongodb saat melakukan “yum update”, Anda harus mengecualikannya selama yum update seperti yang dijelaskan di bagian berikut.
Selain itu, jika Anda ingin mengetahui repositori mana yang dimiliki oleh paket tertentu, sehingga Anda dapat mengecualikan repositori tersebut agar tidak ditingkatkan, gunakan perintah yum info seperti yang ditunjukkan di bawah ini.
yum info package-name | grep -i repo
Jika Anda baru mengenal perintah yum:15 Contoh Perintah Linux Yum – Instal, Hapus Instalasi, Perbarui Paket
2. Kecualikan Repositori dari Pembaruan Yum (Metode 1)
Anda dapat menggunakan opsi –disablerepo=repository-name bersama dengan pembaruan yum. Ini tidak akan memutakhirkan paket milik nama repositori yang diberikan.
Pada contoh berikut, yum update akan mengupgrade semua paket yang terinstal kecuali paket terinstal yang dimiliki oleh repositori MongoDB.
yum --disablerepo=mongodb-org-3.0 update
Anda juga dapat menentukan opsi –disablerepo di akhir setelah pembaruan yum. Berikut ini akan mengecualikan paket milik repositori Docker selama pembaruan yum.
yum update --disablerepo=dockerrepo
Anda bisa mendapatkan nama repositori persis yang ingin Anda kecualikan dengan melihat kolom 1 dari output perintah “yum repolist”.
3. Kecualikan Repositori dari Pembaruan Yum menggunakan Parameter yang Diaktifkan (Metode 2)
Alih-alih mengecualikan repositori tertentu dari baris perintah pembaruan yum, Anda dapat secara permanen mengecualikan paket dari pembaruan yum dengan menyetel parameter yang diaktifkan ke 0 di file konfigurasi repositori.
File konfigurasi repositori terletak di bawah direktori /etc/yum.repos.d seperti yang ditunjukkan di bawah ini.
# ls -l /etc/yum.repos.d/ -rw-r--r--. 1 root root 1926 Jan 30 2016 CentOS-Base.repo -rw-r--r-- 1 root root 166 Feb 18 2016 docker.repo -rw-r--r-- 1 root root 142 Feb 5 2016 mongodb-org-3.0.repo .. ..
Untuk mengecualikan repositori mongodb, buka file repositori mongodb, dan ubah nilai enable menjadi 0 seperti yang ditunjukkan di bawah ini.
# vi /etc/yum.repos.d/mongodb-org-3.0.repo [mongodb-org-3.0] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=0 enabled=0
Sekarang, jika Anda melakukan yum repolist, Anda tidak akan melihat repositori MongoDB di output.
# yum repolist repo id repo name status base CentOS-6 - Base 6,575 extras CentOS-6 - Extras 62 updates CentOS-6 - Updates 1,622 dockerrepo Docker Repository 2 repolist: 8,261
Ini juga berarti bahwa meskipun Anda telah menginstal paket-paket terkait mongodb di sistem Anda, ketika Anda melakukan “yum update” berikut, paket-paket mongodb tidak akan diupgrade lagi.
yum update
4. Kecualikan Beberapa Repositori dari Yum update Command Line
Anda juga dapat mengecualikan beberapa repositori selama pembaruan yum dengan menentukan repositori yang dibatasi oleh koma seperti yang ditunjukkan di bawah ini.
Contoh berikut akan mengecualikan repositori MongoDB, Docker, dan EPEL selama pembaruan yum.
yum update --disablerepo=mongodb-org-3.0,dockerrepo,epel
5. Aktifkan Repositori untuk Pembaruan Yum
Jika Anda telah menonaktifkan repositori dengan menyetel “enabled=0” di file konfigurasi repositori, Anda masih dapat menyertakannya selama “yum update” dengan menggunakan opsi –enablerepo seperti yang ditunjukkan di bawah ini.
Contoh berikut akan menyertakan paket dari repositori MongoDB selama “yum update” meskipun repositori ini dinonaktifkan di file repositori di bawah direktori /etc/yum.repos.d/.
yum update --enablerepo=mongodb-org-3.0
6. Gabungkan EnableRepo dan DisableRepo di Yum Update
Anda juga bisa berkreasi dengan menggabungkan opsi enablerepo dan disablerepo.
Misalnya, perintah yum update berikut hanya akan mengupgrade paket dari repositori MongoDB.
yum update --disablerepo=* --enablerepo=mongodb-org-3.0
Di atas:
- –disablerepo=* Ini menunjukkan bahwa semua repositori harus dinonaktifkan terlebih dahulu dan tidak dipertimbangkan untuk pembaruan yum
- –enablerepo=mongo Ini menunjukkan bahwa hanya repositori MongoDB yang harus dipertimbangkan selama pembaruan yum (bila digabungkan dengan opsi penonaktifan di atas)