Bagaimana cara membangun semua paket saya yang terinstal dari sumber?

26

Saya telah membaca tentang bagaimana distro linux berbasis sumber seperti Gentoo dapat meningkatkan kinerja yang cukup besar jika dibandingkan dengan distro yang dibuat sebelumnya seperti Ubuntu karena distro tersebut diinstal dari sumber dengan optimisasi untuk sistem khusus Anda. Apakah mungkin untuk membangun Ubuntu dari sumber untuk mendapatkan manfaat yang sama?

Ciferkey
sumber
3
Instal Gentoo, bukan Ubuntu, untuk itu. Serius, mengapa menggunakan distro yang benar-benar gagal di manajemen ketergantungan berbasis sumber daripada yang distro?
mathepic
7
Saya ingin tahu melihat benchmark antara sumber dan biner di mana mereka benar-benar menggunakan versi dan konfigurasi stack yang sama. Perbandingannya biasanya adalah rilis Ubuntu (dengan default-nya) vs Gentoo terbaru yang mungkin dengan filesystem yang aneh dan default aplikasi yang aneh. Default Ubuntu sebagian besar cukup waras dan dari situlah sebagian besar kinerjanya berasal dan itulah sebabnya perbandingan paling langsung menempatkan Ubuntu di depan Gentoo.
Oli
1
Salah satu contoh bagus perbandingan yang buruk adalah artikel Majalah Linux ini (pendaftaran gratis diperlukan untuk membaca) di mana mereka menggunakan kernel yang berbeda, driver Nvidia yang berbeda, versi X yang berbeda dan lingkungan desktop yang berbeda. Anda mungkin juga membandingkan dua versi Ubuntu yang berbeda. Mereka akan menunjukkan skala perbedaan yang serupa.
Oli
4
Peningkatan kinerja apa? Throughput jaringan, kecepatan disk, perpindahan proses, perhitungan matematika murni, 3D-Graphics, waktu bootup?
pengguna tidak diketahui
1
Saya hanya akan menyarankan untuk mengkompilasi perangkat lunak, yang membutuhkan kinerja CPU dalam skala besar (video encoding datang ke pikiran) dan banyak digunakan oleh pengguna dan manfaat dari optimasi CPU seperti misalnya FMA3 atau AVX2.
keiki

Jawaban:

42

Is is possible to build Ubuntu from source to get the same kind of benefit?

Saya tidak yakin tentang manfaatnya jika Anda memiliki komponen perangkat keras yang cukup baru, tetapi untuk bagian "Ubuntu dari sumber", jawabannya adalah YA, Anda tidak hanya dapat membangun aplikasi favorit dari sumber, tetapi seluruh sistem operasi.

Begini caranya:

Anda perlu menginstal apt-build . Ini adalah alat comandline seperti apt-get, tetapi alih-alih mengunduh dan menginstal paket biner, apt-build mengunduh kode sumber paket, mengkompilasinya lalu menginstalnya ke sistem Anda.

Setelah Anda menginstalnya dengan

sudo apt-get install apt-build

Anda akan dimintai tingkat pengoptimalan (medium ok), apakah Anda ingin membuat repo apt-build untuk APT (Ya) dan pertanyaan tentang arsitektur prosesor (intel i7 saya dianggap core2). Tentu saja semua opsi dapat dikonfigurasi ulang dengan cara ini:

dpkg-reconfigure apt-build

Perintah di atas menawarkan dua opsi tambahan untuk kompiler gcc dan make builder. Deskripsi mereka dapat ditemukan di manual sistem: man gcc dan man make.

Untuk opsi perintah manual dan tersedia, periksa

man apt-build

Tetapi yang paling bermanfaat adalah:

  • pembaruan apt-build - memperbarui daftar repo, (seperti pembaruan apt-get)
  • apt-build upgrade - memperbarui sistem operasi, (seperti upgrade apt-get)
  • apt-build install program - menginstal aplikasi, (seperti apt-get install)
  • apt-build world - sesuatu untuk pengguna hard-core, ia mengkompilasi ulang seluruh sistem!

Sebagai contoh:

Katakanlah Anda ingin mengkompilasi / menginstal Gedit. Alih-alih memasang apt-get, lakukan saja

sudo apt-build install gedit

Apt-build memanfaatkan entri deb-src yang terdapat dalam file /etc/apt/sources.list sehingga proses kompilasi dan instalasi sepenuhnya otomatis (mirip dengan emerge yang ditemukan di Gentoo). Apt-build mengunduh sumber aplikasi utama dan dependensinya, mengkompilasinya, membuat paket deb, dan akhirnya menginstal paket tersebut.

Beberapa catatan tentang dunia apt-build.

Menurut pendapat saya jangan mencobanya, kecuali jika Anda memiliki 24 jam atau lebih tersedia!

Jika demikian, hal pertama yang harus Anda lakukan, hapus / nonaktifkan / copot aplikasi pihak ketiga mana pun (lebih baik melakukannya di instalasi baru Ubuntu) dan kemudian lakukan:

sudo su
dpkg --get-selections | awk '{if ($2 == "install") print $1}'> /etc/apt/apt-build.list
exit

