5 Trik Mempercepat Waktu Kompilasi di Gentoo Linux

Gentoo adalah distribusi Linux yang kuat dan fleksibel. Dengan package manager yang inovatif – Portage – memungkinkan Anda untuk memahat sistem komputer Anda hingga ke bagian yang paling dasar.

Ini karena Gentoo, secara default, mengharuskan Anda untuk GB

Meskipun ini mungkin tampak kuno, melakukannya dengan cara ini memiliki sejumlah manfaat:

  • Mendistribusikan hanya resep dari sebuah paket membutuhkan lebih sedikit data daripada mendistribusikan salinan biner. Ini, pada gilirannya, mengurangi jumlah sumber daya yang diperlukan untuk menghosting mirror dari sebuah repositori.
  • Mengompilasi paket dari kode sumbernya menghadapkan Anda pada program yang membuat sistem operasi Anda berfungsi. Ini bisa sangat berguna jika Anda ingin mempelajari cara kerja komputer Anda dan cara memperluas fungsinya.
  • Terakhir, kompilasi paket dari kode sumbernya memberi Anda kemampuan untuk menyesuaikan dan mengubah perilaku program Anda. Anda dapat dengan mudah menyertakan atau menghapus fitur yang tidak Anda perlukan.

Meskipun demikian, pendekatan ini juga memiliki sejumlah kelemahan. Misalnya, paket seperti Firefox dan Chromium membutuhkan waktu berjam-jam untuk dikompilasi dan dipasang. Ini karena ini adalah program dengan jutaan baris kode dan ratusan ketergantungan.

Mengetahui hal itu, artikel ini bertujuan untuk memperkenalkan lima trik yang dapat Anda gunakan untuk meningkatkan waktu kompilasi saat menggunakan Gentoo.

1. Optimalkan MAKEOPTS

Salah satu cara termudah untuk mempercepat waktu kompilasi di Gentoo adalah dengan mengoptimalkan make.conf Anda. Ini adalah file konfigurasi utama yang digunakan Portage untuk menentukan pengaturan kompilasi untuk mesin anda. Dengan demikian, ini berisi berbagai variabel yang menentukan arsitektur dan pengaturan sistem Anda.

Anda dapat menemukan file make.conf di “/etc/portag”. Anda juga dapat mencetak konten file dengan perintah berikut:

kucing /etc/portage/make.conf _ _ _ _ _

Satu-satunya hal yang perlu Anda ubah untuk mengoptimalkan Portage adalah MAKEOPTS. Ini adalah pengaturan yang berkaitan dengan tanda pengoptimalan untuk sistem Anda. Pertimbangkan contoh berikut:

[ … ]   MAKEOPTS = “-j1 -l1″   [ … ]

Dalam hal ini, ada dua flag yang dapat Anda gunakan dengan MAKEOPTS:

  • Bendera -j menunjukkan jumlah pekerjaan kompilasi yang ingin Anda alokasikan ke CPU Anda. Aturan praktis yang baik saat menyetel nilai ini adalah memberikannya setengah dari jumlah inti GB Anda

Dari sana, kompiler Anda kemudian dapat menggunakan file yang disimpan ini alih-alih mengkompilasi ulang. Ini bisa sangat berguna jika Anda terus membangun kembali program atau mengkompilasi paket besar.

Anda dapat menginstal CCache melalui Portage:

sudo emerge –ask dev-util / ccache

Hal selanjutnya yang harus dilakukan adalah mengatur pengaturan CCache. Untuk melakukannya, Anda perlu membuat file ccache.conf:

sudo mkdir / var / cache / ccache / && menyentuh / var / cache / ccache / ccache.conf

Dari sini, Anda kemudian dapat menggunakan pengaturan konfigurasi default CCache untuk memulai:

max_size = 20.0G umask = 002 hash_dir = false compiler_check = % compiler % -v cache_dir_levels = 3

Hal terakhir yang perlu Anda lakukan adalah memberi tahu Portage untuk menggunakan CCache saat mengkompilasi paket. Untuk melakukannya, Anda dapat memasukkan baris berikut ke make.conf Anda:

FITUR = “ccache” CCACHE_DIR = “/var/cache/ccache”

3. Coba DistCC

Mirip dengan CCache, GB

Cara kerjanya adalah DistCC dibagi menjadi dua program: distccd dan distcc.

  • distccd adalah utilitas yang berjalan di server komputasi. Ini adalah program sederhana yang mendengarkan permintaan DistCC yang masuk dari klien dan menerima tugas dari mereka. Setelah selesai dikompilasi, objek yang dikompilasi kemudian dikirim kembali ke klien untuk dikemas.
  • distcc , di sisi lain, adalah program klien yang terhubung ke distccd. Ini adalah program yang bekerja dengan Portage untuk menjadwalkan dan mendistribusikan tugas-tugas kompilasi dalam sebuah jaringan.

