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 ./ تكوين \
--prefix = / usr \
--enable-no-install-program = kill، الجهوزية
autoreconf -fiv FORCE_UNSAFE_CONFIGURE = 1 ./ تكوين \
--prefix = / usr \
--enable-no-install-program = kill، الجهوزية
معنى خيارات التكوين:
com.autoreconf
يقوم هذا الأمر بتحديث ملفات التكوين التي تم إنشاؤها بما يتوافق مع أحدث إصدار من التشغيل التلقائي.
FORCE_UNSAFE_CONFIGURE = 1
يسمح متغير البيئة هذا بإنشاء الحزمة كمستخدم أساسي.
--enable-no-install-program = kill، الجهوزية
الغرض من رمز التبديل هذا هو منع Coreutils من تثبيت الثنائيات التي سيتم تثبيتها بواسطة الحزم الأخرى لاحقًا.
تجميع الحزمة:
جعل
جعل
تخطي لأسفل إلى "تثبيت الحزمة" إذا لم يكن تشغيل مجموعة الاختبار.
الآن مجموعة الاختبار جاهزة للتشغيل. أولاً ، قم بإجراء الاختبارات التي من المفترض أن يتم تشغيلها كمستخدم جذر:
اجعل NON_ROOT_USERNAME = لا أحد يتحقق من الجذر
اجعل NON_ROOT_USERNAME = لا أحد يتحقق من الجذر
سنجري باقي الاختبارات باسم لا أحد المستعمل. ومع ذلك ، تتطلب بعض الاختبارات أن يكون المستخدم عضوًا في أكثر من مجموعة واحدة. حتى لا يتم تخطي هذه الاختبارات سنضيف مجموعة مؤقتة ونجعل المستخدم لا أحد جزء منه:
صدى "دمية: x: 1000: لا أحد" >> / etc / group
صدى "دمية: x: 1000: لا أحد" >> / etc / group
أصلح بعض الأذونات بحيث يمكن للمستخدم غير الجذر ترجمة الاختبارات وتشغيلها:
chown -Rv لا أحد.
chown -Rv لا أحد.
قم الآن بإجراء الاختبارات. تأكد من أن المسار في ملف su تشمل البيئة / أدوات / بن.
su لا أحد- s / bin / bash \
-c "PATH = $ PATH اجعل RUN_EXPENSIVE_TESTS = فحص نعم"
su لا أحد- s / bin / bash \
-c "PATH = $ PATH اجعل RUN_EXPENSIVE_TESTS = فحص نعم"
من المعروف أن برنامج الاختبار 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 / {false، ln، ls، mkdir، mknod، mv، pwd ، rm} / بن
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 / {false، ln، ls، mkdir، mknod، mv، pwd ، rm} / بن
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 على رئيس, رحلة جميلة, النومو تواصل. كما / البيرة قد لا تكون متاحة أثناء المراحل المبكرة والمتأخرة من التمهيد ، يجب أن تكون هذه الثنائيات على قسم الجذر للحفاظ على امتثال FHS:
mv -v / usr / bin / {head، nice، sleep، touch} / bin
mv -v / usr / bin / {head، nice، sleep، touch} / bin
توثيق