<ก่อนหน้านี้ | Contents | ถัดไป>
2.2. ความต้องการของระบบโฮสต์
ระบบโฮสต์ของคุณควรมีซอฟต์แวร์ต่อไปนี้พร้อมระบุเวอร์ชันขั้นต่ำ นี่ไม่ควรเป็นปัญหาสำหรับลีนุกซ์รุ่นใหม่ล่าสุด. นอกจากนี้ โปรดทราบด้วยว่าการแจกแจงจำนวนมากจะวางส่วนหัวของซอฟต์แวร์ไว้ในแพ็คเกจที่แยกจากกัน ซึ่งมักจะอยู่ในรูปของ “ -devel” หรือ “ -dev”. อย่าลืมติดตั้งสิ่งเหล่านั้นหากการแจกจ่ายของคุณมีให้
เวอร์ชันก่อนหน้าของแพ็คเกจซอฟต์แวร์ในรายการอาจใช้งานได้ แต่ยังไม่ได้รับการทดสอบ
• ทุบตี-3.2 (/bin/sh ควรเป็นลิงก์สัญลักษณ์หรือฮาร์ดลิงก์เพื่อทุบตี)
• ไบนูทิล-2.25 (ไม่แนะนำให้ใช้เวอร์ชันที่มากกว่า 2.32 เนื่องจากยังไม่ได้ทดสอบ)
• กระทิง-2.7 (/usr/bin/yacc ควรเป็นลิงก์ไปยังวัวกระทิงหรือสคริปต์ขนาดเล็กที่ดำเนินการกระทิง)
• Bzip2-1.0.4
• Coreutils-6.9
• ดิฟฟูทิลส์-2.8.1
• Findutils-4.2.31
• จ้อง-4.0.1 (/usr/bin/awk ควรเป็นลิงก์ไปยัง gawk)
• GCC-6.2 รวมถึงคอมไพเลอร์ C++ g ++ (ไม่แนะนำให้ใช้เวอร์ชันที่มากกว่า 9.2.0 เนื่องจากยังไม่ได้ทดสอบ)
• กลิ๊บซี-2.11 (ไม่แนะนำให้ใช้เวอร์ชันที่มากกว่า 2.30 เนื่องจากยังไม่ได้ทดสอบ)
• เกรป-2.5.1a
• Gzip-1.3.12
• ลินุกซ์เคอร์เนล-3.2
เหตุผลสำหรับข้อกำหนดเวอร์ชันเคอร์เนลคือเราระบุเวอร์ชันนั้นเมื่อสร้าง glibc ในบทที่ 6 ตามคำแนะนำของนักพัฒนา มันเป็นสิ่งจำเป็นโดย udev
หากเคอร์เนลโฮสต์เก่ากว่า 3.2 คุณจะต้องแทนที่เคอร์เนลด้วยเวอร์ชันล่าสุด มีสองวิธีที่คุณสามารถทำได้เกี่ยวกับเรื่องนี้ ขั้นแรก ให้ดูว่าผู้จำหน่าย Linux ของคุณมีแพ็คเกจเคอร์เนล 3.2 หรือใหม่กว่าหรือไม่ ถ้าเป็นเช่นนั้น คุณอาจต้องการติดตั้ง หากผู้จำหน่ายของคุณไม่มีแพ็คเกจเคอร์เนลที่ยอมรับได้ หรือคุณไม่ต้องการ
ติดตั้งคุณสามารถคอมไพล์เคอร์เนลได้ด้วยตัวเอง คำแนะนำสำหรับการรวบรวมเคอร์เนลและการกำหนดค่าตัวโหลดการบูต (สมมติว่าโฮสต์ใช้ GRUB) จะอยู่ในบทที่ 8
• M4-1.4.10
• โฉม-4.0
• แพตช์-2.5.4
• เพิร์ล-5.8.8
• ไพธอน-3.4
• เซด-4.1.5
• ทาร์ -1.22
• เท็กซัสอินโฟ-4.7
• Xz-5.0.0
สำคัญ
โปรดทราบว่าต้องใช้ symlink ที่กล่าวถึงข้างต้นเพื่อสร้างระบบ LFS โดยใช้คำแนะนำที่มีอยู่ในหนังสือเล่มนี้ Symlinks ที่ชี้ไปที่ซอฟต์แวร์อื่น (เช่น dash, mawk เป็นต้น) อาจใช้งานได้ แต่ไม่ได้รับการทดสอบหรือสนับสนุนโดยทีมพัฒนา LFS และอาจต้องมีการเบี่ยงเบนจากคำแนะนำหรือแพตช์เพิ่มเติมสำหรับบางแพ็คเกจ
สำคัญ
โปรดทราบว่าต้องใช้ symlink ที่กล่าวถึงข้างต้นเพื่อสร้างระบบ LFS โดยใช้คำแนะนำที่มีอยู่ในหนังสือเล่มนี้ Symlinks ที่ชี้ไปที่ซอฟต์แวร์อื่น (เช่น dash, mawk เป็นต้น) อาจใช้งานได้ แต่ไม่ได้รับการทดสอบหรือสนับสนุนโดยทีมพัฒนา LFS และอาจต้องมีการเบี่ยงเบนจากคำแนะนำหรือแพตช์เพิ่มเติมสำหรับบางแพ็คเกจ
ก้อง เอลลิฟ [
ก้อง อื่น
เสียงสะท้อน
fi
ก้อง เอลลิฟ [
ก้อง อื่น
เสียงสะท้อน
fi
-n "Coreutils: "; chown --version | หัว -n1 | ตัด
-n "Coreutils: "; 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 / ทุบตี
# สคริปต์ง่าย ๆ เพื่อแสดงหมายเลขเวอร์ชันของเครื่องมือการพัฒนาที่สำคัญ export LC_ALL=C
bash --version | หัว -n1 | ตัด -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "ข้อผิดพลาด: /bin/sh ไม่ได้ชี้ไปที่ bash" ยกเลิกการตั้งค่า MYSH
echo -n "ไบนูทิลส์: "; ld --version | หัว -n1 | ตัด -d" " -f3- กระทิง --version | หัว -n1
ถ้า [ -h /usr/bin/yacc ]; แล้ว
cat > version-check.sh << "EOF"
#! / bin / ทุบตี
# สคริปต์ง่าย ๆ เพื่อแสดงหมายเลขเวอร์ชันของเครื่องมือการพัฒนาที่สำคัญ export LC_ALL=C
bash --version | หัว -n1 | ตัด -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "ข้อผิดพลาด: /bin/sh ไม่ได้ชี้ไปที่ bash" ยกเลิกการตั้งค่า MYSH
echo -n "ไบนูทิลส์: "; ld --version | หัว -n1 | ตัด -d" " -f3- กระทิง --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" " echo
diff
หา gawk
-f1,6-
-d")" -f2
"ไม่พบ yacc"
bzip2 --version 2>&1 </dev/null | หัว -n1 | ตัด -d" " echo
diff
หา gawk
ถ้า [ -h /usr/bin/awk ]; แล้ว
ถ้า [ -h /usr/bin/awk ]; แล้ว
ก้อง เอลลิฟ [
ก้อง อื่น
เสียงสะท้อน
fi
ก้อง เอลลิฟ [
ก้อง อื่น
เสียงสะท้อน
fi
gcc --version | head -n1 g++ --version | หัว -n1
ldd --version | หัว -n1 | cut -d" " -f2- # glibc รุ่น grep --version | หัว -n1
gzip --version | หัว -n1 cat /proc/version
m4 --รุ่น | head -n1 make --version | หัว -n1 แพทช์ --version | head -n1 echo Perl `perl -V:version' python3 --version
sed --version | head -n1 tar --version | หัว -n1
makeinfo --รุ่น | head -n1 # texinfo รุ่น xz --version | หัว -n1
gcc --version | head -n1 g++ --version | หัว -n1
ldd --version | หัว -n1 | cut -d" " -f2- # glibc รุ่น grep --version | หัว -n1
gzip --version | หัว -n1 cat /proc/version
m4 --รุ่น | head -n1 make --version | หัว -n1 แพทช์ --version | head -n1 echo Perl `perl -V:version' python3 --version
sed --version | head -n1 tar --version | หัว -n1
makeinfo --รุ่น | head -n1 # texinfo รุ่น xz --version | หัว -n1
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c if [ -x dummy ]
จากนั้น echo "การคอมไพล์ g++ ตกลง";
อื่น echo "การคอมไพล์ g++ ล้มเหลว"; fi rm -f dummy.c dummy
EOF
ทุบตี version-check.sh
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c if [ -x dummy ]
จากนั้น echo "การคอมไพล์ g++ ตกลง";
อื่น echo "การคอมไพล์ g++ ล้มเหลว"; fi rm -f dummy.c dummy
EOF
ทุบตี version-check.sh