Membuat cluster DistCC kecil relatif sederhana. Untuk melakukannya, Anda perlu menginstal program distcc di server dan PC klien Anda:

sudo emerge –ask sys-devel / distcc

Mengkonfigurasi Server DistCC

Selanjutnya, Anda perlu mengonfigurasi server Anda untuk menerima koneksi DistCC. Anda dapat melakukannya dengan membuat file konfigurasi distcc di “/etc/conf.d/”:

sudo menyentuh / etc / conf.d / distccd

Setelah selesai, Anda dapat memasukkan baris kode berikut di file distccd Anda:

DISTCCD_OPTS = “–port 3632 –pemberitahuan tingkat log –file-log /var/log/distccd.log -N 10 –izinkan 192.168.254.101”

  • Bendera port menunjukkan port dimana distccd akan mendengarkan koneksi masuk. 3632 adalah port default untuk DistCC.
  • Level log dan file log memberi tahu DistCC untuk memelihara file log untuk tugas-tugas yang diambilnya.
  • Bendera N menunjukkan “kebaikan” dari distccd. Ini adalah variabel yang memberi tahu DistCC berapa banyak yang dapat digunakan CPU server untuk tugas kompilasi. Ini adalah nilai yang berkisar dari 0 hingga 20 di mana 0 adalah yang paling tidak baik dan 20 adalah yang paling baik.
  • Terakhir, flag allow memberi tahu DistCC untuk hanya mendengarkan koneksi masuk dari alamat tertentu. Misalnya, baris di atas memberi tahu DistCC untuk hanya mendengarkan koneksi masuk dari satu klien.

Hal berikutnya yang perlu Anda lakukan adalah membuat file log distccd:

sudo menyentuh / var / log / distccd.log sudo chown distcc : root /var/log/distccd.log _ _ _

Setelah itu selesai, Anda sekarang dapat mengaktifkan server distccd Anda untuk menerima koneksi DistCC yang masuk:

sudo rc-update tambahkan distccd default sudo rc-service distccd start

Mengkonfigurasi Klien DistCC Anda

Tidak seperti distccd, mengonfigurasi klien DistCC Anda sangat sederhana. Pertama, Anda perlu memberi tahu klien Anda di mana mencari server distccd:

sudo / usr / bin / distcc-config –set-hosts “localhost 192.168.254.102”

Ini akan memberitahu DistCC untuk menggunakan mesin lokal dan server untuk mengkompilasi program. Dari sana, satu-satunya hal yang harus dilakukan adalah mengonfigurasi make.conf Anda untuk menggunakan DistCC.

Mirip dengan CCache, Anda perlu menggunakan variabel FEATURES untuk memberi tahu Portage bahwa Anda sedang menjalankan DistCC di jaringan Anda. Misalnya, ini adalah make.conf dari mesin klien:

MAKEOPTS = “-j4 -l4” FITUR = “distcc”

4. Gunakan BuildPKG

Cara lain untuk mempercepat waktu kompilasi di Gentoo adalah dengan membuat server distribusi biner. Dalam hal ini, Anda menggunakan mesin terpisah tempat paket dibuat dan didistribusikan dalam bentuk biner.

Tidak seperti DistCC, mendistribusikan binari hanya membutuhkan satu mesin untuk melakukan kompilasi. Program yang dihasilkan kemudian dibagikan ke beberapa mesin tempat mereka dapat menginstalnya secara normal.

Melakukannya dengan cara ini dapat membantu jika Anda sudah menggunakan Gentoo di beberapa mesin serupa. Ini karena binari mengurangi waktu yang diperlukan untuk membangun dan memelihara satu klien.

Untuk memulai, Anda hanya perlu menambahkan baris berikut ke make.conf server build Anda:

FITUR = “buildpkg”

Ini akan, pada gilirannya, memberitahu Portage untuk membuat paket biner secara otomatis untuk setiap program yang Anda instal di server Anda.

Dari sana, Anda perlu membuat cara untuk membagikan binari tersebut ke mesin di jaringan Anda. Untuk melakukan itu, Anda dapat menginstal server web HTTP sederhana:

sudo emerge –tanya www-servers / lighttpd

Selanjutnya, beri tahu lighttpd untuk melayani paket server Anda dengan menambahkan baris berikut ke “/etc/lighttpd/lighttpd.conf” Anda:

server.modul += ( “mod_alias” ) alias.url = ( “/paket” = > “/var/cache/binpkgs” )

Menginstal Paket Biner di Gentoo

Setelah selesai, menginstal paket biner dari server distribusi Anda adalah proses dua langkah sederhana. Pertama, Anda perlu memberi tahu Portage alamat server distribusi Anda:

PORTAGE_BINHOST = “http://192.168.254.110/packages”

Dari sana, saya menggunakan Portage untuk menginstal paket biner:

sudo emerge –ask -K www-klien / firefox

Di sini, opsi -K akan memaksa Portage untuk hanya mencari binari dari paket yang ingin Anda instal.

Dalam melakukan ini, ia akan melihat ke server jika memiliki salinan program Firefox. Jika Portage tidak dapat menemukannya, instalasi akan gagal. Ini pada akhirnya berarti bahwa server harus sudah memiliki program biner sebelum klien memintanya.

5. Optimalkan Compiler Anda di Gentoo

Terakhir, Anda juga dapat mengatur GB

Namun, tidak seperti MAKEOPTS, opsi ini bergantung pada mesin yang Anda miliki. Ini termasuk CPU serta hard disk dan memori yang Anda miliki.

Selanjutnya, Anda perlu menempatkan opsi ini di variabel COMMON_FLAGS . Misalnya:

COMMON_FLAGS = “-march=asli -O1 -pipa”

Dalam hal ini, ada tiga opsi yang dapat Anda atur untuk mengoptimalkan GCC:

  • Opsi march memberi tahu GCC untuk mengkompilasi program di CPU yang Anda inginkan. Dalam kebanyakan kasus, Anda memberi tahu GCC untuk membuat program untuk CPU lokal Anda. Untuk melakukan itu, Anda dapat memberikan nilai “asli” dan GCC akan membangun untuk CPU yang sedang berjalan.
  • Opsi O memberitahukan tingkat pengoptimalan yang Anda inginkan untuk program Anda. Ini adalah rentang antara 0 hingga 3 dan semakin tinggi nilai yang Anda tetapkan, semakin cepat program akan berjalan. Namun, melakukan itu akan menambah waktu yang diperlukan untuk mengompilasinya.
  • Opsi pipa adalah toggle yang dapat Anda atur untuk mempercepat proses kompilasi. Ini dilakukan dengan menahan objek di RAM alih-alih menyimpannya di file sementara. Dengan demikian, ini akan menghabiskan banyak memori dan menggunakan ini dengan RAM terbatas akan merusak GCC.

Pertanyaan yang Sering Diajukan

1. Saya tidak memiliki variabel MAKEOPTS atau FEATURES di make.conf saya. Apakah instalasi Gentoo saya rusak?

TIDAK! Biasanya file make.conf default tidak memiliki variabel MAKEOPTS dan FEATURES. Anda cukup menambahkan variabel dan nilainya ke make.conf dan Portage akan mengenalinya dan segera menerapkannya.

2. Apakah mungkin mengaktifkan CCache hanya untuk paket yang saya inginkan?

Ya! Anda dengan mudah mengaktifkan CCache hanya untuk paket tertentu. Untuk melakukannya, pertama-tama Anda harus menghapus nilai “ccache” dalam variabel FEATURES Anda.

Dari sana, Anda perlu mengedit file “/etc/portage/package.env”. Ini adalah file dimana Anda dapat mengaktifkan fitur Portage per paket. Mengetahui hal itu, ini adalah file package.env yang menggunakan CCache untuk beberapa program:

www-client / firefox ccache.conf sys-devel / gcc ccache.conf sys-devel / dentang ccache.conf

Dengan melakukan itu, saya mengaktifkan CCache untuk Firefox, GCC dan Clang. Ini berarti bahwa Portage hanya akan menyimpan file objek untuk program-program ini dan dependensi terkaitnya.

3. Apakah ada masalah saat menjalankan server distribusi Gentoo?

Salah satu masalah utama memelihara server distribusi adalah Anda bertanggung jawab untuk selalu memperbarui paket biner. Ini berarti bahwa sebelum Anda dapat memperbarui klien apa pun, Anda perlu memperbarui server distribusi terlebih dahulu, lalu menghapus binari lama di klien Anda.

Masalah lain dengan menjalankan server distribusi adalah Anda kehilangan fleksibilitas flag USE untuk mesin klien Anda. Ini berarti Anda perlu mengaktifkan flag yang tidak Anda perlukan di semua mesin Anda.

Kredit gambar: Hapus percikan

Related Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *