Mengapa repositori Ubuntu tidak memiliki versi perangkat lunak terbaru?

145

Mengapa paket dalam repositori resmi Ubuntu lebih lama dari versi (hulu) terbaru dari Debian Sid, PPA, penulis, dll.?

Thomas Ward
sumber
2
Ini sebenarnya terjadi untuk distro apa pun , bukan hanya Ubuntu.
dr01
9
@ dr01 Ada distribusi yang memiliki distribusi bergulir yang selalu mendapat pembaruan - oleh karena itu tidak semua distribusi sesuai dengan pertanyaan ini atau siklus pengembangan Ubuntu
Thomas Ward

Jawaban:

120

Rilis Ubuntu melewati beberapa tahap sebelum benar-benar membuatnya menjadi publik sebagai produk jadi:

  • Beberapa waktu sebelum Ubuntu meluncurkan rilis, ia membekukan paket-paketnya pada titik tertentu.

  • Sebelum rilis, tetapi setelah pembekuan paket, sebagian besar pekerjaan dilakukan untuk memperbaiki semua bug dan masalah yang mungkin ada dalam paket tersebut. Versi paket baru tidak diimpor ke repositori lagi setelah pembekuan paket atau fitur.

  • Setelah rilis terjadi perubahan tambahan pada paket-paket itu hanya terjadi untuk memperbaiki bug dan masalah keamanan. Tidak ada lagi pemutakhiran yang dilakukan pada paket-paket di repositori resmi walaupun versi baru dari paket tersebut dirilis.

Versi baru paket secara konsisten diimpor (dari Debian) untuk rilis Ubuntu berikutnya, sampai pembekuan berikutnya terjadi dan proses yang sama berulang.

Sebagai contoh, Anda dapat melihat jadwal rilis 12,04 .

Anda dapat melihat bahwa meskipun 12,04 dirilis pada bulan April, pada 12 Januari sesuatu yang disebut Debian Import Freeze terjadi.

Ini hanya yang pertama dari banyak tahap pembekuan yang terjadi sebelum rilis aktual dan berarti bahwa pada saat itu impor paket dari pengujian Debian atau berhenti tidak stabil dan mulai bekerja pada mereka untuk menyesuaikan dan memperbaiki masalah dengan mereka.

Tidak ada peningkatan yang dilakukan setelah titik tersebut dalam banyak paket dan versi yang dimiliki paket pada saat itu adalah versi yang ada dan dipertahankan selama masa rilis.

Jadi, meskipun ada versi yang lebih tinggi dari paket yang sama di PPA pengembang atau di repositori Ubuntu + 1, itu hanya akan dimasukkan dalam rilis Ubuntu berikutnya.

Ini dilakukan untuk stabilitas, keamanan dan fungsionalitas. Paket perdarahan baru yang diimpor setiap saat ke repositori utama akan berarti masalah dan lebih banyak masalah yang harus dipecahkan. Pembekuan dalam versi paket membantu untuk memilah dan membuat Ubuntu lebih aman dan lebih stabil untuk pengguna akhir.

Versi baru Ubuntu dirilis setiap 6 bulan, jadi setiap 6 bulan paket baru disiapkan, diuji, disesuaikan, dan dirilis dengan versi baru. Versi paket yang akan datang dapat diinstal di sistem Anda melalui PPA atau hanya dengan mengunduhnya dari situs web, tetapi versi paket dalam repositori resmi tetap sama.

Untuk pemahaman lebih lanjut dan gambaran umum yang menarik tentang apa yang terjadi pada Ubuntu dari 10,04 hingga peluncuran 12,04 lihat di ReleaseSchedule - halaman LTS ke LTS dan Pembaruan Rilis Stable untuk tinjauan lengkap dan penjelasan tentang rilis stabil Ubuntu.

Bruno Pereira
sumber
2
Tampaknya ada pengecualian untuk kebijakan ini, terutama untuk browser web (Firefox, Chromium). Meskipun lebih dari 95% paket dapat mengikuti indikasi di bawah ini, browser web mungkin merupakan aplikasi yang paling banyak digunakan untuk sebagian besar pengguna.
dotpush
Jika Anda menginginkan perangkat lunak terbaru, gunakan repositori PPA Launchpad.
iBug
@ iBug atau gunakan distribusi yang berbeda seperti Arch Linux atau NixOS atau instal Homebrew di sistem Ubuntu Anda.
Boris
16

