<Poprzedni | Spis treści | Następne>
2.2. Wymagania systemowe hosta
Twój system hosta powinien mieć następujące oprogramowanie ze wskazanymi wersjami minimalnymi. Nie powinno to stanowić problemu dla większości nowoczesnych dystrybucji Linuksa. Należy również zauważyć, że wiele dystrybucji umieszcza nagłówki oprogramowania w osobnych pakietach, często w formie „ -rozwój” lub „ -dev”. Pamiętaj, aby je zainstalować, jeśli twoja dystrybucja je zapewnia.
Wcześniejsze wersje wymienionych pakietów oprogramowania mogą działać, ale nie zostały przetestowane.
• bash-3.2 (/bin/sh powinien być symbolicznym lub twardym linkiem do basha)
• Binutils-2.25 (Wersje większe niż 2.32 nie są zalecane, ponieważ nie zostały przetestowane)
• Żubr-2.7 (/usr/bin/yacc powinien być linkiem do bizona lub małego skryptu wykonującego bizona)
• Bzip2-1.0.4
• Coreutils-6.9
• Utrudnienia-2.8.1
• Findutils-4.2.31
• Gawk-4.0.1 (/usr/bin/awk powinno być linkiem do gawk)
• GCC-6.2 w tym kompilator C++, g ++ (Wersje większe niż 9.2.0 nie są zalecane, ponieważ nie zostały przetestowane)
• Glibc-2.11 (Wersje większe niż 2.30 nie są zalecane, ponieważ nie zostały przetestowane)
• Grep-2.5.1a
• Gzip-1.3.12
• Jądro Linuksa-3.2
Powodem wymagania dotyczącego wersji jądra jest to, że określamy tę wersję podczas budowania glibc w rozdziale 6 na zalecenie programistów. Jest to również wymagane przez udev.
Jeśli jądro hosta jest starsze niż 3.2, będziesz musiał wymienić jądro na nowszą wersję. Możesz to zrobić na dwa sposoby. Najpierw sprawdź, czy twój dostawca Linuksa zapewnia pakiet jądra 3.2 lub nowszy. Jeśli tak, możesz chcieć go zainstalować. Jeśli twój dostawca nie oferuje akceptowalnego pakietu jądra lub wolisz tego nie robić
zainstaluj go, możesz samodzielnie skompilować jądro. Instrukcje dotyczące kompilacji jądra i konfiguracji programu ładującego (zakładając, że host używa GRUB) znajdują się w rozdziale 8.
• M4-1.4.10
• Zrób-4.0
• Łatka-2.5.4
• Perl-5.8.8
• Python-3.4
• Seda-4.1.5
• Smoła-1.22
• Informacje tekstowe-4.7
• Xz-5.0.0
Ważny
Zauważ, że wspomniane powyżej dowiązania symboliczne są wymagane do zbudowania systemu LFS przy użyciu instrukcji zawartych w tej książce. Dowiązania symboliczne wskazujące na inne oprogramowanie (takie jak myślnik, mawk itp.) mogą działać, ale nie są testowane ani obsługiwane przez zespół programistów LFS i mogą wymagać odstępstwa od instrukcji lub dodatkowych poprawek do niektórych pakietów.
Ważny
Zauważ, że wspomniane powyżej dowiązania symboliczne są wymagane do zbudowania systemu LFS przy użyciu instrukcji zawartych w tej książce. Dowiązania symboliczne wskazujące na inne oprogramowanie (takie jak myślnik, mawk itp.) mogą działać, ale nie są testowane ani obsługiwane przez zespół programistów LFS i mogą wymagać odstępstwa od instrukcji lub dodatkowych poprawek do niektórych pakietów.
echo Elif [
echo jeszcze
przegapić
fi
echo Elif [
echo jeszcze
przegapić
fi
-n "Coreutils: "; chown --wersja | głowa -n1 | cięcie
-n "Coreutils: "; chown --wersja | głowa -n1 | cięcie
--wersja
--wersja
--wersja
--wersja
--wersja
--wersja
|
|
|
|
|
|
głowa
głowa głowa
głowa
głowa głowa
-n1
-n1
-n1
-n1
-n1
-n1
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; Następnie
awk to `/usr/bin/awk --wersja | głowa -n1`
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; Następnie
awk to `/usr/bin/awk --wersja | głowa -n1`
"nie znaleziono awk"
"nie znaleziono awk"
Aby sprawdzić, czy system hosta ma wszystkie odpowiednie wersje i możliwość kompilowania programów, uruchom następujące polecenie:
cat > wersja-check.sh << "EOF"
#! / bin / bash
# Prosty skrypt wyświetlający listę numerów wersji krytycznych narzędzi programistycznych export LC_ALL=C
bash --wersja | głowa -n1 | cut -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo „BŁĄD: /bin/sh nie wskazuje na bash” usuwa MYSH
echo -n "Binuty: "; ld --wersja | głowa -n1 | wytnij -d" " -f3- bizon --wersja | głowa -n1
if [-h /usr/bin/yacc]; Następnie
cat > wersja-check.sh << "EOF"
#! / bin / bash
# Prosty skrypt wyświetlający listę numerów wersji krytycznych narzędzi programistycznych export LC_ALL=C
bash --wersja | głowa -n1 | cut -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo „BŁĄD: /bin/sh nie wskazuje na bash” usuwa MYSH
echo -n "Binuty: "; ld --wersja | głowa -n1 | wytnij -d" " -f3- bizon --wersja | głowa -n1
if [-h /usr/bin/yacc]; Następnie
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; Następnie
yacc to `/usr/bin/yacc --wersja | głowa -n1`
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; Następnie
yacc to `/usr/bin/yacc --wersja | głowa -n1`
„nie znaleziono yac”
bzip2 --version 2>&1 < /dev/null | głowa -n1 | wytnij -d" " echo
diff
znajdź gawk
-f1,6-
-d")" -f2
„nie znaleziono yac”
bzip2 --version 2>&1 < /dev/null | głowa -n1 | wytnij -d" " echo
diff
znajdź gawk
if [ -h /usr/bin/awk ]; Następnie
if [ -h /usr/bin/awk ]; Następnie
echo Elif [
echo jeszcze
przegapić
fi
echo Elif [
echo jeszcze
przegapić
fi
gcc --wersja | głowa -n1 g++ --wersja | głowa -n1
ldd --wersja | głowa -n1 | cut -d" " -f2- # wersja glibc grep --version | głowa -n1
gzip --wersja | head -n1 kot /proc/wersja
m4 --wersja | head -n1 make --version | head -n1 poprawka --wersja | head -n1 echo Perl `perl -V:wersja` python3 --version
sed --wersja | head -n1 tar --wersja | głowa -n1
makeinfo --wersja | head -n1 # texinfo wersja xz --wersja | głowa -n1
gcc --wersja | głowa -n1 g++ --wersja | głowa -n1
ldd --wersja | głowa -n1 | cut -d" " -f2- # wersja glibc grep --version | głowa -n1
gzip --wersja | head -n1 kot /proc/wersja
m4 --wersja | head -n1 make --version | head -n1 poprawka --wersja | head -n1 echo Perl `perl -V:wersja` python3 --version
sed --wersja | head -n1 tar --wersja | głowa -n1
makeinfo --wersja | head -n1 # texinfo wersja xz --wersja | głowa -n1
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c if [ -x dummy ]
następnie echo „Kompilacja g++ OK”;
w przeciwnym razie echo „Kompilacja g++ nie powiodła się”; fi rm -f dummy.c dummy
EOF
bash sprawdzanie wersji.sh
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c if [ -x dummy ]
następnie echo „Kompilacja g++ OK”;
w przeciwnym razie echo „Kompilacja g++ nie powiodła się”; fi rm -f dummy.c dummy
EOF
bash sprawdzanie wersji.sh