Bagaimana cara menjaga sistem Debian saya dengan paket terbaru?

9

Sebagian besar "Perangkat Lunak" yang saya instal di server saya harus merupakan rilis terbaru (Java, Tomcat, MySQL-Cluster). Jadi saya tidak pernah beruntung, bahwa ada paket Debian pra-dibangun (dalam distribusi) yang tersedia. Oleh karena itu semua perangkat lunak diunduh dari halaman web proyek dan dibangun dari sumber.

Sekarang pertanyaan saya adalah, apa cara yang benar untuk menginstalnya di sistem Debian saya?

Masalah utama saya adalah, ketika menginstalnya langsung dari sumbernya, mereka tidak termasuk dalam manajemen paket (dengan bakat). Checkinstall tampaknya tidak benar-benar disarankan untuk digunakan dan equiv juga memiliki kekurangan. Apakah satu-satunya cara yang benar untuk menangani ini dengan membuat paket saya sendiri dengan dh_make dan dpkg-buildpackage?

Apa yang Anda lakukan jika Anda selalu membutuhkan versi terbaru?

Braiam
sumber

Jawaban:

10

Menginginkan lebih banyak paket terbaru adalah masalah umum pada OS apa pun. Siklus rilis Debian rata-rata 2 tahun dalam beberapa tahun terakhir, jadi menjelang akhir siklus ini, mungkin ini adalah masalah yang lebih mendesak. Salah satu cara untuk mengurangi ini adalah dengan beralih ke pengujian menjelang akhir siklus rilis stabil, ketika versi berikutnya hampir stabil. Tidak jelas dari pertanyaan apakah itu berbicara tentang stabil pada lebih umum tentang pengujian dan / atau tidak stabil juga. Apapun, memiliki versi terbaru dapat menjadi masalah meskipun jika berjalan tidak stabil, karena versi terbaru mungkin belum dikemas. Pengembang / pembuat paket Debian adalah sukarelawan, sehingga mereka mungkin bosan, atau sibuk dengan hal-hal lain, akibatnya paket itu merana.