Dua alasan. Yang pertama cukup jelas: itu membutuhkan manusia untuk menghabiskan waktu memperbarui paket ketika hulu baru keluar. Yang kedua adalah bahwa jika Anda menjalankan rilis stabil yang bertentangan dengan versi pengembangan saat ini, paket-paket sengaja TIDAK diperbarui dengan sengaja untuk menghindari kerusakan. Lihat http://wiki.ubuntu.com/StableReleaseUpdates .

psusi
sumber
3
"itu membutuhkan manusia untuk menghabiskan waktu memperbarui paket ketika hulu baru keluar" ini jelas salah, semuanya dapat dibuat otomatis. Alasan sebenarnya adalah yang kedua yang Anda sebutkan.
gented
15

Paket dibekukan untuk rilis dan selanjutnya tidak diperbarui karena sejumlah alasan. Jika rilis baru dibawa setelah rilis, maka versi baru ...

  • mungkin membawa bug baru, dengan demikian memperbaiki fungsi yang ada pada saat rilis
  • membutuhkan tenaga untuk mengemas, menguji, dan mengunggah
  • membutuhkan pembaruan keamanan sendiri
  • akan membutuhkan terjemahan yang diperbarui untuk UI-nya
  • akan membutuhkan dokumentasi yang diperbarui (dan terjemahan)
  • membuat dukungan teknis lebih menantang
  • mungkin mengganggu pengguna yang telah terbiasa dengan fitur-fitur di versi lama
  • mungkin memerlukan dependensi yang lebih baru yang dapat merusak aplikasi lain jika mereka diubah dalam repositori
  • dapat merusak paket lain yang bergantung pada paket ini
  • dapat merusak skrip pengguna, templat, alat, dll. yang dibuat untuk versi lama

Semua yang mengatakan, harus menyadari bahwa ada kasus di mana Ubuntu tidak melakukan update penuh versi software dalam repositori. Firefox misalnya.

Juga, ada repositori pengguna ubuntu-backports yang dapat memilih paket pembaruan perangkat lunak yang tidak akan menyebabkan masalah seperti yang tercantum di atas. Ini tidak diaktifkan secara default sehingga pengguna harus memilih untuk melakukannya, yang dilakukan untuk menghilangkan kejutan karena perangkat lunak Anda berubah dari Anda. Juga, ini tidak memiliki banyak staf dan jadi saya tidak yakin seberapa sering paket benar-benar mendapatkan pembaruan.

Selanjutnya, tim SRU baru-baru ini memperbarui kebijakan sedikit yang diharapkan akan membuatnya sedikit lebih mudah untuk mendapatkan pembaruan paket khusus-bug di.

Bryce
sumber
11

Biasanya pembaruan dalam versi Ubuntu yang dirilis adalah untuk perbaikan keamanan dan bug, contoh bug tersebut meliputi:

  • Bug yang mungkin, dalam keadaan realistis, secara langsung menyebabkan kerentanan keamanan. Ini dilakukan oleh tim keamanan dan didokumentasikan di SecurityTeam / UpdateProcedures.

  • Bug yang mewakili regresi parah dari rilis Ubuntu sebelumnya. Ini termasuk paket-paket yang sama sekali tidak dapat digunakan, seperti tidak dapat dihapus atau macet saat startup.

  • Bug yang mungkin, dalam keadaan realistis, secara langsung menyebabkan hilangnya data pengguna Bug yang tidak sesuai dengan kategori di atas, tetapi (1) memiliki patch yang jelas aman dan (2) memengaruhi aplikasi daripada paket infrastruktur penting (seperti X.org atau kernel).

  • Untuk rilis Dukungan Jangka Panjang, kami secara rutin ingin mengaktifkan perangkat keras baru. Perubahan tersebut sesuai asalkan kami dapat memastikan untuk tidak mempengaruhi peningkatan pada perangkat keras yang ada. Misalnya, modaliase driver yang baru diperkenalkan tidak boleh tumpang tindih dengan driver yang sebelumnya dikirimkan. Versi baru dari perangkat lunak komersial dalam arsip mitra Canonical.

    -FTBFS (Gagal Membangun Dari Sumber) juga dapat dipertimbangkan. Harap dicatat bahwa pada umumnya proses rilis memastikan bahwa tidak ada binari yang tidak dibangun dari sumber saat ini. Biasanya bug-bug tersebut seharusnya hanya SRUed bersamaan dengan perbaikan bug lainnya.

    -Untuk versi hulu baru dari paket yang menyediakan fitur-fitur baru, tetapi tidak memperbaiki bug kritis, sebaliknya harus diminta backport.

