OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

6.9.1. تركيب جليبك


ملاحظات

نظام بناء Glibc قائم بذاته وسيتم تثبيته بشكل مثالي ، على الرغم من أن ملف مواصفات المحول البرمجي والرابط لا يزالان يشيران إلى /أدوات. لا يمكن تعديل المواصفات والرابط قبل تثبيت Glibc لأن اختبارات Glibc autoconf ستعطي نتائج خاطئة وتهزم هدف تحقيق بنية نظيفة.

ملاحظات

نظام بناء Glibc قائم بذاته وسيتم تثبيته بشكل مثالي ، على الرغم من أن ملف مواصفات المحول البرمجي والرابط لا يزالان يشيران إلى /أدوات. لا يمكن تعديل المواصفات والرابط قبل تثبيت Glibc لأن اختبارات Glibc autoconf ستعطي نتائج خاطئة وتهزم هدف تحقيق بنية نظيفة.

تستخدم بعض برامج Glibc البرامج غير المتوافقة مع FHS / فار / ديسيبل دليل لتخزين بيانات وقت التشغيل الخاصة بهم. قم بتطبيق التصحيح التالي لجعل هذه البرامج تخزن بيانات وقت التشغيل الخاصة بها في المواقع المتوافقة مع FHS:


التصحيح -Np1 -i ../glibc-2.30-fhs-1.patch

التصحيح -Np1 -i ../glibc-2.30-fhs-1.patch


إصلاح مشكلة مقدمة في نواة Linux-5.2:


sed -i '/asm.socket.h/a# include \ sysdeps / unix / sysv / linux / bits / socket.h

sed -i '/asm.socket.h/a# include \ sysdeps / unix / sysv / linux / bits / socket.h


صورة

-sfv

-sfv

-sfv

-sfv

../lib/ld-linux-x86-64.so.2 / lib64

../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

../lib/ld-linux-x86-64.so.2 / lib64

../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

قم بإنشاء ارتباط رمزي للتوافق مع LSB. بالإضافة إلى ذلك ، بالنسبة إلى x86_64 ، قم بإنشاء ارتباط رمزي للتوافق مطلوب حتى يعمل المُحمل الديناميكي بشكل صحيح:


حالة $ (uname -m) في

حالة $ (uname -m) في


أنا؟ 86) ln

;;

x86_64) لن

ln

;;

ESAC

-sfv

ld-linux.so.2 /lib/ld-lsb.so.3

أنا؟ 86) ln

;;

x86_64) لن

ln

;;

ESAC

توصي وثائق Glibc ببناء Glibc في دليل إنشاء مخصص:


mkdir -v بناء قرص مضغوط

mkdir -v بناء قرص مضغوط


صورة

تحضير Glibc للتجميع:


CC = "gcc -ffile-prefix-map = / tools = / usr" \

../configure --refix = / usr

--تعطيل - werror

- تمكين النواة = 3.2

- واقي قابل للتمكين = قوي

- with-headers = / usr / include libc_cv_slibdir = / lib

\

\

\

\

\

CC = "gcc -ffile-prefix-map = / tools = / usr" \

../configure --refix = / usr

--تعطيل - werror

- تمكين النواة = 3.2

- واقي قابل للتمكين = قوي

- with-headers = / usr / include libc_cv_slibdir = / lib


معنى الخيارات ومعلمات التكوين الجديدة:


CC = "gcc -ffile-prefix-map = / tools = / usr"

اجعل مجلس التعاون الخليجي يسجل أي إشارات إلى الملفات الموجودة في / الأدوات نتيجة التجميع كما لو كانت الملفات موجودة في / usr. هذا يتجنب إدخال مسارات غير صالحة في رموز التصحيح.

--تعطيل - werror

يقوم هذا الخيار بتعطيل الخيار -Wirt الذي تم تمريره إلى GCC. هذا ضروري لتشغيل مجموعة الاختبار.

