Butuh beberapa kali percobaan, tapi sepertinya saya mengerti apa yang Anda tanyakan sekarang.
Ada beberapa kemungkinan alasan distribusi menambal perangkat lunak yang diberikan sebelum dikemas. Saya akan mencoba dan memberikan daftar non-eksklusif; Saya yakin ada kemungkinan alasan lain.
Untuk tujuan diskusi ini, "hulu" mengacu pada kode sumber asli dari pengembang resmi perangkat lunak
-
Tambalan yang belum (atau belum) dimasukkan ke cabang utama mereka karena alasan atau alasan apa pun. Biasanya karena pengelola paket distribusi untuk paket tersebut percaya bahwa tambalan tersebut bermanfaat, atau karena diperlukan untuk menjaga kontinuitas dalam distribusi (Misalkan Anda memiliki server web dan setelah pembaruan rutin ke
php
beberapa fungsi yang Anda andalkan tidak berfungsi lagi, atau tidak dapat membaca file konfigurasi dari gaya lama) -
Distribusi cenderung menyukai pola standar untuk hierarki sistem file mereka di
/etc/
; setiap pengembang perangkat lunak mungkin atau mungkin tidak memiliki ide sendiri untuk apa yang merupakan standar yang tepat. Oleh karena itu, salah satu hal pertama yang cenderung dilakukan oleh pengelola paket distribusi adalah menambal skrip build untuk mengonfigurasi dan mengharapkan file konfigurasi tersebut dalam pola hierarki yang sesuai dengan distribusi lainnya. -
Melanjutkan topik konfigurasi, salah satu "tambalan" pertama cenderung menjadi sekumpulan file konfigurasi default yang akan bekerja dengan distribusi lainnya "di luar kotak", sehingga memungkinkan pengguna akhir untuk segera memulai setelah menginstal daripada harus memilah konfigurasi yang berfungsi secara manual.
Itu hanya di luar kepala saya. Mungkin ada yang lain, tapi saya harap ini memberi Anda beberapa ide.
Dari atas kepalaku, selain jawaban @Shadur:
- Beberapa distribusi tidak menyarankan penggunaan penyematan pustaka atau file yang disediakan oleh paket lain. Misalnya, banyak perangkat lunak berisi JQuery tersemat, tetapi Debian memiliki paket libjs-jquery yang menyediakannya.
- Seringkali upstream menggabungkan patch keamanan dan perubahan yang tidak kompatibel ke belakang, mis. tergantung pada perpustakaan yang lebih baru. Untuk mencegah perubahan ekstensif pada seluruh distribusi hanya untuk mendapatkan, katakanlah, pemeriksaan sertifikat yang lebih tepat, pengelola paket dapat memilih untuk hanya memilih patch keamanan.
- Perangkat lunak upstream mungkin bertentangan dengan perangkat lunak lain, misalnya perangkat lunak tersebut mungkin menyediakan file dengan jalur yang sama, tetapi konten berbeda. Untuk mengatasi konflik ini, tambalan mungkin diperlukan untuk mencari file di tempat lain.
- Upstream seringkali puas dengan instruksi untuk menambahkan sesuatu secara manual ke beberapa file konfigurasi perangkat lunak lain, yang rawan kesalahan saat menginstal dan menghapus paket, sehingga distro mungkin lebih suka menggunakan file fragmen di direktori *.d.
- Beberapa bagian upstream mungkin tidak kompatibel dengan lisensi distro, sehingga pengelola paket mungkin memutuskan untuk menambal bagian yang bermasalah.
- Upstream menggunakan jalur dengan asumsi perangkat lunak tertentu lainnya (mis. Apache), tetapi pengelola ingin jalur tersebut mendukung server web generik.
- Terkadang, developer upstream tidak berkomunikasi lagi dan perangkat lunak bitrots, jadi diperlukan tambalan agar tetap berfungsi.
Ada beberapa alasan:
- Tidak ada perangkat lunak yang sempurna
-
Tidak ada yang namanya perangkat lunak pengemasan universal di Linux:
- cocok
- nyam
- paman
- ...
-
Karena bercabang
- Karena interpretasi yang berbeda dari
AlkitabFHS - Karena ego