Diambil dari halaman wiki yang luar biasa StableReleaseUpdates .

pl1nk
sumber
11

Saya akan mencoba menjawab pertanyaan Anda berdasarkan pengalaman masa lalu saya dari forum ubuntu dan planet ubuntu.

Saya kira saya hanya ingin tahu bagaimana repositori yang tepat diperbarui, dan oleh siapa.

Repo APT mendapatkan pembaruan dari tim pengemasan di Ubuntu. Tim pengemasan mendapatkan semua paket hulu dari pengembang yang melakukan pengujian pengemasan awal dan hal-hal lainnya. Kemudian tim pengujian melakukan pengujian akhir dengan memberikan sinyal go. Tetapi tim pengemasan dan tim penguji sangat berhati-hati tentang ketergantungan dan pengaruhnya terhadap sistem yang stabil.

Ketika ada jeda, apakah itu karena pengembang belum mendorong rilis terbaru ke server yang relevan?

Jika Anda melihat perubahan di hulu, ada ribuan pengembang yang ingin mendorong paket mereka. Tetapi tidak semua berhasil masuk ke arus utama ini karena berbagai alasan. Asumsikan aplikasi Gedit, versi 2.2 cocok dan berfungsi baik dengan Dbus 2.1 dan Gtk 2.4, dll. Sedangkan versi Gedit 2.4 (sangat baru) membutuhkan Gtk 2.5 dan Dbus2.3 agar berfungsi. Sekarang tim penguji dan pengemasan (tim pelepas juga) tidak menerima ini karena mengubah sistem yang sudah ada yang memiliki dbus dan gtk lama dengan yang baru akan merusak segalanya. Semoga Anda mendapatkan titik neraka ketergantungan.

Apakah ada lebih banyak pekerjaan untuk pengembang dalam mendapatkan rilis ke bentuk repositori dapat digunakan?

Tidak ke saluran upstream. Tetapi untuk saluran rilis ya :).

PS: Mungkin ada sedikit perubahan yang dilakukan pada proses sekarang di kanonik dibandingkan dengan apa yang dijelaskan di atas. Tetapi kurang lebih sama.

Zenwalker
sumber
6

Jawaban yang diterima di tautan fossfreedom yang diposting sebagai komentar sangat baik.

Secara umum, versi paket yang dirilis setelah bagian pertama dari proses pengembangan rilis baru tidak muncul di repositori utama dari rilis itu sehingga versi Ubuntu yang andal dapat diuji secara menyeluruh.

Anda mungkin menemukan beberapa paket dirilis ke repositori backports jika mereka berhasil dimasukkan dalam rilis Ubuntu di masa depan dan jika pengembang percaya itu juga akan bekerja dengan yang sebelumnya. Backports dapat diaktifkan dan dinonaktifkan di Pusat Perangkat Lunak (Edit-> Sumber Perangkat Lunak-> Tab Pembaruan-> Pembaruan Tidak Didukung)

John S Gruber
sumber
1
Seperti yang disebutkan di tempat lain, backport tidak umum dan tidak banyak.
Thomas Ward
-3

Jawabannya tidak penuh.

Ada BEBERAPA paket, selain dapat diinstal dalam versi backport dari Software Center. Di sisi kanan jendela, tepat di sebelah kiri tombol Instal / Ubah, ada kotak pilih di mana Anda dapat mengubah versi.

Exempli gratia: Default conkysekarang 1.8.xdan Anda telah ada di sana 1.9.0 (precise-backports)sebagai backport. Tentu saja, backport harus diaktifkan terlebih dahulu.

Sumber: http://bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727

EDIT: Seperti yang dinyatakan di bawah ini, tidak setiap paket memiliki backport, tetapi Anda mungkin memiliki akses awal kadang-kadang jika Anda cukup beruntung.

Benjamin
sumber
3
Backports tidak tersedia untuk setiap paket ...
papukaija