เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

6.54.1. การติดตั้ง Coreutils

POSIX ต้องการให้โปรแกรมจาก Coreutils รู้จักขอบเขตของอักขระอย่างถูกต้องแม้ในโลแคลแบบหลายไบต์ โปรแกรมแก้ไขต่อไปนี้แก้ไขการไม่ปฏิบัติตามข้อกำหนดนี้และจุดบกพร่องอื่น ๆ ที่เกี่ยวข้องกับการทำให้เป็นสากล


แพทช์ -Np1 -i ../coreutils-8.31-i18n-1.patch

แพทช์ -Np1 -i ../coreutils-8.31-i18n-1.patch


หมายเหตุ

ในอดีต พบข้อบกพร่องมากมายในแพตช์นี้ เมื่อรายงานบั๊กใหม่ไปยังผู้ดูแล Coreutils โปรดตรวจสอบก่อนว่าสามารถทำซ้ำได้หากไม่มีแพตช์นี้

หมายเหตุ

ในอดีต พบข้อบกพร่องมากมายในแพตช์นี้ เมื่อรายงานบั๊กใหม่ไปยังผู้ดูแล Coreutils โปรดตรวจสอบก่อนว่าสามารถทำซ้ำได้หากไม่มีแพตช์นี้

ภาพ

ระงับการทดสอบซึ่งในเครื่องบางเครื่องสามารถวนซ้ำได้ตลอดไป:


sed -i '/test.lock/s/^/#/' gnulib-tests/gnulib.mk

sed -i '/test.lock/s/^/#/' gnulib-tests/gnulib.mk

ตอนนี้เตรียม Coreutils สำหรับการรวบรวม:


autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./กำหนดค่า \

--คำนำหน้า=/usr \

--enable-no-install-program=kill,uptime

autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./กำหนดค่า \

--คำนำหน้า=/usr \

--enable-no-install-program=kill,uptime

ความหมายของตัวเลือกการกำหนดค่า:

คอนเฟิร์มอัตโนมัติ

คำสั่งนี้อัพเดตไฟล์การกำหนดค่าที่สร้างขึ้นซึ่งสอดคล้องกับเวอร์ชันล่าสุดของ automake

FORCE_UNSAFE_CONFIGURE=1

ตัวแปรสภาพแวดล้อมนี้อนุญาตให้สร้างแพ็คเกจในฐานะผู้ใช้รูท

--enable-no-install-program=kill,uptime

จุดประสงค์ของสวิตช์นี้คือเพื่อป้องกันไม่ให้ Coreutils ติดตั้งไบนารีที่จะติดตั้งโดยแพ็คเกจอื่นในภายหลัง

รวบรวมแพ็คเกจ:


ทำ

ทำ

ข้ามไปที่ "ติดตั้งแพ็คเกจ" หากไม่ได้เรียกใช้ชุดทดสอบ

ตอนนี้ชุดทดสอบพร้อมที่จะเรียกใช้แล้ว ขั้นแรก ให้รันการทดสอบที่มีขึ้นเพื่อเรียกใช้ในฐานะผู้ใช้ ราก:


ทำให้ NON_ROOT_USERNAME=ไม่มีใครตรวจสอบรูท

ทำให้ NON_ROOT_USERNAME=ไม่มีใครตรวจสอบรูท

เราจะดำเนินการทดสอบที่เหลือในฐานะ ไม่มีใคร ผู้ใช้ อย่างไรก็ตาม การทดสอบบางอย่างกำหนดให้ผู้ใช้เป็นสมาชิกของกลุ่มมากกว่าหนึ่งกลุ่ม เพื่อไม่ให้ข้ามการทดสอบเหล่านี้ เราจะเพิ่มกลุ่มชั่วคราวและสร้างผู้ใช้ ไม่มีใคร ส่วนหนึ่งของมัน:


echo "dummy:x:1000:nobody" >> /etc/group

echo "dummy:x:1000:nobody" >> /etc/group


แก้ไขการอนุญาตบางอย่างเพื่อให้ผู้ใช้ที่ไม่ใช่รูทสามารถคอมไพล์และรันการทดสอบได้:


chown -Rv ไม่มีใคร

chown -Rv ไม่มีใคร

ตอนนี้ทำการทดสอบ ตรวจสอบให้แน่ใจ PATH ใน su สภาพแวดล้อมรวมถึง /tools/bin


su ไม่มีใคร -s /bin/bash \

-c "PATH=$PATH ทำให้ RUN_EXPENSIVE_TESTS=yes ตรวจสอบ"

su ไม่มีใคร -s /bin/bash \

-c "PATH=$PATH ทำให้ RUN_EXPENSIVE_TESTS=yes ตรวจสอบ"

เป็นที่ทราบกันว่าโปรแกรมทดสอบ test-getlogin ล้มเหลวในสภาพแวดล้อมระบบที่สร้างขึ้นบางส่วน เช่น สภาพแวดล้อม chroot ที่นี่ แต่จะผ่านหากเรียกใช้เมื่อสิ้นสุดบทนี้ โปรแกรมทดสอบ tty.sh เป็นที่รู้จักกันว่าล้มเหลว

ลบกลุ่มชั่วคราว:


sed -i '/dummy/d' /etc/group

sed -i '/dummy/d' /etc/group

ติดตั้งแพ็คเกจ:


ให้ติดตั้ง

ให้ติดตั้ง

ย้ายโปรแกรมไปยังตำแหน่งที่กำหนดโดย FHS:


mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin mv -v /usr/bin/{เท็จ,ln,ls,mkdir,mknod,mv, pwd,rm} /bin

mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin mv -v /usr/bin/chroot /usr/sbin

mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is/\"1\"/\"8\"/1 /usr/share/man /man8/chroot.8

mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin mv -v /usr/bin/{เท็จ,ln,ls,mkdir,mknod,mv, pwd,rm} /bin

mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin mv -v /usr/bin/chroot /usr/sbin

mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is/\"1\"/\"8\"/1 /usr/share/man /man8/chroot.8

สคริปต์บางตัวในแพ็คเกจ LFS-Bootscripts ขึ้นอยู่กับ หัว, ดี, นอนหลับและ แตะ. ในขณะที่ / usr อาจไม่พร้อมใช้งานในช่วงเริ่มต้นและช่วงท้ายของการบูท ไบนารีเหล่านั้นต้องอยู่ในพาร์ติชั่นรูทเพื่อรักษาความสอดคล้อง FHS:


mv -v /usr/bin/{หัว,ไนซ์,สลีป,ทัช} /bin

mv -v /usr/bin/{หัว,ไนซ์,สลีป,ทัช} /bin


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: