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.