2.2. ຄວາມຕ້ອງການລະບົບເຈົ້າພາບ
ລະບົບໂຮດຂອງທ່ານຄວນຈະມີຊອບແວຕໍ່ໄປນີ້ທີ່ມີສະບັບຕໍາ່ສຸດທີ່ລະບຸໄວ້. ນີ້ບໍ່ຄວນເປັນບັນຫາສໍາລັບການແຈກຢາຍ Linux ທີ່ທັນສະໄຫມທີ່ສຸດ. ໃຫ້ສັງເກດວ່າການແຈກຢາຍຈໍານວນຫຼາຍຈະວາງສ່ວນຫົວຂອງຊອບແວເຂົ້າໄປໃນຊຸດແຍກຕ່າງຫາກ, ເລື້ອຍໆໃນຮູບແບບຂອງ " - ການພັດທະນາ" ຫຼື " - dev”. ໃຫ້ແນ່ໃຈວ່າການຕິດຕັ້ງເຫຼົ່ານັ້ນຖ້າການແຈກຢາຍຂອງເຈົ້າໃຫ້ພວກມັນ.
ຊຸດຊອບແວທີ່ລະບຸໄວ້ກ່ອນໜ້ານີ້ອາດຈະເຮັດວຽກໄດ້, ແຕ່ຍັງບໍ່ທັນໄດ້ທົດສອບເທື່ອ.
• bash-3.2 (/bin/sh ຄວນເປັນສັນຍາລັກ ຫຼືການເຊື່ອມຕໍ່ຍາກກັບ bash)
• Binutils-2.25 (ລຸ້ນໃຫຍ່ກວ່າ 2.32 ບໍ່ໄດ້ແນະນໍາເນື່ອງຈາກວ່າພວກເຂົາເຈົ້າບໍ່ໄດ້ຮັບການທົດສອບ)
• Bison-2.7 (/usr/bin/yacc ຄວນເປັນຕົວເຊື່ອມຕໍ່ຫາ bison ຫຼື script ນ້ອຍທີ່ປະຕິບັດ bison)
• Bzip2-1.0.4
• Coreutils-6.9
• Diffutils-2.8.1
• Findutils-4.2.31
• Gawk-4.0.1 (/usr/bin/awk ຄວນເປັນລິ້ງໄປຫາ gawk)
• GCC-6.2 ລວມທັງ C++ compiler, g ++ (ລຸ້ນໃຫຍ່ກວ່າ 9.2.0 ບໍ່ໄດ້ແນະນໍາເນື່ອງຈາກວ່າພວກເຂົາເຈົ້າບໍ່ໄດ້ຮັບການທົດສອບ)
• Glibc-2.11 (ລຸ້ນໃຫຍ່ກວ່າ 2.30 ບໍ່ໄດ້ແນະນໍາເນື່ອງຈາກວ່າພວກເຂົາເຈົ້າບໍ່ໄດ້ຮັບການທົດສອບ)
• Grep-2.5.1a
• Gzip-1.3.12
• Linux Kernel-3.2
ເຫດຜົນສໍາລັບຄວາມຕ້ອງການສະບັບ kernel ແມ່ນວ່າພວກເຮົາກໍານົດສະບັບນັ້ນເມື່ອສ້າງ glibc ໃນບົດທີ 6 ຕາມຄໍາແນະນໍາຂອງຜູ້ພັດທະນາ. ມັນຍັງຕ້ອງການໂດຍ udev.
ຖ້າ host kernel ແມ່ນໄວກວ່າ 3.2, ທ່ານ ຈຳ ເປັນຕ້ອງປ່ຽນ kernel ດ້ວຍລຸ້ນທີ່ທັນສະ ໄໝ ກວ່າເກົ່າ. ມີສອງວິທີທີ່ທ່ານສາມາດໄປກ່ຽວກັບເລື່ອງນີ້. ທໍາອິດ, ເບິ່ງວ່າຜູ້ຂາຍ Linux ຂອງທ່ານສະຫນອງຊຸດແກ່ນ 3.2 ຫຼືຫຼັງຈາກນັ້ນ. ຖ້າເປັນດັ່ງນັ້ນ, ທ່ານອາດຈະຕ້ອງການຕິດຕັ້ງມັນ. ຖ້າຜູ້ຂາຍຂອງທ່ານບໍ່ສະເຫນີຊຸດແກ່ນເມັດທີ່ຍອມຮັບໄດ້, ຫຼືທ່ານບໍ່ຕ້ອງການ
ຕິດຕັ້ງມັນ, ທ່ານສາມາດລວບລວມ kernel ຕົວທ່ານເອງ. ຄໍາແນະນໍາສໍາລັບການລວບລວມ kernel ແລະກໍາຫນົດຄ່າ boot loader (ສົມມຸດວ່າເຈົ້າພາບໃຊ້ GRUB) ແມ່ນຢູ່ໃນບົດທີ 8.
• M4-1.4.10
• ເຮັດໃຫ້-4.0
• Patch-2.5.4
• Perl-5.8.8
• Python-3.4
• Sed-4.1.5
• Tar-1.22
• Texinfo-4.7
• Xz-5.0.0
ທີ່ສໍາຄັນ
ໃຫ້ສັງເກດວ່າ symlinks ທີ່ໄດ້ກ່າວມາຂ້າງເທິງແມ່ນຕ້ອງການເພື່ອສ້າງລະບົບ LFS ໂດຍໃຊ້ຄໍາແນະນໍາທີ່ມີຢູ່ໃນປື້ມນີ້. Symlinks ທີ່ຊີ້ໃຫ້ເຫັນເຖິງຊອບແວອື່ນໆ (ເຊັ່ນ dash, mawk, ແລະອື່ນໆ) ອາດຈະເຮັດວຽກ, ແຕ່ບໍ່ໄດ້ຮັບການທົດສອບຫຼືສະຫນັບສະຫນູນໂດຍທີມງານພັດທະນາ LFS, ແລະອາດຈະຮຽກຮ້ອງໃຫ້ມີການ deviation ຈາກຄໍາແນະນໍາຫຼື patches ເພີ່ມເຕີມຕໍ່ກັບບາງແພັກເກັດ.
ທີ່ສໍາຄັນ
ໃຫ້ສັງເກດວ່າ symlinks ທີ່ໄດ້ກ່າວມາຂ້າງເທິງແມ່ນຕ້ອງການເພື່ອສ້າງລະບົບ LFS ໂດຍໃຊ້ຄໍາແນະນໍາທີ່ມີຢູ່ໃນປື້ມນີ້. Symlinks ທີ່ຊີ້ໃຫ້ເຫັນເຖິງຊອບແວອື່ນໆ (ເຊັ່ນ dash, mawk, ແລະອື່ນໆ) ອາດຈະເຮັດວຽກ, ແຕ່ບໍ່ໄດ້ຮັບການທົດສອບຫຼືສະຫນັບສະຫນູນໂດຍທີມງານພັດທະນາ LFS, ແລະອາດຈະຮຽກຮ້ອງໃຫ້ມີການ deviation ຈາກຄໍາແນະນໍາຫຼື patches ເພີ່ມເຕີມຕໍ່ກັບບາງແພັກເກັດ.
echo elif [
ສະທ້ອນອີກ
echo
fi
echo elif [
ສະທ້ອນອີກ
echo
fi
-n "ຫຼັກ: "; chown --version | ຫົວ -n1 | ຕັດ
-n "ຫຼັກ: "; chown --version | ຫົວ -n1 | ຕັດ
- ການປ່ຽນແປງ
- ການປ່ຽນແປງ
- ການປ່ຽນແປງ
- ການປ່ຽນແປງ
- ການປ່ຽນແປງ
- ການປ່ຽນແປງ
|
|
|
|
|
|
ຫົວຫນ້າ
ຫົວຫົວ
ຫົວຫນ້າ
ຫົວຫົວ
-n1
-n1
-n1
-n1
-n1
-n1
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; ແລ້ວ
awk ແມ່ນ `/usr/bin/awk --version | ຫົວ -n1`
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; ແລ້ວ
awk ແມ່ນ `/usr/bin/awk --version | ຫົວ -n1`
"ບໍ່ພົບ awk"
"ບໍ່ພົບ awk"
ເພື່ອເບິ່ງວ່າລະບົບໂຮດຂອງເຈົ້າມີທຸກລຸ້ນທີ່ເຫມາະສົມ, ແລະຄວາມສາມາດໃນການລວບລວມໂປຼແກຼມ, ດໍາເນີນການຕໍ່ໄປນີ້:
cat > version-check.sh << "EOF"
#! / bin / bash
# ສະຄຣິບງ່າຍໆເພື່ອບອກຕົວເລກເວີຊັນຂອງເຄື່ອງມືພັດທະນາທີ່ສໍາຄັນສົ່ງອອກ LC_ALL=C
bash --version | ຫົວ -n1 | ຕັດ -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
ສຽງສະທ້ອນ "/bin/sh -> $MYSH"
ສຽງສະທ້ອນ $MYSH | grep -q bash || echo "error: /bin/sh ບໍ່ຊີ້ໃຫ້ເຫັນເຖິງ bash" ບໍ່ໄດ້ຕັ້ງ MYSH
echo -n "Binutils: "; ld --version | ຫົວ -n1 | ຕັດ -d" " -f3- bison --version | ຫົວ -n1
ຖ້າ [ -h /usr/bin/yacc ]; ແລ້ວ
cat > version-check.sh << "EOF"
#! / bin / bash
# ສະຄຣິບງ່າຍໆເພື່ອບອກຕົວເລກເວີຊັນຂອງເຄື່ອງມືພັດທະນາທີ່ສໍາຄັນສົ່ງອອກ LC_ALL=C
bash --version | ຫົວ -n1 | ຕັດ -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
ສຽງສະທ້ອນ "/bin/sh -> $MYSH"
ສຽງສະທ້ອນ $MYSH | grep -q bash || echo "error: /bin/sh ບໍ່ຊີ້ໃຫ້ເຫັນເຖິງ bash" ບໍ່ໄດ້ຕັ້ງ MYSH
echo -n "Binutils: "; ld --version | ຫົວ -n1 | ຕັດ -d" " -f3- bison --version | ຫົວ -n1
ຖ້າ [ -h /usr/bin/yacc ]; ແລ້ວ
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; ແລ້ວ
yacc ແມ່ນ `/usr/bin/yacc --version | ຫົວ -n1`
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; ແລ້ວ
yacc ແມ່ນ `/usr/bin/yacc --version | ຫົວ -n1`
"ບໍ່ພົບ yacc"
bzip2 --version 2>&1 < /dev/null | ຫົວ -n1 | ຕັດ -d" "ແອັກໂກ້
diff
ຊອກຫາ gawk
-f1,6-
-d")" -f2
"ບໍ່ພົບ yacc"
bzip2 --version 2>&1 < /dev/null | ຫົວ -n1 | ຕັດ -d" "ແອັກໂກ້
diff
ຊອກຫາ gawk
ຖ້າ [ -h /usr/bin/awk ]; ແລ້ວ
ຖ້າ [ -h /usr/bin/awk ]; ແລ້ວ
echo elif [
ສະທ້ອນອີກ
echo
fi
echo elif [
ສະທ້ອນອີກ
echo
fi
gcc --version | head -n1 g++ --version | ຫົວ -n1
ldd --version | ຫົວ -n1 | cut -d" " -f2- # glibc version grep --version | ຫົວ -n1
gzip --ເວີຊັ່ນ | head -n1 cat /proc/version
m4 --version | head -n1 ເຮັດໃຫ້ --version | head -n1 patch --version | head -n1 echo Perl `perl -V:version` python3 --version
sed --version | head -n1 tar --version | ຫົວ -n1
makeinfo --version | head -n1 # texinfo version xz --version | ຫົວ -n1
gcc --version | head -n1 g++ --version | ຫົວ -n1
ldd --version | ຫົວ -n1 | cut -d" " -f2- # glibc version grep --version | ຫົວ -n1
gzip --ເວີຊັ່ນ | head -n1 cat /proc/version
m4 --version | head -n1 ເຮັດໃຫ້ --version | head -n1 patch --version | head -n1 echo Perl `perl -V:version` python3 --version
sed --version | head -n1 tar --version | ຫົວ -n1
makeinfo --version | head -n1 # texinfo version xz --version | ຫົວ -n1
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c ຖ້າ [ -x dummy ]
ຈາກນັ້ນ echo "g++ compilation OK";
else echo "g++ compilation ລົ້ມເຫລວ"; fi rm -f dummy.c dummy
EOF
bash version-check.sh
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c ຖ້າ [ -x dummy ]
ຈາກນັ້ນ echo "g++ compilation OK";
else echo "g++ compilation ລົ້ມເຫລວ"; fi rm -f dummy.c dummy
EOF
bash version-check.sh