Untuk kesederhanaan dan konkret, saya berasumsi dalam apa yang berikut bahwa rencananya adalah untuk backport paket ke stabil, tetapi berlaku lebih umum. Jadi, inilah yang saya lakukan jika saya menginginkan versi perangkat lunak yang lebih baru yang tidak ada dalam kondisi stabil, dalam urutan perkiraan.

  1. Cari paket di Debian Backports . Terkadang Anda dapat menemukan paket yang cukup baru untuk memenuhi tujuan Anda. Namun, sering terjadi bahwa paket-paket ini sudah usang dibandingkan dengan versi di tidak stabil atau eksperimental atau hulu.

  2. Cobalah untuk menginstal paket langsung dari pengujian, tidak stabil, atau eksperimental. Jika stabil tidak jauh berbeda dari versi apa pun yang Anda coba instal, ini mungkin berhasil. Anda akan tahu pendekatan ini buruk jika sistem mulai mencoba menginstal atau meningkatkan paket dasar dari versi yang lebih baru. Misalkan Anda mencoba menginstal dari tidak stabil, maka

    apt-get install packagename/unstable
    

    adalah hal pertama yang harus dicoba. Dengan versi apt in stable, ini akan sering gagal, karena memerlukan paket lain dari tidak stabil, dan mantra ini hanya menaikkan preferensi packagenamecukup tinggi untuk diinstal di tidak stabil. Jika Anda tidak mengerti apa artinya ini, pergilah dan baca man apt_preferences. Lanjutkan menambahkan dependensi dari tidak stabil, memastikan bahwa ia tidak mencoba meningkatkan paket-paket dasar. Misalnya, jika mulai mencoba meningkatkan versi libc6 atau X atau KDE atau Gnome, batalkan segera. Biasanya baik-baik saja jika mencoba untuk mengupgrade paket lain dari paket sumber yang sama, karena ini biasanya digabungkan secara bersamaan. Untuk melihat paket sumber apa yang menjadi dasar paket biner, lakukan

    apt-cache showsrc packagename
    

    Karena banyak hal tergantung pada pustaka GNU C (libc6) ini digunakan untuk menjadi masalah. Baru-baru ini, API tampaknya telah stabil, sehingga sekarang lebih mungkin untuk lolos tanpa harus memutakhirkannya. Jika sebuah paket memenuhi dependensi runtime-nya pada stable, tetapi masih tidak berfungsi dengan benar, ajukan bug. Jika pembuat paket memberi tahu Anda itu bukan bug, mereka salah. :-)

  3. Backport paket Anda sendiri dari pengujian, tidak stabil atau eksperimental.

    Seperti disebutkan di atas, backports adalah salah satu opsi, tetapi seringkali paket-paket ini sudah ketinggalan zaman dibandingkan dengan versi yang tidak stabil atau eksperimental atau hulu.

    Hal ini sering dapat memerlukan ketergantungan tipe build loop berulang. Anda harus terlebih dahulu mendapatkan dependensi build

    apt-get build-dep packagename    
    

    Jika ini gagal karena salah satu dependensi tidak cukup baru, Anda harus backport dependensi itu terlebih dahulu. Ini bisa spriral di luar kendali. Saya biasanya menyerah jika saya harus berurusan dengan lebih dari 2 level rekursi. Namun perlu dicatat, bahwa dependensi nyata tidak harus seketat yang dinyatakan yaitu. versi yang lebih lama dapat berfungsi. Pemaket sering tidak mencoba menemukan versi tertua dari dependensi build (atau, memang, runtime) yang akan berfungsi.

  4. Periksa ketersediaan paket dari hulu yang sesuai. Idealnya ini cocok dengan versi distribusi Anda, tetapi Anda mungkin juga dapat membangunnya kembali jika perlu.

  5. Buat paket untuk versi perangkat lunak lebih baru daripada paket terbaru dalam pengujian / tidak stabil / eksperimental. Ini bisa jadi relatif menantang, tetapi kadang-kadang masih bisa dilakukan. Hal pertama yang perlu diperhatikan adalah bahwa jika Anda mencoba untuk mengemas versi yang lebih baru dari sebuah paket yang sudah ada di Debian, Anda sudah mulai dengan keuntungan besar, yaitu Anda memiliki kemasan yang sudah ada untuk digunakan. Kerjakan saja

    apt-get source packagename
    

    dan apt-getakan mengunduh paket sumber yang sesuai, termasuk subdirektori debian tempat pengemasannya. Perhatikan lebih lanjut bahwa akhir-akhir ini, kemasan ini sering hidup di dalam beberapa repositori kontrol verson (git tampaknya populer di Debian) dan stable apt (saat ini 0.8.10.3 ) membantu memberi tahu Anda di mana ini saat Anda memohon apt-get source. Anda harus melihat ini, karena pembuat paket mungkin memiliki versi kemasan yang lebih baru daripada yang sesuai dengan paket yang dirilis. Misalnya.

    $ apt-get source mercurial
      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
      svn://svn.debian.org/python-apps/packages/mercurial/trunk
    

    Atau, Anda bisa menggunakan

    apt-cache showsrc mercurial | grep Vcs
    

    untuk daftar repositori.

    Jika paket sudah ketinggalan zaman, Anda mungkin harus melakukan modifikasi pada
    paket tersebut, menyegarkan kembali tambalan yang diterapkan tetapi biasanya masih merupakan
    titik awal yang baik . Debian tampaknya sedang dalam proses standardisasi manajemen paket pada
    quilt per format dpkg-source 3.0 (quilt) , sehingga membantu dengan patch refresh.

    Saya akan menyimpulkan dengan contoh kehidupan nyata tentang bagaimana saya backported yang paket Debian dari PGF . Versi paket terakhir dari pgf adalah 2.00 pada 2008, dan sejak itu 2.10 telah dirilis. Lihat pembahasannya di Harap perbarui ke versi stabil terbaru pgf (2.10) , dan bug tindak lanjut saya dengan patch, pgf: patch terhadap 2.0 paket Debian . Ternyata, kemasan pgf Debian sangat sederhana, dan saya hanya perlu mengubah satu baris dalam kemasan 2,10 untuk membuatnya berfungsi. Saya akhirnya memadamkan semua keluhan lintian juga, tapi itu sepenuhnya opsional.

Faheem Mitha
sumber
Kalimat terakhir dari paragraf pertama bisa menyesatkan. Harap jelaskan bahwa Anda hanya mengalami masalah kadang-kadang . Cara Anda membuat sepertinya DD umumnya seperti itu.
tshepang
@Tepang: Poin bagus. Apakah baik-baik saja sekarang?
Faheem Mitha
Ya, jauh lebih baik.
tshepang
5

Anda tentu dapat membangun paket Anda sendiri, dan itu akan berhasil. Namun saya akan merekomendasikan menggunakan backports terlebih dahulu jika apa yang Anda inginkan tersedia di sana.

Backports dikelola oleh Debian dan Anda mendapatkan pembaruan keamanan untuk mereka.

bahamat
sumber
3

Membangun paket Anda sendiri adalah cara untuk pergi (IMHO). Bergantung pada usia versi paket Debian dan apa yang telah berubah, ini bisa semudah mengganti nama file tarball sumber dalam deskripsi paket dan dalam kasus terburuk Anda masih dapat menggunakannya sebagai templat untuk versi Anda sendiri.

Sven
sumber
1

Apa yang Anda lakukan jika Anda selalu membutuhkan versi terbaru?

  1. Seperti yang telah disebutkan , gunakan backport.

  2. Hanya sebagian kecil paket Debian yang di-backport, jadi saya sarankan Anda menggunakan Pengujian Debian . Ini menawarkan keseimbangan yang bagus antara stabilitas dan kemutakhiran, dan dalam arti tertentu, seperti distro yang bergulir.

  3. Jika Anda sedikit lebih berani, gunakan Debian Unstable . Ini diklaim cukup stabil. Beberapa bahkan mengklaim lebih stabil daripada rilis "stabil" distro lain. Bagaimanapun, Unstable adalah tempat versi paket baru biasanya mendarat. Mereka biasanya duduk di sana selama sekitar 10 hari, untuk memungkinkan pengujian, sebelum bermigrasi ke Pengujian.

  4. Bahkan menggunakan keduanya, Anda mungkin masih menemukan diri Anda tidak memiliki versi terbaru. Dalam hal ini lihat Debian Experimental . Ini biasanya digunakan ketika paket baru terlalu mengganggu untuk arsip normal (Tidak Stabil dan Pengujian).

  5. Jika Eksperimental masih belum memiliki versi perangkat lunak yang cukup baru, lihat PPA Ubuntu . Saya telah melihat versi perangkat lunak di sana lebih baru daripada yang tidak dimiliki semua arsip di atas. Gunakan dengan hati-hati, karena Ubuntu tidak 100% kompatibel dengan Debian (tetapi untuk kebanyakan kasus, seharusnya tidak ada masalah).

  6. Jika hal di atas gagal, saya kira hanya membangun paket Anda sendiri, seperti yang disebutkan .

tepang
sumber
Orang-orang mengatakan ketidakstabilan Debian lebih stabil daripada distro distro lainnya bercanda. Perubahan tidak stabil setiap hari, stabil adalah repositori tetap. Tidak stabil tidak berarti itu akan macet, tetapi itu berarti pengembang membuat banyak perubahan pada paket. Stabil berarti dirilis, dan hanya perbaikan keamanan yang akan ditambahkan. Saya tidak pernah mengalami crash aneh yang berjalan tidak stabil. Saya memang melihat paket rusak dan masalah ketergantungan setelah memutakhirkan, berhati-hatilah ;-) Bagaimana semua itu dibandingkan dengan rilis "stabil" distro lainnya adalah di luar jangkauan saya. Tidak ada "lebih stabil" dalam konteks ini. Itu berubah atau tidak.
Arjan Drieman
@ArjanDrieman: sebenarnya orang-orang itu tidak bercanda, dan dalam konteks itu mereka menyebutnya lebih tahan kecelakaan.
tshepang
Mereka masih bercanda. Saya benar-benar melihat orang bercanda tentang hal itu. Sebuah api distribusi mikro ;-) Saya telah menggunakan beberapa distro dari waktu ke waktu, dan tidak pernah memiliki crash aneh menjalankan yang lain baik, Orang-orang yang mengatakan bahwa serius tidak dapat mendukungnya dengan penelitian atau statistik. Itu mungkin ketidaktahuan, kesombongan, prasangka, apa pun ... tetapi apakah itu lebih baik daripada lelucon? Dapatkah Anda memberi tahu saya siapa "Beberapa" misterius ini? Jadi saya dapat meminta mereka untuk penelitian? "Beberapa bahkan melangkah lebih jauh" ... itu adalah kata-kata musang. Apa yang Anda inginkan dalam jawaban, fakta, atau opini populer dan klaim yang ambigu?
Arjan Drieman
1
@Arjan Drieman: Saya sebenarnya setuju tidak stabil, bisakah 'somtimes' memenuhi namanya. Anda berdagang stabilitas untuk semakin dekat ke tepi, siapa pun yang mengklaim itu bukan kasus yang jujur ​​di terbaik. Secara keseluruhan itu sangat stabil, tetapi stabilitas bukanlah prioritas tertinggi untuk tidak stabil. Saya juga cenderung setuju dengan Anda, dalam hal wordage 'licin'. Ini hampir merupakan mekanisme pertahanan di sini, karena pernyataan absolut / langsung langsung diserang.
JM Becker