hallo bro apa kabar? mohon maaf karena akhir" ini ane jarang on forum kali ini ane mau share sedikit tentang LFS (linux from scratch).
tujuan dari LFS sendiri adalah membangun linux dari nol, dengan cara mengumpulkan kernel, library, utilitas dll, kemudian kita kompilasi dan kita konfigurasi hingga menjadi sebuah system linux.
apa saja yang dibutuhkan dalam pembuatan LFS:
• Autoconf
Paket ini berisi program untuk menghasilkan shell script yang mana dapat dengan otomatis mengkonfigurasikan source code dari template2 pengembangan. Biasanya digunakan untuk me rebuild paket2 setelah di update.
• Automake
Paket ini berisi program untuk menggenerate Makefiles dari template. Paket ini sering digunakan untuk proses rebuild paket setelah update, atau generate skrip kompilasi.
• Bash
Paket ini adalah termasuk paket utama yang menyediakan fasilitas Shell pada sistem linux.
• Binutils
Paket ini berisi linker, assembler, dan tools2 lain untuk menangani file object. Paket2 binutils ini di butuhkan untuk melakukan kompilasi pada hampir semua paket dalam LFS.
• Bison
Paket ini berisi yacc (Yet Another Compiler Compiler), digunakan untuk building dari beberapa paket LFS.
• Bzip2
Paket ini berisi program untuk melakukan kompresi dan dekompresi file, yang mana dibutuhkan di beberapa paket LFS.
• Coreutils
Paket ini berisi beberapa esensi program untuk melakukan viewing dan manipulasi file/direktori. dll
• DejaGNU
Paket ini berisi framework untuk melakukan testing program. Ini hanya di install di temporary toolchain.
• Diffutils
Paket ini berisi program untuk melihat perbedaan antar filie/direktori. Program ini digunakan untuk membuat patch, juga digunakan di beberapa prosedur building paket.
• Expect
Paket ini berisi program untuk membuat skrip dialog antar program secara interaktif. Biasanya digunakan untuk testing paket, paket ini hanya diinstall di temporary toolchain.
• E2fsprogs
Paket ini berisi utilitas untuk menangani filesystem ext2, ext3, ext4.
• File
Berisi paket yang berguna untuk melihat jenis/tipe file. Beberapa paket membutuhkan utilitas ini untuk proses building.
• Findutils
Paket ini berisi program untuk melakukan pencarian file dalam filesystem. Paket ini berguna untuk proses building dari beberapa paket.
• Flex
paket ini berisi utilitas untuk generate program untuk mengenali pola2 tertentu dalam teks. Berguna untuk building beberapa paket LFS.
• Gawk
Paket ini berisi program untuk melakukan manipulasi file teks. Ini adalah versi GNU dari awk. Paket ini digunakan untuk melakukan proses building pada beberapa paket dalam LFS.
• Gcc
Paket ini berisi GNU Compiler Collection. Didalamnya berisi Kompiler C dan C++ Paket ini digunakan untuk melakukan kompilasi pada hampir semua paket2 dalam LFS yang di tulis dalam bahasa C.
• GDBM
Paket ini berisi Library Manager Database. Digunakan oleh paket lain dalam LFS, yaitu Man-DB
• Gettext
Paket ini berisi librari dan utility untuk internasionalisasi dan lokalisasi dari beberapa paket di LFS.
• Glibc
Berisi Library utama program2 yang dihasilkan dari bahasa C. Linux tidak akan jalan tanpa lib ini.
• GMP
Paket ini berisi library matematika yang berguna untuk menghasilkan fungsi2 untuk operasi aritmatika dengan ketepatan tinggi. Paket ini digunakan untuk building Gcc.
• Grep
Paket ini berisi program untuk mencari pola2 teks tertentu dalam file, Paket ini digunakan hampir pada semua building script.
• Groff
Paket ini berisi program untuk melakukan prosesing dan formating teks. Fungsi penting dari program ini adalah untuk melakukan formatting pada man pages.
• GRUB
Ini adalah Boot Loader yang paling fleksibel diantara boot loader2 lain yang ada.
• Gzip
Paket ini berisi program untuk melakukan kompresi dan dekompresi file. Paket ini di butuhkan untuk melakukan dekompresipada banyak paket2 di LFS.
• Iana-etc
Paket ini menyediakan data untuk network services dan protokol. Berguna untuk membuat aplikasi network dengan kapabilitas tinggi.
• Inetutils
This package contains programs for basic network administration. Paket ini berisi program untuk dasar administrasi network.
• IProute2 .
Paket ini berisi program untuk administrasi networking dari yang bersifat dasar sampai advance pada Ipv4 dan Ipv6. Iproute2 hampir digunakan pada kebanyakan paket network-tools.
• Kbd
Paket ini berisi utilitas untuk keyboard, yang berisi tabel key pada jenis2 keyboard tertentu, juga beberapa jenis font console.
• Kmod
Paket ini berisi program yang dibutuhkan untuk administrasi/pengaturan pada modul2 kernel.
• Less
Paket ini berisi tool untuk melihat isi file teks, dan memungkinkan kita untuk scrolling up dan down dalam melihat isinya. Paket ini digunakan oleh Man-DB dalam menampilkan manpages.
• Libtool
Paket ini berisi skrip2 pendukung pada Librari umum, juga untuk mengkonfigurasikan kompleksitas dari penggunaan shared library.
Paket ini dibutuhkan oleh keperluan test dari paket2 other dari LFS.
• Linux Kernel
Ini adalah Operating system yang sebenarnya. Sebenarnya linux adalah kernel ini yang di bangun atas GNU/Linux environment
• M4
Paket ini berisi prosesor dari script makro2 umum, paket ini berguna untuk proses building dari program.
• Make
Paket ini berisi program yang berguna untuk melakukan direct building dari paket2 tertentu. Hampir semua paket membutuhkan utilitas ini untuk melakukan proses kompilasi dan building.
• Man-DB
Paket ini berisi Program yang berfungsi untuk melakukan proses pencarian dan menampilkan man pages. Paket ini adalah paket pendukung dari man-pages.
• Man-pages
Paket ini berisi isi yang sebenarnya dari basic halaman manual linux.
• MPC
Paket ini berisi fungsi2 yang berguna untuk melakukan perhitungan aritmatika dari bilangan2 yang kompleks, paket ini di butuhkan oleh GCC.
• MPFR
Paket ini berisi fungsi2 dari perhitungan aritmatika multi presisi. Paket ini digunakan oleh GCC.
• Ncurses
Paket ini berisi library untuk penanganan karakter2 layar pada terminal. Lib ini juga sering digunakan untuk kontrol kursor pada systeem menu. Ncurses dibutuhkan oleh banyak paket dalam LFS.
• Patch
Paket ini berisi program untuk melakukan modifikasi atau menciptakan files dengan cara memasangkan sisipan/patch tertentu yang biasanya di hasilkan oleh program diff, Paket ini digunakan untuk membangun prosedur2 untuk beberapa paket dalam LFS.
• Perl
Paket ini berisi interpreter untuk bahasa pemrograman PERL. Dalam LFS paket ini dibutuhkan untuk proses installasi dan test dari beberapa paket.
• Procps
Paket ini berisi program untuk melakukan monitoring proses. Program ini berguna untuk melakukan system administrasi dan dibutuhkan juga pada LFS Bootscripts.
• Psmisc
Paket ini berisi program untuk melakukan display informasi tentang proses yang sedang berjalan, paket ini berguna untuk melakukan administrasi system.
• Readline
Paket ini berisi satu set library yang memberikan fasilitas manajemen dan editing command-line, dan history Paket ini digunakan oleh bash.
• Sed
Paket ini digunakan untuk melakukan editing teks secara command line, tanpa harus membuka program editor. Paket ini digunakan oleh hampir semua dari script configure.
• Shadow
This package contains programs for handling passwords in a secure way. Paket ini berisi program untuk melakukan shadowing password, yang berguna untuk meningkatkan keamanan di system linux kita.
• Sysklogd
Paket ini berisi program untuk melakukan pencatatan/logging terhadap proses2 dalam system, seperti yang di berikan oleh kernel, atau daemon2/proses tertentu (biasanya dicatat apabila ada sesuatu kejadian tertentu yang bersifat tidak biasa terjadi)
• Sysvinit
Paket ini berisi program inisialisasi, yang mana ini merupakan induk dari proses2 lain dalam system linux.
• Tar
Paket ini berfungsi untuk melakukan pengarsipan (membentuk file .tar) dan ekstrak dari file .tar Digunakan hampir pada semua paket LFS.
• Tcl
Paket ini berisi Tool Command Language yang berguna pada pengetestan dalam paket2 LFS. TCL hanya di install pada temporary toolchain.
• Texinfo
Paket ini berisi program untuk melakukan pembacaan, penulisan dan konversi ke dalam suatu halaman, Paket ini digunakan pada prosedur installasi pada banyak paket LFS
• Udev
of static devices in the /dev directory. Paket ini berisi program untuk membuat file devices dengan nomor node2 tertentu pada
direktori /dev.
• Util-linux
Paket ini berisi program utility, biasanya untuk menangani system console, partisi, dan massages.
• Vim
Paket ini berisi editor, yang kompatibel dengan editor classic vi, tetapi dengan penambahan fitur2 yang sangat powerfull dalam melakukan editing teks.
• XZ Utils
Paket ini berisi program untuk melakukan kompresi dan dekompresi files. XZ utils ini memberikan kompresi yang sangat tinggi. File2 kompresinya berformat .xz atau .lzma.
• Zlib
Paket ini berisi library rutin2 tertentu untuk melakukan kompresi dan dekompresi, zlib di butuhkan oleh beberapa program lain.
Untuk bisa membangun LFS (versi 7.9) system anda harus lah linux dan memiliki paket2 dibawah ini, sebenarnya untuk distribusi linux2 baru saat ini biasanya tidak menjadi masalah, karena paket2 yang ada malah banyak yang lebih baru dari minimum persyaratan berikut.
Ada kemungkinan untuk versi2 sebelumnya tetap bisa di gunakan, tapi belum dilakukan test secara detail.
paket2 yang dibutuhkan:
Bash-3.2 (/bin/sh should be a symbolic or hard link to bash)
Binutils-2.17 (Versions greater than 2.26 are not recommended as they have not been tested)
Bison-2.3 (/usr/bin/yacc should be a link to bison or small script that executes bison)
Bzip2-1.0.4
Coreutils-6.9
Diffutils-2.8.1
Findutils-4.2.31
Gawk-4.0.1 (/usr/bin/awk should be a link to gawk)
GCC-4.7 including the C++ compiler, g++ (Versions greater than 5.3.0 are not recommended as they have not been tested) Glibc-2.11 (Versions greater than 2.23 are not recommended as they have not been tested)
Grep-2.5.1a
Gzip-1.3.12
Linux Kernel-2.6.32M4-1.4.10
Make-3.81
Patch-2.5.4
Perl-5.8.8
Sed-4.1.5
Tar-1.22
Texinfo-4.7
Xz-5.0.0
untuk mengeceknya apakah paket2 sudah terinstall apa belum bisa cek melalui command berikut buka terminal:
Code:
cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development tools
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
unset MYSH
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -h /usr/bin/yacc ]; then
echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
elif [ -x /usr/bin/yacc ]; then
echo yacc is `/usr/bin/yacc --version | head -n1`
else
echo "yacc not found"
fi
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -h /usr/bin/awk ]; then
echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; then
echo awk is `/usr/bin/awk --version | head -n1`
else
echo "awk not found"
fi
gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1
xz --version | head -n1
apabila ada paket yg not found silahkan anda install, kemudian cek apakah library dari libgmp.la, libmpfr.la dan libmpc.la secara default paket library ini belum ada anda harus mendownload dan mengcompilenya.