Apakah lebih baik mengkompilasi dari sumber atau menginstal dari paket deb.?

18

Kadang-kadang, ketika mengunduh perangkat lunak dari Internet, saya menemukan bahwa ada paket deb. Siap untuk Debian / Ubuntu saya dan juga tarball untuk dikompilasi. Pada awalnya saya hanya akan menggunakan paket untuk kemudahan instalasi, dan bahkan tidak berani mencoba untuk mengkompilasi. Bahkan suaranya sedikit membuatku takut. Namun, saat ini, ketika saya memiliki opsi, kadang-kadang saya menemukan diri saya dalam dilema: apakah ada keuntungan yang tidak populer untuk dikompilasi dari sumber dibandingkan dengan paket .deb? Saya berharap untuk mencari tahu di sini, terima kasih.

the_midget_17
sumber

Jawaban:

24

Keuntungan kompilasi dari sumber adalah Anda dapat mengkompilasi paket dengan flag / opsi tertentu yang mungkin hilang / dinonaktifkan dalam paket standar Ubuntu. Selain itu, membuatnya mudah untuk menginstal beberapa versi dari program yang sama. Juga, Anda dapat memilih versi pasti dari sebuah paket yang mungkin sudah dihapus dari atau belum ada di repositori Ubuntu (contoh: Saya memiliki beberapa versi Python 2.4.x di direktori / opt / saya karena saya memerlukannya untuk menjalankan beberapa yang lebih lama perangkat lunak).

Kerugian dari mengkompilasi dari sumber adalah, kecuali jika Anda membangun .deb dan kemudian menginstalnya, prosedur normal "./configure; make; sudo make install" membuat pengelola paket Ubuntu sama sekali tidak mengetahui perubahan yang Anda lakukan, jadi Anda tidak akan mendapatkan pembaruan untuk perangkat lunak yang dikompilasi secara manual; dan mungkin pengelola paket nantinya akan mengganti / menghancurkan paket Anda jika Anda tidak hati-hati menginstalnya di lokasi yang terpisah.

Singkatnya: Selalu pertimbangkan untuk menginstal dari repositori standar Ubuntu terlebih dahulu, selanjutnya pertimbangkan untuk menginstal .deb; hanya kompilasi dari sumber jika Anda tahu persis mengapa Anda perlu melakukan ini.

Sergey
sumber
Saya sudah membaca juga, apa kinerja paket bisa berbeda, ketika dikompilasi, jenis kompatibilitas yang lebih baik dengan kernel saat ini. Tidak membandingkannya secara pribadi.
Fedir RYKHTIK
@ Feded: Saya tidak yakin kernel ada hubungannya dengan ini, ini lebih mirip arsitektur prosesor - misalnya, di masa lalu banyak distribusi berisi paket yang dikompilasi dengan instruksi 80386 yang diatur untuk kompatibilitas maksimum sementara secara manual menyusun program untuk Pentium akan memungkinkannya untuk menggunakan instruksi yang lebih efisien. Ada seluruh distribusi, seperti Gentoo, yang dikompilasi dari sumber di mesin host untuk alasan ini. Perbedaannya, bagaimanapun, biasanya minimal dan hanya dapat diperhatikan dalam aplikasi yang sangat spesifik.
Sergey
1
Perhatikan bahwa menggunakan checkinstall sebagai ganti make install mengurangi banyak kerugian yang disebutkan. Lihat help.ubuntu.com/community/CompilingEasyHowTo
ndemou
1
Maaf untuk nitpicking, @EliahKagan, tetapi, sementara virtualenv mengagumkan, itu lebih untuk mempertahankan beberapa lingkungan Python dengan lib yang berbeda terpasang. Jika Anda menginginkan versi tertentu dari Python, mungkin dikompilasi dengan pengaturan spesifik - Anda masih perlu menginstal biner yang sebenarnya - baik dari .deb atau dikompilasi dari awal.
Sergey
@Sergey Anda benar. (Dan saya tidak melihat apa pun yang Anda katakan sebagai nitpickiing - jika ada saya harus meminta maaf atas komentar saya yang salah dan menyesatkan!) Seperti yang saya pahami, manajer paket condaakan secara otomatis membuat lingkungan virtual dan menginstal berbagai instalasi Python untuk mereka , membuat dan memelihara versi per proyek. Tapi seperti yang Anda katakan, virtualenv tidak akan melakukan ini sendiri.
Eliah Kagan
1

Saya berdebat tentang ini baru kemarin. Saya pikir sangat penting untuk tidak membangun apa pun yang rapuh, seperti diketahui bahwa tidak ada yang mutakhir dan dokumentasi yang baik, terutama ketika Anda bekerja dengan sistem yang rapuh, tidak akan ada waktu untuk memadamkan api dan menulis dokumentasi, dan di mana semuanya kuat, dokumentasi tidak diperlukan sebanyak itu. Jadi Anda seharusnya tidak pernah mengkompilasi dari sumber, menemukan solusi lain, menggunakan perangkat lunak lain, mengubah arsitektur Anda, tetapi jangan menggunakan sesuatu yang akan rusak setelah pembaruan. Dan ya itu tidak ada hubungannya dengan versi kernel, ini tentang arsitektur mesin Anda, dan saat ini Anda hampir tidak bisa mendapatkan perbedaan yang signifikan dengan kompilasi dari kode sumber, saya yakin Anda tidak akan mendapatkan apa pun.

Edik Mkoyan
sumber
0

Tentunya jauh lebih mudah untuk menginstal deb., Meskipun jika Anda bisa, taruhan terbaik adalah menemukannya di repo atau ppa, sehingga Anda dapat diberikan pembaruan.

AFAIK tidak ada manfaat nyata untuk mengompilasinya sendiri kecuali Anda berencana untuk mengubahnya terlebih dahulu. Jika Anda hanya menginginkan perangkat lunak apa adanya, maka instal .deb

Chris Wayne
sumber