- واقي قابل للتمكين = قوي

يعمل هذا الخيار على زيادة أمان النظام عن طريق إضافة تعليمات برمجية إضافية للتحقق من وجود فائض في المخزن المؤقت ، مثل هجمات تحطيم المكدس.

- with-headers = / usr / include

يخبر هذا الخيار نظام الإنشاء بمكان العثور على رؤوس kernel API. بشكل افتراضي ، يتم البحث عن هذه الرؤوس

/ أدوات / تشمل.

libc_cv_slibdir = / lib

يحدد هذا المتغير المكتبة الصحيحة لجميع الأنظمة. لا نريد استخدام lib64.

تجميع الحزمة:


جعل

جعل


مهم

في هذا القسم ، تعتبر مجموعة الاختبار لـ Glibc حرجة. لا تخطيه تحت أي ظرف من الظروف.

مهم

في هذا القسم ، تعتبر مجموعة الاختبار لـ Glibc حرجة. لا تخطيه تحت أي ظرف من الظروف.


صورة

صورة

صورة

/ ليب ؛؛

/ ليب ؛؛

-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ؛؛

-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ؛؛

عموما بعض الاختبارات لا تجتاز. عادةً ما يكون من الآمن تجاهل حالات فشل الاختبار المدرجة أدناه.


حالة $ (uname i؟ 86) ln x86_64) ln

ESAC

-m) في

-sfnv $ PWD / elf / ld-linux.so.2

حالة $ (uname i؟ 86) ln x86_64) ln

ESAC


ملاحظات

الارتباط الرمزي أعلاه ضروري لإجراء الاختبارات في هذه المرحلة من البناء في بيئة الكروت. سيتم الكتابة فوقه في مرحلة التثبيت أدناه.

ملاحظات

الارتباط الرمزي أعلاه ضروري لإجراء الاختبارات في هذه المرحلة من البناء في بيئة الكروت. سيتم الكتابة فوقه في مرحلة التثبيت أدناه.


تحقق

تحقق

قد ترى بعض الإخفاقات في الاختبار. تعتمد مجموعة اختبار Glibc إلى حد ما على النظام المضيف. هذه قائمة بالمشكلات الأكثر شيوعًا التي تظهر لبعض إصدارات LFS:

متفرقات / tst-ttyname من المعروف أنه فشل في بيئة Chroot LFS.

إنت / tst-idna_name_classify من المعروف أنه فشل في بيئة Chroot LFS.

posix / tst-getaddrinfo4 و posix / tst-getaddrinfo5 قد تفشل في بعض البنى.

• إن nss / tst-nss-files-hosts-multi قد يفشل الاختبار لأسباب لم يتم تحديدها.


• إن RT / tst-cputimer {1,2,3،XNUMX،XNUMX} تعتمد الاختبارات على نواة النظام المضيف. من المعروف أن النوى 4.14.91-4.14.96 و 4.19.13-4.19.18 و 4.20.0–4.20.5 تسبب فشل هذه الاختبارات.

• تفشل اختبارات الرياضيات أحيانًا عند التشغيل على أنظمة لا تكون فيها وحدة المعالجة المركزية معالج Intel أو AMD جديدًا نسبيًا.

على الرغم من أنها رسالة غير مؤذية ، إلا أن مرحلة تثبيت Glibc ستشتكي من عدم وجود /etc/ld.so.conf. منع هذا التحذير من خلال:


المس /etc/ld.so.conf

المس /etc/ld.so.conf


أصلح ملف Makefile الذي تم إنشاؤه لتخطي فحص سلامة غير ضروري والذي فشل في بيئة LFS الجزئية:


sed '/ test-Installation / s @ $ (PERL)echo لا يعمل @' -i ../Makefile

sed '/ test-Installation / s @ $ (PERL)echo لا يعمل @' -i ../Makefile


قم بتثبيت الحزمة:


جعل تثبيت

جعل تثبيت


قم بتثبيت ملف التكوين ودليل وقت التشغيل لـ nscd:


cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd

cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd


بعد ذلك ، قم بتثبيت اللغات التي يمكن أن تجعل النظام يستجيب بلغة مختلفة. ليست هناك حاجة إلى أي من اللغات ، ولكن إذا كان بعضها مفقودًا ، فإن مجموعات الاختبار للحزم المستقبلية ستتخطى حالات الاختبار المهمة.


يمكن تثبيت اللغات الفردية باستخدام امتداد localdef برنامج. على سبيل المثال ، الأول localdef الأمر أدناه يجمع بين / usr / share / i18n / locales / cs_CZ تعريف لغة لغة مستقلة مع حرف / usr / share / i18n / charmaps / UTF-8.gz تعريف charmap وإلحاق النتيجة بملف / usr / lib / locale / locale- أرشيف ملف. ستقوم الإرشادات التالية بتثبيت الحد الأدنى من مجموعة اللغات اللازمة للتغطية المثلى للاختبارات:


صورة

mkdir -pv / usr / lib / locale

localedef -i POSIX -f UTF-8 C.UTF-8 2> / dev / null || مترجم صحيح -i cs_CZ -f UTF-8 cs_CZ.UTF-8

localedef -i de_DE -f ISO-8859-1 de_DE

localedef -i de_DE @ euro -f ISO-8859-15 de_DE @ euro localedef -i de_DE -f UTF-8 de_DE.UTF-8

localedef -i el_GR -f ISO-8859-7 el_GR localedef -i en_GB -f UTF-8 en_GB.UTF-8 localedef -i en_HK -f ISO-8859-1 ar_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i en_US -f UTF-8 en_US.UTF-8 localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef - أنا fr_FR -f ISO-8859-1 fr_FR

localedef -i fr_FR @ euro -f ISO-8859-15 fr_FR @ euro localedef -i fr_FR -f UTF-8 fr_FR.UTF-8

localedef -i it_IT -f ISO-8859-1 it_IT localedef -i it_IT -f UTF-8 it_IT.UTF-8 localedef -i ja_JP -f EUC-JP ja_JP

localedef -i ja_JP -f SHIFT_JIS ja_JP.SIJS 2> / dev / null || الترجمة الصحيحة - i ja_JP -f UTF-8 ja_JP.UTF-8

localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 localedef -i zh_CN -f GB18030 zh_CN .GB18030

localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS


بالإضافة إلى ذلك ، قم بتثبيت الإعدادات المحلية لبلدك ولغتك ومجموعة الأحرف الخاصة بك.

بدلاً من ذلك ، قم بتثبيت كافة اللغات المدرجة في ملف glibc-2.30 / localedata / المدعومة ملف (يتضمن كل لغة مذكورة أعلاه وغيرها الكثير) مرة واحدة باستخدام الأمر التالي الذي يستغرق وقتًا طويلاً:


إنشاء localedata / install-locales

إنشاء localedata / install-locales


صورة

ثم استخدم ملف localdef أمر لإنشاء وتثبيت لغات غير مدرجة في ملف glibc-2.30 / localedata / المدعومة ملف في حالة غير محتملة كنت في حاجة إليها.


ملاحظات

يستخدم Glibc الآن libidn2 عند حل أسماء النطاقات الدولية. هذه تبعية وقت التشغيل. إذا كانت هذه الإمكانية مطلوبة ، فإن الإرشادات الخاصة بتثبيت libidn2 موجودة في صفحة BLFS libidn2.

ملاحظات

يستخدم Glibc الآن libidn2 عند حل أسماء النطاقات الدولية. هذه تبعية وقت التشغيل. إذا كانت هذه الإمكانية مطلوبة ، فإن الإرشادات الخاصة بتثبيت libidn2 موجودة في صفحة BLFS libidn2.


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: