LFS: Packages & Patches: Difference between revisions
Appearance
No edit summary |
m SanzSkuy moved page LFS: Packages and Patches to LFS: Packages & Patches without leaving a redirect |
(No difference)
| |
Latest revision as of 01:32, 17 April 2025
Selama proses membangun sistem LFS, kita akan banyak berurusan dengan source code, patches, dan file-file lain yang perlu diunduh dan dibangun. Agar semua file ini tertata rapi dan mudah diakses selama seluruh proses pembangunan, disarankan untuk membuat satu direktori khusus. Direktori yang disarankan adalah $LFS/sources.Direktori ini memiliki dua fungsi utama:
- Tempat penyimpanan untuk semua tarballs (paket yang diunduh) dan patches.
- Working directory tempat proses ekstraksi dan kompilasi dilakukan.
Dengan meletakkan direktori ini di dalam partisi LFS, kita memastikan bahwa semua file penting tersedia selama semua tahapan build, termasuk saat kita masuk ke lingkungan chroot.
mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources
Download Package & Patches
wget https://www.linuxfromscratch.org/lfs/view/stable/wget-list-sysv
wget --input-file=wget-list-sysv --continue --directory-prefix=$LFS/sources
note: ada beberapa package yang tidak bisa didownload via wget dari file wget-list-sysv. Kalau tidak ada kalian bisa download manual
Kegunaan Masing-Masing Package
| Nama Package | Fungsi | Why |
|---|---|---|
| Acl (2.3.2) | Mengelola Access Control Lists (ACL) untuk file sistem | Dibutuhkan untuk fitur kontrol akses file yang lebih rinci dari sekadar permission biasa (rwx). |
| Attr (2.5.2) | Mengelola extended attributes pada filesystem | Extended attributes digunakan untuk menyimpan metadata tambahan pada file (digunakan oleh ACL juga). |
| Autoconf (2.72) | Tool untuk membuat script konfigurasi otomatis (configure) | Banyak source code GNU menggunakan `configure` script yang dibuat oleh autoconf untuk portabilitas. |
| Automake (1.17) | Tool bantu untuk membuat Makefile.in berdasarkan Makefile.am | Diperlukan untuk membangun banyak paket GNU yang pakai autotools. |
| Bash (5.2.37) | Bourne Again Shell, shell utama yang digunakan di sistem | Bash adalah shell default di banyak distro, juga jadi basis scripting di LFS. |
| Bc (7.0.3) | Kalkulator precision tinggi, bisa scripting juga | Beberapa script LFS menggunakan `bc` untuk perhitungan presisi (misal saat build glibc atau kernel). |
| Binutils | Tools untuk manipulasi binary (linking, assembling, dll) | Esensial buat compile dan link program, terutama kernel dan libraries. |
| Bison | Parser generator (GNU yacc) | Dipakai untuk build banyak compiler dan tools (termasuk bash, coreutils). |
| Bzip2 | Kompresi file (format .bz2) | Banyak source code dikompresi dalam format ini. |
| Check | Framework unit testing untuk C | Digunakan untuk validasi/test saat compile tools di LFS. |
| Coreutils | Tools inti GNU seperti `ls`, `cp`, `mv`, `rm` | Semua tool dasar Unix disediakan dari sini. |
| DejaGNU | Framework testing berbasis expect | Dipakai buat testing compiler/tools yang dibuat. |
| Diffutils | Tool untuk membandingkan file (`diff`) | Penting saat debugging atau patching source code. |
| E2fsprogs | Tools untuk mengelola ext2/3/4 filesystem | Diperlukan untuk format, cek, dan repair filesystem ext. |
| Elfutils | Tools untuk membaca dan menulis ELF file | ELF adalah format binary utama di Linux (buat bin/lib). |
| Expat | XML parser cepat dan ringan | Dipakai oleh berbagai software untuk parsing file XML config. |
| Expect | Tool buat automasi interaksi dengan terminal | Penting untuk testing tools interaktif di LFS. |
| File | Mengidentifikasi tipe file berdasarkan kontennya | Banyak build script pakai `file` untuk validasi. |
| Findutils | Tool untuk mencari file (`find`, `xargs`) | Salah satu utilitas inti sistem Unix. |
| Flex | Scanner generator (pengganti lex) | Banyak tool dan compiler gunakan flex untuk parsing. |
| Flit-core | Tool untuk install package Python (PEP 517) | Dibutuhkan untuk environment Python di LFS. |
| Gawk | Implementasi GNU dari awk | Banyak script LFS pakai `awk` untuk proses teks/log. |
| GCC | Compiler utama GNU untuk C, C++, dll | Wajib untuk membangun seluruh sistem (glibc, kernel, dll). |
| GDBM (1.24) | Database library untuk menyimpan data dalam format key-value (hash). | Banyak program GNU seperti `man` membutuhkan GDBM untuk menyimpan indeks atau cache dalam format database sederhana. |
| Gettext (0.24) | Menyediakan tools untuk internationalization (i18n) dan localization (l10n). | Dibutuhkan agar program dalam sistem LFS bisa mendukung berbagai bahasa, terutama untuk output teks dari command-line tools. |
| Glibc (2.41) | GNU C Library, menyediakan fungsi-fungsi dasar untuk sistem operasi seperti manajemen memori, I/O, dan lain-lain. | Ini adalah *core* dari user-space interface ke kernel Linux, fundamental untuk hampir semua executable dalam sistem. |
| GMP (6.3.0) | Library untuk aritmetika angka besar (multiple precision arithmetic). | Dibutuhkan oleh banyak aplikasi matematika dan cryptography untuk melakukan operasi dengan angka yang sangat besar. |
| Gperf (3.1) | Program untuk menghasilkan *perfect hash functions* bagi aplikasi pencarian. | Digunakan dalam banyak proyek untuk mempercepat pencarian data dalam struktur hash, seperti dalam pembuatan compiler. |
| Grep (3.11) | Utilitas untuk pencarian teks yang mendalam (regular expressions). | Digunakan secara luas di command-line untuk mencari pola dalam file, sangat penting dalam skrip dan debugging. |
| Groff (1.23.0) | Sistem formatting untuk teks, mendukung pembuatan dokumen yang dapat dicetak. | Dibutuhkan untuk menghasilkan dokumen dan manual berbasis teks dalam sistem LFS. |
| GRUB (2.12) | Grand Unified Bootloader, digunakan untuk mem-boot sistem operasi. | GRUB sangat penting untuk menginisialisasi dan mem-boot sistem LFS yang diinstal. |
| Gzip (1.13) | Utilitas untuk kompresi file. | Digunakan untuk mengompresi file untuk efisiensi penyimpanan atau transfer data. |
| Iana-Etc (20250123) | Kumpulan konfigurasi IANA (Internet Assigned Numbers Authority) untuk berbagai protokol. | Diperlukan untuk memberikan file konfigurasi standar untuk berbagai protokol dan aplikasi jaringan. |
| Inetutils (2.6) | Kumpulan utilitas jaringan dasar seperti `ping`, `ftp`, `telnet`, dll. | Menyediakan alat dasar untuk komunikasi jaringan yang dibutuhkan untuk sistem LFS, memungkinkan konektivitas jaringan dan pemecahan masalah. |
| Intltool (0.51.0) | Alat untuk membantu menerjemahkan program dan aplikasi yang menggunakan *gettext* untuk internasionalisasi. | Dibutuhkan untuk mendukung penerjemahan dan lokalitas aplikasi dalam LFS, mempermudah pembuatan perangkat lunak yang dapat diakses oleh pengguna internasional. |
| IPRoute2 (6.13.0) | Kumpulan utilitas untuk konfigurasi jaringan dan routing IP. | Diperlukan untuk mengelola jaringan pada sistem Linux, termasuk pengaturan routing dan interface jaringan. |
| Jinja2 (3.1.5) | Template engine untuk Python. | Digunakan untuk menghasilkan dokumen atau konfigurasi dari template, sering digunakan dalam alat seperti *Ansible* dan dalam sistem pengelolaan konfigurasi. |
| Kbd (2.7.1) | Utilitas untuk pengelolaan keyboard pada sistem Linux. | Diperlukan untuk konfigurasi dan pemetaan keyboard, penting bagi pengelolaan input di sistem LFS. |
| Kmod (34) | Manajemen modul kernel, memungkinkan pengelolaan modul yang dimuat pada sistem. | Dibutuhkan untuk memuat, mencopot, dan mengelola modul-modul kernel dalam sistem LFS. |
| Less (668) | Pemberi tampilan halaman demi halaman untuk file teks. | Digunakan untuk menampilkan file teks dengan cara yang mudah dibaca, lebih efisien daripada editor teks untuk file yang sangat besar. |
| LFS-Bootscripts (20240825) | Skrip booting yang digunakan untuk memulai sistem LFS. | Skrip yang sangat penting untuk proses booting sistem LFS, mengatur langkah-langkah awal sebelum sistem Linux sepenuhnya berjalan. |
| Libcap (2.73) | Library untuk pengelolaan *capabilities* di Linux, mengelola hak akses priviledge tertentu untuk proses. | Dibutuhkan untuk meningkatkan keamanan dan kontrol akses di sistem LFS, memungkinkan kontrol yang lebih halus terhadap hak akses pengguna. |
| Libffi (3.4.7) | Library untuk memanggil fungsi dari berbagai bahasa pemrograman lainnya melalui antarmuka fungsi eksternal. | Diperlukan untuk mendukung antarmuka pemrograman fungsi lintas bahasa, yang memungkinkan pengembangan aplikasi multi-bahasa di sistem LFS. |
| Libpipeline (1.5.8) | Library untuk mengelola aliran data antar proses melalui pipeline. | Menyediakan API untuk membuat aplikasi yang lebih efisien dengan aliran data antara proses, sangat berguna dalam pemrograman sistem. |
| Libtool (2.5.4) | Alat bantu untuk membuat *shared libraries* dan menangani konfigurasi lintas platform. | Membantu dalam pengelolaan pembuatan dan penghubungan pustaka bersama (shared libraries), yang sangat penting dalam pengembangan perangkat lunak di LFS. |
| Libxcrypt (4.4.38) | Library untuk pengolahan enkripsi kata sandi, digunakan untuk manajemen keamanan kata sandi. | Diperlukan untuk menangani dan mengenkripsi kata sandi dengan cara yang aman, penting untuk aplikasi yang melibatkan autentikasi pengguna. |
| Linux (6.13.4) | Kernel Linux yang menjadi dasar sistem operasi LFS. | Kernel adalah komponen inti dari sistem operasi Linux, yang diperlukan untuk menjalankan dan mengelola perangkat keras serta proses di LFS. |
|} |}