GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana distribusi yang berbeda memodifikasi lokasi file konfigurasi untuk program?

Itu tergantung pada distribusi dan sumber asli ('upstream').

Dengan sebagian besar paket yang menggunakan autoconf dan automake, dimungkinkan untuk menentukan direktori tempat file konfigurasi akan dicari menggunakan --sysconfdir parameter. Sistem build lain (mis., CMake) memiliki opsi serupa. Jika paket sumber menggunakan salah satu dari sistem build tersebut, maka pembuat paket dapat dengan mudah menentukan parameter yang tepat, dan tidak diperlukan tambalan. Meskipun tidak (mis., karena sumber upstream menggunakan beberapa sistem build buatan sendiri), sering kali masih mungkin untuk menentukan beberapa konfigurasi build untuk memindahkan file konfigurasi ke lokasi tertentu tanpa harus menambal sumber upstream.

Jika tidak demikian, sering kali distribusi memang harus menambahkan tambalan ke sumber untuk membuatnya memindahkan file di tempat yang mereka anggap sebagai lokasi yang 'tepat'. Dalam kebanyakan kasus, pembuat paket distribusi kemudian akan menulis tambalan yang memungkinkan sumber untuk dikonfigurasi dalam arti di atas, sehingga mereka dapat mengirim tambalan ke pengelola upstream, dan tidak harus terus memelihara/memperbaruinya. Ini berlaku untuk lokasi file konfigurasi, tetapi juga untuk hal lain, seperti bin /sbin executable (interpretasi perintah administrator sistem berbeda di antara distribusi), lokasi tempat menulis dokumentasi, dan seterusnya.

Catatan tambahan:jika Anda memelihara beberapa perangkat lunak gratis, silakan memudahkan para pemaket untuk berbicara dengan Anda. Kalau tidak, kami harus mempertahankan tambalan seperti itu tanpa alasan yang bagus...


Mereka memiliki tambalan yang diterapkan ke pohon kode sumber yang mengadaptasi lokasi.

Ada cukup "standar" yang tersedia sehingga setiap distribusi dapat memilih berdasarkan preferensi (pribadi) dan/atau praktik historis. Jarang ada solusi yang hanya memiliki keuntungan. Itu kadang-kadang menjengkelkan/membingungkan, tetapi konsistensi dalam satu distribusi adalah tujuan yang paling penting:ini mengarah pada lebih sedikit kekacauan dan lebih mudah menebak di mana hal-hal mungkin untuk program Y jika Anda sudah tahu di mana hal-hal serupa (misalnya file pengaturan/konfigurasi) untuk program X.

Contoh aplikasi tambalan

Paket python saya ruamel.yaml tersedia di Debian Sid. Dulu bergantung pada ruamel.base , dan pengguna yang menginstal melalui PyPI mungkin masih memiliki versi ruamel.base yang lebih lama dan tidak kompatibel diinstal. Menggunakan setup.py /PyPI bukanlah manajemen paket nyata, jadi Anda tidak dapat menghapus paket yang sebelumnya diinstal melalui dependensi. Saya memecahkan masalah untuk pengguna PyPI dengan membuat versi ruamel.base yang lebih baru yang menghilangkan masalah yang terkait dengan ruamel.base yang lebih lama paket dan membuat ruamel.yaml tergantung pada versi yang lebih baru.

Bagi Sid ini bukan masalah:versi ruamel.base yang lebih lama tidak diinstal (atau dapat dihapus melalui manajemen paket). Oleh karena itu mereka menerapkan tambalan, yang dapat Anda temukan di ruamel.yaml halaman informasi untuk Sid yang menghilangkan ketergantungan ruamel.yaml pada ruamel.base .

Distribusi lain memiliki pengaturan serupa. Misalnya. jika Anda melihat spesifikasi pembuatan file RPM sumber (misalnya untuk RedHat/CentOS/SuSE), Anda akan melihat bahwa Anda menggabungkan tarball asli asli dari sebuah paket dengan satu atau lebih tambalan yang akan diterapkan sebelum mengonfigurasi/menyusun.


Linux
  1. Cara memeriksa file besar di konsol

  2. Bagaimana Cara Menggunakan Gui Untuk Mencari File Di Gnome?

  3. Bagaimana menemukan semua file yang jarang di Linux

  1. Buat file dengan file sumber di direktori berbeda

  2. Bagaimana cara membuat skrip tanggapan ya untuk menginstal program?

  3. Bagaimana cara mengarahkan stderr dan stdout ke file berbeda di baris yang sama dalam skrip?

  1. 4 sesi video untuk sysadmin Linux

  2. Bagaimana Cara Mengubah Ekstensi Banyak File?

  3. Bagaimana cara kerja izin file untuk pengguna root?