Menyediakan file konfigurasi khusus untuk paket lain

8

Kami menggunakan Ubuntu di tempat kerja dan saya perlu membuat perubahan konfigurasi yang sama untuk banyak sistem jadi saya mengemasnya. Salah satu perubahan konfigurasi yang perlu saya lakukan adalah mengatur lightdm ke autologin. Bagi saya untuk mengemas perubahan ini, sepertinya saya perlu meng-clobber /etc/lightdm/lightdm.conf yang ada dan menggantinya dengan lightdm.conf yang saya sesuaikan. Ini sepertinya ide yang buruk.

Bagaimana saya bisa melakukan ini dengan cara yang tidak akan menyebabkan kerusakan dan sejalan dengan cara kerja komunitas lainnya?

mikewilliamson
sumber

Jawaban:

9

Ini sering dilakukan dengan membuat paket yang menggunakan dpkg-divertskrip pengelola untuk memindahkan file konfigurasi lama:

  • Di awal Anda, alihkan file tersebut.

    dpkg-divert --add --package $your_package_name --rename \
        --divert /path/to/file.disabled \
        /path/to/file
    
  • Di postrm Anda, alihkan file kembali.

    dpkg-divert --remove --package $your_package_name --rename \
        /path/to/file
    

Lihat: http://www.debian.org/doc/debian-policy/ap-pkg-diversions.html

Salah satu solusi yang membantu abstrak dpkg-divertadalah config-package-devpaket yang dibuat dan dikelola oleh proyek Debathena MIT. Mereka memiliki tutorial menyeluruh .

andrewsomething
sumber
Dari contoh-contoh di halaman yang ditautkan sepertinya --divertopsi harus disediakan di file preinst dan postrm.
nmgeek
Tampaknya ada dokumentasi yang lebih baru di wiki.debian.org/ConfigPackages , yang merekomendasikan untuk menginstal file ke / etc / site / dan menggunakan symlink daripada menginstal langsung ke / etc /. Itu juga merekomendasikan menggunakan postinst daripada preinst dan prerm daripada postrm.
Ulf Adams