LFS: Setup Host System: Difference between revisions
Appearance
Created page with "Untuk membuat Linux sendiri menggunakan LFS, kita tetap memerlukan Host OS. Di sini saya menggunakan Ubuntu Server. Selain itu ada juga beberapa dependencies yang dibutuhkan. = Check Dependencies = <syntaxhighlight lang=bash> cat > version-check.sh << "EOF" #!/bin/bash # A script to list version numbers of critical development tools # If you have tools installed in other directories, adjust PATH here AND # in ~lfs/.bashrc (section 4.4) as well. LC_ALL=C PATH=/usr/bin..." |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 100: | Line 100: | ||
Contoh Output: | Contoh Output: | ||
<syntaxhighlight> | <syntaxhighlight lang=bash> | ||
OK: Coreutils 9.4 >= 8.1 | OK: Coreutils 9.4 >= 8.1 | ||
OK: Bash 5.2.21 >= 3.2 | OK: Bash 5.2.21 >= 3.2 | ||
| Line 145: | Line 145: | ||
bash | bash | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= References = | |||
https://www.linuxfromscratch.org/lfs/view/stable/chapter02/hostreqs.html | |||
Latest revision as of 04:27, 13 April 2025
Untuk membuat Linux sendiri menggunakan LFS, kita tetap memerlukan Host OS. Di sini saya menggunakan Ubuntu Server. Selain itu ada juga beberapa dependencies yang dibutuhkan.
Check Dependencies
cat > version-check.sh << "EOF"
#!/bin/bash
# A script to list version numbers of critical development tools
# If you have tools installed in other directories, adjust PATH here AND
# in ~lfs/.bashrc (section 4.4) as well.
LC_ALL=C
PATH=/usr/bin:/bin
bail() { echo "FATAL: $1"; exit 1; }
grep --version > /dev/null 2> /dev/null || bail "grep does not work"
sed '' /dev/null || bail "sed does not work"
sort /dev/null || bail "sort does not work"
ver_check()
{
if ! type -p $2 &>/dev/null
then
echo "ERROR: Cannot find $2 ($1)"; return 1;
fi
v=$($2 --version 2>&1 | grep -E -o '[0-9]+\.[0-9\.]+[a-z]*' | head -n1)
if printf '%s\n' $3 $v | sort --version-sort --check &>/dev/null
then
printf "OK: %-9s %-6s >= $3\n" "$1" "$v"; return 0;
else
printf "ERROR: %-9s is TOO OLD ($3 or later required)\n" "$1";
return 1;
fi
}
ver_kernel()
{
kver=$(uname -r | grep -E -o '^[0-9\.]+')
if printf '%s\n' $1 $kver | sort --version-sort --check &>/dev/null
then
printf "OK: Linux Kernel $kver >= $1\n"; return 0;
else
printf "ERROR: Linux Kernel ($kver) is TOO OLD ($1 or later required)\n" "$kver";
return 1;
fi
}
# Coreutils first because --version-sort needs Coreutils >= 7.0
ver_check Coreutils sort 8.1 || bail "Coreutils too old, stop"
ver_check Bash bash 3.2
ver_check Binutils ld 2.13.1
ver_check Bison bison 2.7
ver_check Diffutils diff 2.8.1
ver_check Findutils find 4.2.31
ver_check Gawk gawk 4.0.1
ver_check GCC gcc 5.2
ver_check "GCC (C++)" g++ 5.2
ver_check Grep grep 2.5.1a
ver_check Gzip gzip 1.3.12
ver_check M4 m4 1.4.10
ver_check Make make 4.0
ver_check Patch patch 2.5.4
ver_check Perl perl 5.8.8
ver_check Python python3 3.4
ver_check Sed sed 4.1.5
ver_check Tar tar 1.22
ver_check Texinfo texi2any 5.0
ver_check Xz xz 5.0.0
ver_kernel 5.4
if mount | grep -q 'devpts on /dev/pts' && [ -e /dev/ptmx ]
then echo "OK: Linux Kernel supports UNIX 98 PTY";
else echo "ERROR: Linux Kernel does NOT support UNIX 98 PTY"; fi
alias_check() {
if $1 --version 2>&1 | grep -qi $2
then printf "OK: %-4s is $2\n" "$1";
else printf "ERROR: %-4s is NOT $2\n" "$1"; fi
}
echo "Aliases:"
alias_check awk GNU
alias_check yacc Bison
alias_check sh Bash
echo "Compiler check:"
if printf "int main(){}" | g++ -x c++ -
then echo "OK: g++ works";
else echo "ERROR: g++ does NOT work"; fi
rm -f a.out
if [ "$(nproc)" = "" ]; then
echo "ERROR: nproc is not available or it produces empty output"
else
echo "OK: nproc reports $(nproc) logical cores are available"
fi
EOF
$ bash version-check.sh
Contoh Output:
OK: Coreutils 9.4 >= 8.1
OK: Bash 5.2.21 >= 3.2
OK: Binutils 2.42 >= 2.13.1
OK: Bison 3.8.2 >= 2.7
OK: Diffutils 3.10 >= 2.8.1
OK: Findutils 4.9.0 >= 4.2.31
OK: Gawk 5.2.1 >= 4.0.1
OK: GCC 13.3.0 >= 5.2
OK: GCC (C++) 13.3.0 >= 5.2
OK: Grep 3.11 >= 2.5.1a
OK: Gzip 1.12 >= 1.3.12
OK: M4 1.4.19 >= 1.4.10
OK: Make 4.3 >= 4.0
OK: Patch 2.7.6 >= 2.5.4
OK: Perl 5.38.2 >= 5.8.8
OK: Python 3.12.3 >= 3.4
OK: Sed 4.9 >= 4.1.5
OK: Tar 1.35 >= 1.22
OK: Texinfo 7.1 >= 5.0
OK: Xz 5.4.5 >= 5.0.0
OK: Linux Kernel 6.8.0 >= 5.4
OK: Linux Kernel supports UNIX 98 PTY
Aliases:
OK: awk is GNU
OK: yacc is Bison
ERROR: sh is NOT Bash
Compiler check:
OK: g++ works
OK: nproc reports 1 logical cores are available
Kalau ada yang error silahkan diinstall. Contoh dalam kasus saya:
sudo apt update && sudo apt install -y \
binutils \
bison \
gcc \
g++ \
m4 \
make \
texinfo \
bison \
bash
References
https://www.linuxfromscratch.org/lfs/view/stable/chapter02/hostreqs.html