Perintah di atas akan menyalin daftar lengkap paket sistem Anda ke apt-build.list sehingga mereka dapat dikompilasi dari sumber. Buka file itu

sudo gedit /etc/apt/apt-build.list

dan hapus entri GCC / G ++

Maka Anda dapat melakukan:

sudo apt-build world

Saya sarankan untuk menambahkan dua opsi - --ya dan - memaksa-ya - untuk membuat proses pembangunan kembali sepenuhnya otomatis.

Salih Emin
sumber
10
+1 untuk jawaban konkret, dibandingkan dengan "mengapa membangun?" jawaban. Saya lebih suka membaca juga pendapat yang lebih luas (bahkan jika subjektif) tentang manfaat yang Anda dapat (atau tidak bisa) dapatkan dengan menggunakan apt-build.
enzotib
1
Saat ini +17 untuk jawaban ini. Tetapi adakah yang berhasil melakukannya?
keiki
1
@ otakun85 Saya telah menggunakan apt-build untuk mengkompilasi beberapa paket dengan sukses di Ubuntu (tidak ingat rilis mana, salah satu dari 12.04 | 12.10 | 13.04), saya memang mencoba apt-build world yang berantakan. The man page untuk apt-build memiliki ini di akhir BUGS Many., sehingga diharapkan masalah.
Phizes
Saya menemukan bahwa alih-alih menggunakannya apt-build worldlebih baik mengunduh buku "Linux from Scratch", dan lakukan apt-builduntuk setiap paket yang terdaftar di dalamnya. Ini menentukan urutan yang benar dll. Misalnya saya tidak yakin, jika apt-build worldtahu itu harus mengkompilasi ulang binutils, kemudian gcc, kemudian binutilslagi, gcclagi, kemudian bahasa pemrograman, gzipdll. Tampaknya hanya mengkompilasi semuanya secara alfabet.
Serhyi Vynohradov
@SerhyiVynohradov: Tidak masalah. LFS melakukan itu untuk menghindari meninggalkan dependensi pada pustaka di sistem host, tetapi di sini ia hanya mengganti semuanya di tempat dengan versi yang dikompilasi; mereka masih berada di lokasi yang sama, memiliki ABI yang sama, dll.
Nick Matteo
3

Anda bisa memulai flamewar dan debat besar tentang topik semacam ini, tetapi mari kita lihat kehidupan nyata.

Kecepatan OS Anda sangat tergantung pada perangkat keras apa yang Anda jalankan dan itu adalah faktor utama.

Saya sering mengubah distro sementara sebagian besar waktu tetap dengan Arch, tetapi apakah Arch jauh lebih cepat daripada Ubuntu? Tidak.

Gnome dengan compiz di Ubuntu 10.10 menggunakan sekitar 300ram, pada Arch 200ram, saya punya 4gb ram, saya tidak merasakan perbedaan, tetapi jika Anda membandingkan Ubuntu dengan gnome dengan Arch dengan mengagumkan, akan ada peningkatan besar dalam daya tanggap dan sumber daya penggunaan (300ram vs 50ram), tetapi ini hanya masalah jika Anda memilih distro untuk netbook.

Jadi jika Anda memiliki desktop yang cepat dan tidak ingin menghabiskan waktu untuk mengutak-atik sistem Anda, gunakan saja Ubuntu, tetapi jika Anda memiliki netbook daripada mempertimbangkan untuk menggunakan WM ringan di Arch :)

Marcus Maxwell
sumber
Nah, pada titik tertentu Anda mungkin sampai pada situasi di mana Anda memiliki perangkat keras terbaru, tetapi Anda masih perlu melakukan operasi selama satu jam. Dan alih-alih menyiapkan banyak server untuk mendistribusikan beban, Anda tidak keberatan menghabiskan waktu untuk mengutak-atik, untuk mendapatkan tambahan 20% peningkatan. Saya tidak pernah menggunakan Arch, tetapi saya mencoba Gentoo. Dan saya melihat bahwa sering kali tidak ada yang namanya "distro yang lebih cepat". Sebaliknya ada "distro dengan lebih sedikit perangkat lunak". Anda mungkin memiliki sistem tulang kosong yang cepat, tetapi tidak aman. Dan ketika Anda menginstal paket lain, ia menjadi kecepatan yang sama dengan Ubuntu + apt-build.
Serhyi Vynohradov
0

Apt-build berguna untuk lebih dari sekadar kinerja, Anda dapat membuat gambar dan repositori distribusi khusus untuk perangkat keras tertentu yang siap diinstal secara massal untuk bisnis Anda. Maksud saya, distribusi biner yang dioptimalkan jika Anda tahu semua perangkat kerasnya akan sama. Dengan cara ini, hanya satu komputer yang melakukan semua pekerjaan kompilasi, dan sisanya baru saja ditingkatkan menggunakan ISO remaster. Ini tidak sepenuhnya hanya untuk ringan atau penyandian. Dan ISO Installer kustom memungkinkan Anda untuk menginstal ulang tanpa mengkompilasi ulang jika karena alasan tertentu sistem Anda tidak dapat dipulihkan setelah bencana.

T ganda
sumber