LINUX FROM SCRATCH
Pengantar
Buku Linux From Scratch adalah pokok utama untuk membangun
sendiri suatu system operasi Linux. Di dalamnya terserdia latar dan instruksi
yang di perlukanmu untuk membangun dan mendesain system sendiri. Buku ini
ditulis oleh Gerrad Beekmans.
Banyak keuntungan kita membangun Linux system from scratch
daripada hanya mendownload dan langsung menginstal yang sudah ada. Satu hal
yang terpenting adalah kita belajar mengetahui bagaimana system Linux bekerja
dari dalam dan luar. Selain itu kita dapat memiliki kemampuan untuk meng customize system Linux menjadi kebutuhan
kita yang unik, mempunyai control sistem lebih dalam, membuat system Linux yang
kompleks, dan membangun keamanan.
Target Arsitektur LFS
Target utama arsitektur LFS adalah AMD/Intel x86 (32-bit)
dan x86_64 (64-bit) CPU. Jika kita memiliki lebih dari 4GB RAM atau ingin
memanipulasi data melebihi 4GB, keuntungan dari 64-bit system akan banyak
sekali.
LFS dan Standar
- POSIX.1-2008.
- Filesystem Standar Hirerarki versi 3.0
Draft 1 (FHS)
- Linux
Standard Base (LSB) spesifikasi
- LSB memiliki 5 standar yang terpisah : Core, C++, Desktop, Runtime Languages, dan
Printing.
Packages yang disediakan LFS
untuk memenuhi requirements LSB
- LSB Core: Bash, Bc, Binutils, Coreutils, Diffutils, File,
Findutils, Gawk, Grep, Gzip, M4, Man
- DB, Ncurses, Procps, Psmisc, Sed, Shadow, Tar, Util-linux,
Zlib
- LSB C++: Gcc
- LSB Desktop: None
- LSB Runtime Languages: Perl
- LSB Printing: None
- LSB Multimeda: None
Packages yang disediakan BLFS
untuk memenuhi requirements LSB
- LSB Core: At, Batch (a part of At), Cpio, Ed, Fcrontab,
Initd-tools, Lsb_release, PAM,
- Sendmail (or Postfix or Exim)
- LSB C++: None
- LSB Desktop: ATK, Cairo, Desktop-file-utils, Freetype,
Fontconfig, Glib2, GTK+2, Icon-
- naming-utils, Libjpeg, Libpng, Libxml2, MesaLib, Pango, Qt4,
Xorg
- LSB Runtime Languages: Python
- LSB Printing: CUPS
- LSB Multimeda: Alsa Libraries, NSPR, NSS, OpenSSL, Java,
Xdg-utils
Packages yang tidak disediakan
oleh LFS atau BLFS untuk memenuhi requirements
LSB
- LSB Core: time (executable) and pax
- LSB C++: None
- LSB Desktop: Qt3
- LSB Runtime Languages: None
- LSB Printing: None
- LSB Multimeda: None
Rationale for Packages in the Book
Tujuan dari LFS adalah membangun dasar pondasi level sistem
secara lengkap dan dapat digunakan. Dibawah ini merupakan dasar pemikiran untuk
setiap package :
- ·
Autoconf
- ·
Automake
- ·
Bash
- ·
Bc
- ·
Binutils
- ·
Bison
- ·
Bzip2
- ·
Check
- ·
Coreutils
- ·
DejaGNU
- ·
Diffutils
- ·
E2fsprogs
- ·
Expect
- ·
File
- ·
Findutils
- ·
Flex
- ·
Gawk
- ·
Gcc
- ·
GDBM
- ·
Gettext
- ·
Glibc
- ·
GMP
- ·
Grep
- ·
Groff
- ·
GRUB
- ·
Gzip
- ·
Iana-etc
- ·
Inetutils
- ·
IProute2
- ·
Kbd
- ·
Kmod
- ·
Less
- ·
Libpipipeline
- ·
Libtool
- ·
Linux Kernel
- ·
M4
- ·
Make
- ·
Man-DB
- ·
Man-pages
- ·
MPC
- ·
MPFR
- ·
Ncurses
- ·
Patch
- ·
Perl
- ·
Pkg-config
- ·
Procps-NG
- ·
PSMISC
- ·
Readline
- ·
Sed
- ·
Shadow
- ·
Sysklogd
- ·
Sysvinit
- ·
Tar
- ·
Tcl
- ·
Texinfo
- ·
Udev
- ·
Util-Linux
- ·
Vim
- ·
XZ Utils
- ·
Zlib
Persyaratan
Membangun LFS system bukanlah pekerjaan yang mudah. Ini
membutuhkan pengetahuan yang luas tentang Unix
system administration untuk mengatasi masalah dan memperbaiki perintah yang
dijalankan.
Sebelum membangun system LFS, kita merekomendasikan pembaca
untuk membaca referensi :
Host System Requirements
Host system harus mengikuti
software minimum versi yang telah
diindikasikan. Versi terbaru dari yang di list mungkin bekerja, tetapi belum
pernah dicoba.
•
Bash-3.2
•
Binutils-2.17 (Versions greater than 2.24 are
not recommended as they have not been tested)
•
Bison-2.3
•
Bzip2-1.0.4
•
Coreutils-6.9
•
Diffutils-2.8.1
•
Findutils-4.2.31
•
Gawk-4.0.1 (/usr/bin/awk shou
•
GCC-4.1.2 including the C++ compiler, g++
(Versions greater than 4.8.2 are not recommended as they have not been tested)
•
Glibc-2.5.1 (Versions greater than 2.19 are not
recommended as they have not been tested)
•
Grep-2.5.1a
•
Gzip-1.3.12
•
Linux Kernel-2.6.32
•
M4-1.4.10
•
Make-3.81
•
Patch-2.5.4
•
Perl-5.8.8
•
Sed-4.1.5
•
Tar-1.18
•
Xz-5.0.0
Typography
Untuk membuat hal ini mudah diikuti, ada beberapa typographical atau cara penulisan.
./configure --prefix=/usr
Bentuk teks dirancang untuk
diketik persis seperti yang terlihat kecuali jika dinyatakan dalam teks
sekitarnya. Dalam beberapa kasus, garis logis diperpanjang menjadi dua atau
lebih garis fisik dengan backslash di akhir baris.
CC=”gcc
-B/usr/bin/” ../binutils-2.18/configure \
–prefix=/tools
–disable-nls –disable-werror
Perhatikan bahwa backslash harus
diikuti dengan segera kembali. Karakter spasi lain seperti spasi atau tab
karakter akan menciptakan hasil yang salah.
install-info: unknown option
‘–dir-file=/mnt/lfs/usr/info/dir’
Bentuk teks (fixed-width teks)
menunjukkan output layar, biasanya sebagai hasil dari perintah yang
dikeluarkan. Format ini juga digunakan untuk menunjukkan nama file, seperti
/etc/ld.so.conf.
Penekanan bentuk teks digunakan untuk beberapa tujuan dalam buku ini.
http://www.linuxfromscratch.org/
Format ini digunakan untuk
hyperlink baik dalam komunitas LFS dan ke halaman eksternal. Ini termasuk
HOWTO, ambil lokasi, dan situs web.
cat >
$LFS/etc/group << “EOF”
root:x:0:
bin:x:1:
……
EOF
Format ini digunakan saat membuat
file konfigurasi. Perintah pertama memberitahu sistem untuk membuat file $ LFS
/ etc / kelompok dari apa pun yang diketik pada baris berikut sampai akhir
urutan Of file (EOF) ditemui.
Format ini digunakan untuk
merangkum teks yang tidak diketik seperti yang terlihat atau untuk operasi
copy-and-paste.
[OPTIONAL
TEXT]
Format ini digunakan untuk
merangkum teks yang bersifat opsional.
passwd(5)
Format ini digunakan untuk
merujuk kepada manual (man) halaman tertentu. Misalnya, passwd memiliki dua
halaman manual. Per petunjuk instalasi LFS, dua halaman manual akan berlokasi
di /usr/share/man/man1/passwd.1 dan /usr/share/man/man5/passwd.5. Ketika buku
menggunakan passwd (5) secara khusus mengacu /usr/share/man/man5/passwd.5. man
passwd akan mencetak halaman manual pertama ditemukan yang cocok “passwd”, yang
akan /usr/share/man/man1/passwd.1. Untuk contoh ini, Anda akan perlu
menjalankan man 5 passwd untuk membaca halaman tertentu yang dimaksud. Perlu
dicatat bahwa sebagian besar halaman manual tidak memiliki nama halaman
duplikat dalam bagian yang berbeda.