Apa kelebihan alat bangunan / lib dari sumbernya?

8

Dengan membangun dari sumber, apakah Anda mendapat manfaat? Apakah kode lebih baik dioptimalkan untuk arsitektur perangkat keras Anda? Apakah secara umum lebih baik dioptimalkan?

Mengapa seseorang memilih untuk membangun dari sumber daripada menggunakan sistem manajemen paket seperti APT / yum? Jika ada semacam keuntungan pengoptimalan, kapan hal itu melebihi manfaat sistem manajemen paket?

Doug T.
sumber
Kedua pilihan Anda tidak saling eksklusif. Anda dapat menyesuaikan sumber paket atau bahkan mengemasnya sendiri.
Faheem Mitha

Jawaban:

11

Bangunan dari sumber menyediakan opsi berikut yang tidak tersedia saat menggunakan versi dari manajer paket biner.

Kompilasi dari sumber memungkinkan Anda untuk:

  • gunakan pengoptimalan khusus prosesor
  • gunakan versi terbaru
  • pelajari cara kompilasi & penautan bekerja (saran dari @mattdm)
  • memperbaiki bug, pekerjaan pengembangan
  • setel opsi waktu kompilasi (mis., sertakan fitur X dalam vim)
Shawn J. Goff
sumber
1
untuk pengguna desktop biasa, apakah keuntungan dalam pengoptimalan spesifik prosesor sepadan dengan biaya kerumitan mengelola ketergantungan secara manual di antara bagian-bagian perangkat lunak? Apakah ini seperti kenaikan 2% atau dua kali lipat dalam kinerja?
Doug T.
1
@Doug Untuk perangkat lunak berat CPU perbedaannya bisa 10,20%, untuk perangkat lunak desktop biasa, perbedaannya adalah nol. Jika Anda ingin mencoba mengompilasi perangkat lunak dari sumber, saya akan merekomendasikan distribusi berbasis sumber (misalnya Gentoo). Merupakan ide yang sangat buruk untuk menginstal perangkat lunak dari sumber (terlepas dari perangkat lunak pihak ketiga yang diinstal ke / opt) dalam distribusi biner.
Šimon Tóth
Saya pikir kinerjanya tidak layak di luar dependensi manajer paket Anda. Namun, ada sistem manajemen paket berbasis sumber yang melacak dependensi dan memungkinkan Anda mengkompilasi dari sumber. Keuntungan yang tercantum di atas yang tidak Anda dapatkan dengan ini hanyalah 'versi terbaru' - manajer paket memilih versi yang akan bekerja dengan sisa distribusi.
Shawn J. Goff
5
Satu hal yang akan saya tambahkan adalah: belajar lebih banyak tentang apa yang terjadi di bawah tenda. Itu bisa sia-sia.
mattdm
7

Saya telah melakukan hal yang tepat ini baru-baru ini.

Saya mengkompilasi openssl-1.0.something from source pada sistem linux Slackware 11.0. Saya ingin menambal hal login-dengan-kata sandi untuk berhenti selama 7 detik pada gagal login, sehingga untuk tarpit yang menebak kata sandi ssh Cina yang mengganggu.

Saya mengkompilasi Apache httpd 2.2.17 pada sistem Slackware 11.0 yang sama karena ia datang dengan Apache 2.0.something, dan saya ingin menggunakan 2.2.x httpd.conf dari sistem lain.

Kalau dipikir-pikir, saya juga mengkompilasi Alpine 2.0 (klien email, pinus tindak lanjut) untuk sistem yang sama. Mengapa Slackware 11.0? Ini berjalan pada mesin sekitar tahun 2003 dengan grafis Intel "Brookdale", dan Slackware yang lebih baru tidak mendukung grafis Intel yang tidak terdokumentasi dengan baik.

Pada mesin yang berbeda, saya menarik dukungan chip nirkabel TI ACX111 dari github dan menyusun driver baru, memungkinkan saya untuk menggunakan kartu nirkabel $ 9.

Saya juga biasanya mengkompilasi ulang kernel Linux untuk membuatnya spesifik untuk mesin yang mereka jalankan.

Jadi dalam kasus saya berbagai alasan penyesuaian, dukungan perangkat keras, dan "hanya karena".

Mengingat apa yang kita ketahui tentang epidemiologi dalam populasi yang seragam (http://www.usenix.org/publications/login/2005-12/openpdfs/geer.pdf) mengapa tidak semua orang mengkompilasi dari sumber pada sistem mereka sendiri, dengan apa pun opsi waktu kompilasi yang mereka pilih? Itu akan membuat populasi yang jauh lebih resisten terhadap virus dan cacing.

Bruce Ediger
sumber
Ada cara-cara sederhana untuk memperlambat para penjahat ssh-hammer ... mencari pembatasan iptables. Solusi itu memiliki penerapan yang lebih luas, dan terlebih lagi tidak membatalkan garansi Anda.
vonbrand
Biasanya linux tidak disertai dengan garansi. Slackware 11 berusia beberapa tahun saat ini. Anda mengemis pertanyaan dengan FUD, khususnya, "takut". "Oh tidak! Jangan lakukan itu! Kamu akan membatalkan garansi!" Berapa kali seseorang mengandalkan garansi? Sangat sedikit. Kita semua ingin orang lain mengambil tanggung jawab (terutama moral, tetapi sebagian besar keuangan) untuk semua tindakan kita, tetapi itu tidak dapat terjadi tanpa banyak konsekuensi buruk bagi individu, dan masyarakat. Saya mendukung saran saya, dan banyak lagi: mengkompilasi sumber itu sendiri, dan mengambil semua tanggung jawab. Jangan salahkan orang lain.
Bruce Ediger
Oh ayolah. Jika itu RHEL atau SLES (atau bahkan LTS Ubuntu dengan kontrak dukungan) tentu ada garansi untuk dibatalkan. Jika itu adalah Debian atau Fedora, laporan bug untuk OpenSSH Anda yang diretas hanya akan ditutup tanpa melihat dua kali.
vonbrand