Jawaban:
Yum mendukung plugin, jadi sangat mungkin untuk menulis sebuah plugin yang membaca manifes boneka yang di-cache dan memperingatkan ketika suatu transaksi akan menimpa file yang dikendalikan oleh boneka. Saya tidak mengetahui plugin yang ada yang melakukan ini, tapi saya mungkin akan menulis hanya menulis sendiri karena saya suka ide itu.
Plugin memeriksa semua paket yang baru diinstal / ditingkatkan / diturunkan versinya, memberi tahu Anda file yang dikelola boneka yang akan ditimpa dan meminta konfirmasi untuk melakukannya.
[root@camel ~]# yum update pam
Loaded plugins: puppet, security
Skipping security plugin, no data
Setting up Update Process
Resolving Dependencies
Skipping security plugin, no data
--> Running transaction check
---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated
---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================
Updating:
pam i386 0.99.6.2-12.el5 base 983 k
pam x86_64 0.99.6.2-12.el5 base 982 k
Transaction Summary
===============================================================================================================================================================
Install 0 Package(s)
Upgrade 2 Package(s)
Total download size: 1.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): pam-0.99.6.2-12.el5.x86_64.rpm | 982 kB 00:00
(2/2): pam-0.99.6.2-12.el5.i386.rpm | 983 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 8.7 MB/s | 1.9 MB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf
Is this ok [y/N]: n
Aborting
[root@camel ~]# yum update pam
Loaded plugins: puppet, security
Skipping security plugin, no data
Setting up Update Process
Resolving Dependencies
Skipping security plugin, no data
--> Running transaction check
---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated
---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================
Updating:
pam i386 0.99.6.2-12.el5 base 983 k
pam x86_64 0.99.6.2-12.el5 base 982 k
Transaction Summary
===============================================================================================================================================================
Install 0 Package(s)
Upgrade 2 Package(s)
Total size: 1.9 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf
Is this ok [y/N]: y
Updating : pam 1/4
Updating : pam 2/4
Cleanup : pam 3/4
Cleanup : pam 4/4
Updated:
pam.i386 0:0.99.6.2-12.el5 pam.x86_64 0:0.99.6.2-12.el5
Complete!
Plugin itu sendiri dapat ditemukan di repositori hack github saya .
Pembaruan 8 November 2013:
Seperti yang diisyaratkan dalam komentar, saya sekarang telah mengubah ini menjadi proyek yang lebih besar untuk meningkatkan interaksi antara Yum dan Wayang. Anda dapat menemukannya di GitHub .
Ya, itu mungkin tapi itu tidak berhubungan dengan Wayang itu sendiri.
Sistem Linux memiliki dukungan untuk mekanisme inotify yang "dapat digunakan untuk memantau dan bertindak atas kejadian sistem file". Selain itu inotify-tools
ada juga incron
program yang bekerja mirip dengan cron tetapi bereaksi terhadap peristiwa sistem file. Saya pikir Anda dapat menggunakannya untuk diberi tahu tentang mengubah file apa pun.
(BTW, jika Anda ingin menonton /etc/sysctl.conf
file saya sarankan untuk memeriksa sebelum melakukannya - apakah Linux Anda memiliki dukungan untuk /etc/sysctl.d
direktori?)
Saya tidak tahu cara menerapkan pemberitahuan seperti itu. Dimungkinkan untuk mengatur sesuatu dengan mengatur transaksi yum, menentukan daftar file konfigurasi yang mungkin terpengaruh, dan kemudian memeriksa untuk melihat apakah boneka mengelola salah satunya.
Namun, secara umum itu bukan praktik yang baik untuk mengelola file yang akan diperbarui oleh suatu paket. Dalam hal file konfigurasi (gunakan nama paket rpm -qlc untuk melihat apakah mereka ditandai demikian), jika paket berisi versi baru, ia disimpan sebagai nama file.rpmnew. Anda kemudian dibiarkan ke perangkat Anda sendiri untuk menggabungkan setiap perubahan yang diperlukan.
Kami telah mengalami masalah di mana file konfigurasi telah dihapus oleh boneka dan kemudian digantikan oleh yum ketika paket itu diperbarui. Ini menyebabkan masalah sampai boneka berikutnya menjalankan menghapus file. Solusi kami untuk situasi itu adalah mengatur konten file "dihapus" ke komentar sehingga pada dasarnya kosong. Cara lain untuk menanganinya adalah dengan mencoba memastikan bahwa Paket ['a'] -> File ['/ etc / a'] sehingga hanya satu boneka yang diperlukan.