ربما العديد من مستخدمي GNU/Linux في ضوء المبادرات الحكومية الأخيرة لإنشاء إنترنت "سيادي"، فإننا نشعر بالقلق إزاء هدف حماية أنفسنا في حالة عدم توفر مستودعات توزيعات جنو الشائعة.Linux.
من يقوم بتنزيل المستودعات؟ CentOS, Ubuntu, Debianيقوم بعض الأشخاص ببناء توزيعاتهم الخاصة بناءً على التوزيعات الموجودة، بينما يستعين آخرون بكتب LFS (Linux من الصفر) و BLFS (ما وراء) Linux بدأ (من الصفر) بالفعل في تجميع توزيعاته من التعليمات البرمجية المصدرية، لأنه يعتقد أنه في ظل ظروف الإنترنت "السائد"، ستحدث هجمات القرصنة وأوبئة الفيروسات وتسريبات البيانات بشكل حتمي، وستصبح الملفات الثنائية ببساطة قديمة بعد فترة من الزمن.
لقد تمكنت مؤخراً من تجميع آلة افتراضية بالكامل من شفرة المصدر بناءً على التعليمات الواردة في الكتاب. Linux من الصفر، إصدار Systemd v.8.3. أنا متشوق لمشاركة النتائج معكم.
عملية التجميع Linux
عملية التجميع Linux يمكن تقسيم عملية استخراج الكود المصدري إلى ثلاث مراحل:
- يتم تجميع بيئة بناء LFS بناءً على نظام التشغيل الحالي.
- ستقوم بيئة البناء بإنشاء صورة لجهاز LFS الظاهري.
- يتم تثبيت الحزم الإضافية من كتاب BLFS غير الموجودة في كتاب LFS في الجهاز الظاهري.
ملفات البرامج النصية الثابتة
عند العمل مع بيئة البناء، من الملائم استخدام الحافظة وSSH: لقد قمت بنسخ الأوامر من الكتاب ولصقها في وحدة تحكم بيئة البناء.
بعد إطلاق الجهاز الظاهري الذي تم إنشاؤه، ظهرت مشاكل خطيرة. على عكس النافذة الطرفية، لا يمكنك لصق التعليمات البرمجية في نافذة عميل الجهاز الظاهري. تعد كتابة الأوامر باستخدام لوحة المفاتيح أمرًا غير مريح وهناك خطر كبير لحدوث أخطاء مطبعية. وتكمن خطورة الأخطاء المطبعية في أنها قد لا تظهر على الفور، بل بعد فترة وتؤدي إلى مشاكل خطيرة.
من المعروف أنه يمكن إدخال الأوامر ليس فقط من لوحة المفاتيح ولكن أيضًا من الدفق القياسي (STDIN). يمكن أن يكون مصدر الدفق القياسي منفذًا تسلسليًا، بالإضافة إلى نتيجة برنامج البرنامج النصي، وهو ما يسمى بالإخراج القياسي (STDOUT).
يعرف الكثير من الأشخاص أن الأمر wget يمكنه إخراج محتويات الملف الذي تم تنزيله إلى الإخراج القياسي (STDOUT):
wget http://example.com -O -إذا تم إرسال مخرجات أمر wget إلى المترجم، فيمكن تنفيذ تعليمات برمجية عشوائية. سيتم تنفيذ الكود كما لو تم كتابته على لوحة المفاتيح أو نسخه من الحافظة:
wget http://umvirt.com/linux/helloworld.sh -O - | bashبهذه الطريقة، يمكنك وضع الملفات ذات الأوامر على بعض خوادم الويب وإرسال محتوياتها إلى المترجم.
ملفات البرامج النصية الديناميكية
تعد الملفات الثابتة أمرًا جيدًا بالطبع، إذا كنت تعرف بالضبط ما يجب القيام به، ولكن إذا تم تثبيت حزمة، وإذا لم يتم تثبيت التبعيات بشكل واضح أم لا، فماذا بعد ذلك؟
الموقع الديناميكي الذي يعتمد عليه يأتي للإنقاذ خادم ويب لامب (Linux(Apache-MySQL-PHP). إذا كان الموقع قادرًا على إنشاء صفحات (ملفات HTML) وصور بشكل ديناميكي، فيجب أن يكون قادرًا على التعامل مع ملفات النصوص العادية.
وهكذا حدث. كتب الموقع الذي يقوم بإنشاء البرامج النصية لمترجم Bash. تحتوي قاعدة بيانات الموقع على معلومات حول الحزم والتبعيات والتصحيحات والإضافات وأوامر البناء.
الآن لتثبيت حزمة mc (قائد منتصف الليل) يمكنك إدخال الأمر:
wget --no-check-cerificate https://umvirt.com/linux/packages/0.1/mc/install -O - | bashسيتلقى البرنامج النصي للموقع نفسه البيانات من قاعدة البيانات وينشئ رمز التحقق من التبعية ورمز البرنامج النصي لتثبيت الحزمة. سيقوم المترجم بمعالجة التعليمات الواردة في البرنامج النصي.
ولجعل ذلك ممكنًا، يتم تخزين المعلومات حول الحزم المثبتة في قاعدة بيانات على قرص الجهاز الظاهري.
توجد قاعدة بيانات الحزم المثبتة في الدليل /var/cache/ulfs-packages هي قائمة بالملفات الفارغة ذات الأسماء المقابلة لأسماء الحزم.
إذا لم يتم العثور على الحزمة في قاعدة البيانات، فسيتم تثبيت التبعيات بشكل متكرر.
وسائل الراحة
ولجعل تثبيت الحزم أكثر ملاءمة، قام موقع آخر بكتابة نص الشمبانزي ، باستخدام القاعدة حزم UmVirt LFS. المهمة الرئيسية مساعد UmVirt LFS - هذا هو تنفيذ الأوامر الأخرى.
مع الشمبانزي، يصبح تثبيت الحزم أسهل:
chimp install mcمظاهرة
للتعرف على عمل الخدمات حزم UmVirt LFS и مساعد UmVirt LFS يمكنك تنزيل الصورة الأساسية . قم بتثبيت Xorg باستخدام أمر واحد:
chimp install Xأثناء تشغيل البرنامج النصي، سيتم تثبيت 141 حزمة تلقائيًا. لتوفير وقت الترجمة، يمكنك استبدال قيمة متغير MAKEFLAGS في ملف /etc/profile من "-j1" (خيط واحد) إلى، على سبيل المثال، "-j6" (ستة خيوط).
اللامركزية والتخصيص
ولأغراض ضمان الأمن والاستقلالية والتخصيص، يتم نشر الكود المصدري لحزم UmVirt LFS وخدمات UmVirt LFS Assistant في المجال العام. يمكن لأي شخص تنزيله ونشره وتعديل الخدمات داخل بنيته التحتية.
المصدر: www.habr.com
