Jawaban:
Semua perangkat lunak adalah program , yang juga disebut paket sumber . Jadi semua paket sumber perlu dibangun terlebih dahulu, agar dapat berjalan di sistem Anda.
Paket biner adalah paket yang sudah dibangun dari sumber oleh seseorang dengan fitur dan parameter umum yang disediakan dalam perangkat lunak sehingga sejumlah besar pengguna dapat menginstal dan menggunakannya.
Paket biner mudah dipasang .
Tetapi mungkin tidak memiliki semua opsi dari paket hulu.
Jadi untuk menginstal dari sumber, Anda perlu membuat kode sumber sendiri. Itu berarti Anda harus mengurus dependensi sendiri. Anda juga harus mengetahui semua fitur paket sehingga Anda dapat membangunnya sesuai kebutuhan.
Keuntungan memasang dari sumber:
Singkatnya, menginstal dari sumber memberi Anda opsi penyesuaian berat sekaligus membutuhkan banyak upaya, sementara instalasi dari biner lebih mudah tetapi Anda mungkin tidak dapat menyesuaikan sesuai keinginan.
Pembaruan : Menambahkan argumen yang terkait dengan keamanan di komentar di bawah. Ya memang benar bahwa ketika menginstal dari biner Anda tidak memiliki integritas kode sumber. Tapi kemudian itu tergantung dari mana Anda mendapatkan biner. Ada banyak sumber tepercaya dari mana Anda bisa mendapatkan biner dari setiap proyek baru, satu-satunya negatif adalah waktu . Butuh beberapa saat agar biner pembaruan atau bahkan proyek baru muncul di repositori tepercaya kami.
Dan di atas segalanya, tentang keamanan perangkat lunak, saya ingin menyorot halaman lucu ini di bell-labs yang disediakan oleh Joe dalam komentar di bawah ini.
File sumber berisi kode asli yang ditulis oleh pengembang dalam bahasa apa pun yang ia pilih (C, C ++, Python dll), dan bersifat generik. Ini tidak spesifik untuk distro apa pun dan dalam banyak kasus untuk sistem operasi apa pun.
Paket (RPM atau DEB misalnya) adalah biner yang dapat dieksekusi (atau skrip yang diinterpretasikan dll) yang telah disiapkan untuk distro khusus Anda. Tugas mempersiapkan sumber untuk mengkompilasi (menambahkan tambalan yang diperlukan dll), kompilasi yang sebenarnya, membuat file konfigurasi khusus distro, membuat skrip instalasi pra dan pasca, dll, semuanya dilakukan untuk Anda oleh pengelola paket.
Dengan kata lain, semua pekerjaan keledai telah dilakukan untuk Anda dalam sebuah paket, sedangkan Anda harus melakukannya sendiri jika Anda memilih untuk menginstal dari sumber.
Lebih mudah menggunakan paket di hampir semua kasus seperti:
Namun, terkadang versi paket adalah versi lama atau bahkan lebih buruk, tidak ada versi paket; dalam hal ini satu-satunya pilihan Anda adalah mengkompilasi sendiri. Jika ya, Anda perlu mempertimbangkan yang berikut:
dev
paket - mungkin ada banyak dependensi .Jika Anda bersedia melakukan upaya ekstra, maka kompilasi dari sumber dapat memberi Anda manfaat dari:
Perhatikan bahwa walaupun beberapa paket pre-built distro menyediakan file biner yang siap diinstal dan dijalankan (RPM dan DEB adalah contoh), distro lain menyediakan paket yang hanya mengotomatiskan proses kompilasi.
Gentoo's ebuilds
adalah contohnya - paket ini pada dasarnya adalah instruksi untuk manajer paket yang menjelaskan cara mengkompilasi dan menginstal yang dapat dieksekusi. Ini memiliki banyak keuntungan dari manajer paket tradisional (pembaruan otomatis, mencopot pemasangan dll) sambil tetap memungkinkan pengguna untuk mengoptimalkan proses kompilasi sesuai selera mereka.
Arch Linux memiliki sistem pengemasan di mana paket-paket utama bersifat biner sementara banyak paket tambahan dikompilasi pada sistem menggunakan PKGBUILD
file.
Terlepas dari jawaban lain, saya ingin menambahkan sesuatu:
Jika Anda memutuskan untuk menyusun program sendiri, Anda perlu berpikir bahwa kompilasi bukan sesuatu yang Anda lakukan hanya sekali. Anda mungkin perlu berlangganan milis pengembangan aplikasi yang Anda putuskan untuk dikompilasi dan tetap mendapatkan versi terbaru dan, terutama, pembaruan keamanan.
Setiap kali aplikasi diperbarui, Anda harus mengkompilasi ulang versi baru, jadi ingatlah bahwa Anda harus meluangkan waktu Anda setiap minggu.
Jika Anda tidak mampu membayarnya, lebih baik membiarkan pengelola paket melakukan pekerjaan itu untuk Anda.
Bangunan dari sumber memungkinkan untuk menentukan arsitektur dari mesin Anda. CPU baru memiliki instruksi tambahan yang dimengerti kompiler, memeras sedikit kinerja. Paket pra-bangun biasanya mengandalkan CPU paling kuno yang masih umum digunakan.
Ini sebagian besar penting untuk aplikasi proyek-kritis yang menggunakan CPU sangat banyak, seperti alat pipa bioinformatika, misalnya, atau alat pemodelan geofisika. Perangkat lunak semacam itu berjalan dalam lingkungan yang sangat terkontrol, tidak memiliki fitur kontrol akses sendiri, sehingga jarang ada bug keamanan yang begitu mendesak sehingga harus ditambal dalam hitungan hari atau jam. Hampir tidak pernah perlu dijalankan pada mesin yang berbeda dengan arsitektur yang awalnya tidak dikenal.
Ya, saya tahu, komputer sangat sangat sangat cepat sekarang dan segala upaya atau tindakan yang Anda lakukan sangat sangat sangat mahal, tetapi pada hari ketiga duduk dan menunggu program Anda selesai (ini adalah situasi yang saya bicarakan) kebenaran seperti itu mulai tampak dipertanyakan.
Secara berbeda, aplikasi seperti browser dan sejenisnya harus lebih baik digunakan dari repositori maintainer (dan bukan dari beberapa paket pre-built yang diunduh), karena sangat penting untuk selalu memperbaruinya.
Salah satu cara untuk mendapatkan yang terbaik dari kedua dunia (perangkat lunak terbaru, instal / uninstall sederhana, memasukkan sebagian besar tweak distribusi dan adaptasi, dapat mengoptimalkan untuk persyaratan lokal), sedangkan biaya (harus tetap up to date sendiri, hati-hati terhadap bug dan tambalan menit terakhir, ikuti pengembangan, Anda sendiri sehubungan dengan perbaikan bug dan ketidaksesuaian antar versi) tidak dapat dimitigasi (banyak), adalah dengan membangun paket Anda sendiri, dimulai dengan paket sumber dari distribusi Anda. Ya, ini lebih dari sekadar membangun dan memasang.