ملخص
تتبع معظم البرامج عملية من 3 خطوات للبناء من المصدر:.
يقوم التكوين بالتحقق من التبعيات ، في حين أن جعل القابل للتنفيذ ؛ AutoConf/Automake تساعد في أتمتة هذا.
عادةً ما يكون التثبيت اختياريًا ، وخاصة الراحة ، مما يتيح لك تشغيل الأوامر التي يتم نسخها في دليل المسار.
يمكن أن يبدو التثبيت من المصدر أكثر ترهيبًا من استخدام مدير الحزمة. لكن ثلاثة أوامر بسيطة تساعد في ضمان أن العملية لا تزال خالية من المتاعب.
ما هو المبنى من المصدر؟
يتم تفسير البرامج التي تقوم بتشغيلها على جهاز الكمبيوتر الخاص بك إما. السابق عبارة عن ملفات نصية تحتوي على الكود الذي ستقرأه برنامج آخر – مترجم – المترجم – عند تشغيله. هذا الأخير هو الملفات الثنائية المستقلة التي تحتوي على رمز الجهاز وتشغيلها مباشرة.
تعتبر الموظفين التنفيذيون المترجمون شائعين للغاية ، خاصة بالنسبة للبرامج الأكبر. عندما تقوم ببناء من المصدر ، يمكنك استخدام برنامج التحويل البرمجي – مثل GCC – لإنشاء قابلة للتنفيذ من رمز مصدر التطبيق ، والذي يمكن توزيعه عبر العديد من الملفات الفردية.

متعلق ب
ربما لا تحتاج إلى تجميع kernel Linux بعد الآن
لم يعد هذا هو التسعينات بعد الآن.
نظرًا لأن البناء من المصدر يمكن أن يكون عملية معقدة وطويلة ، فإنه عادة ما يكون تلقائيًا عبر برنامج آخر ، في أغلب الأحيان. يمكنك كتابة Makefiles للتحكم في كيفية قيام المشروع ببناء برنامجه النهائي القابل للتنفيذ.
في المشاريع الأكثر تعقيدًا ، تصبح Makefiles نفسها كبيرة وغير عملية. هذا صحيح بشكل خاص للتطبيقات المحمولة التي تحتاج إلى العمل عبر بنيات وبيئات مختلفة. لتلبية هذه المواقف ، تقوم العديد من المشاريع بإنشاء Makefiles الخاصة بهم تلقائيًا باستخدام أداة تسمى AutoconF/Automake.
عملية الإنشاء المكونة من 3 خطوات: تكوين ، صنع ، تثبيت
إن زيادة كل هذا هو نمط شائع يستخدمه الكثير من البرامج للبناء من المصدر:
./configure && make && make install
تستخدم العديد من البرامج الشائعة هذا النمط – أو البديل – بما في ذلك Apache ، وهو ما يفسر العملية في ملف التثبيت:
Node.js هو مثال آخر على البرامج التي تستخدم هذا النمط. يحتوي ملف Building.md على تعليمات ذات صلة:
يأخذ كل مشروع منهجه الخاص لبناء مصدره ، حتى لو كان تباينًا بسيطًا في نمط ثلاث خطوات. أحد التمييز المهم هو كيفية تشغيل سلسلة الأوامر. سيؤدي تشغيله باستخدام المنطق والتشغيل (&&) إلى توقف السلسلة إذا فشل أحد أجزائها:
./configure && make && make install
بدلاً من ذلك ، يمكنك تشغيل كل أمر بشكل منفصل ، ولكن لا يزال يستخدم سطرًا واحدًا ، مع Semicolons:
./configure; make; make install
سيؤدي ذلك إلى تشغيل كل جزء ، حتى لو فشلت الخطوات السابقة. لن يحدث اختيارك دائمًا فرقًا عمليًا ، ويمكنك أيضًا تشغيله كأوامر منفصلة بدلاً من ذلك:
./configure
make
make install
قد لا ترغب في تثبيت البرنامج بالكامل ، ويفضل تشغيله مباشرة من الدليل الخاص به. هذا جيد تمامًا للقيام به ؛ ستحتاج فقط إلى إسقاط اجعل التثبيت يأمر.
تحتوي بعض إعادة النصي على تكوين البرنامج النصي ، وتتوقع البعض الآخر (مثل GREP) أن تقوم بتشغيل برنامج نصي آخر ينشئ ملف التكوين هذا أولاً. إذا كنت تبحث عن خيار أسهل ، فقم دائمًا بالرجوع إلى ملف التثبيت أو البناء أو إعادة قراءة واتبع توصية المشروع.
كيف./التكوين ينطلق الأشياء
عادةً ما يكون برنامج Configure Shell هو نقطة انطلاق عملية الإنشاء. يقوم بإعداد بقية العملية لبيئتك المحددة.
يتحقق البرنامج النصي لمختلف التبعيات التي يتطلبها المشروع. إنه يضمن أن جميع العناصر المطلوبة موجودة وصحيحة ، في الإصدارات المناسبة. يجري ./configure ويجب أن ينتهي بك الأمر بملف يسمى Makefile الذي يستخدمه المرحلة التالية.
البرنامج النصي التكوين ، هو نفسه ، قابل للتكوين ، عبر خيارات سطر الأوامر. يجري ./Configure -help لوصف شامل لهم.
كلاهما تكوين وجعل إنشاء الكثير من الإخراج. إذا كنت ترغب فقط في تشغيل هذه الأوامر وتجاهل ما يفعلونه خلف الكواليس ، فيمكنك استخدام –هادئ خيار لقمع معظم الإخراج.
إذا لم يكن هناك نص تكوين ، فقد يوفر المشروع وسيلة لتوليد واحدة. على سبيل المثال ، يتضمن مستودع HTOP نصًا Autogen.sh. سيؤدي تشغيل هذا إلى إنشاء نص تكوين:
قد تفتقر المشاريع البسيطة للغاية ، وتلك غير المكتوبة بلغة C ، إلى تكوين البرنامج النصي تمامًا. في هذه الحالة ، تصبح العملية المكونة من ثلاث خطوات من خطوتين: فقط قم بالتشغيل جعل && التثبيت.
غالبًا ما يتحكم البرنامج النصي في ما يحدث لاحقًا أثناء التثبيت. على وجه الخصوص ، خيار -prefix شائع. يحدد هذا الدليل الجذر الذي سيتم بموجبه تثبيت البرنامج. افتراضيًا ، هذا هو /usr /محلي ولكن يمكنك توفير بديل إذا كنت ترغب في تنظيم ملفاتك بشكل مختلف.
جعل معظم العمل
بمجرد إنشاء تكوين Makefile ، يمكنك بدء العملية الفعلية لبناء البرنامج. يقرأ برنامج Make في Makefile ويتحقق من سلسلة من القواعد لتحديد ما يجب أن يتم إنشاؤه.
عادةً ما تكون القراءة سهلة القراءة من Makefiles المكتوبة باليد. في أبسط الحالات ، يصف Makefile كيفية إنشاء ملف من آخر ، عندما يكون الأخير أكبر سناً. على سبيل المثال ، يصف هذا makefile عملية بناء برنامج بسيط للغاية:
program: program.c
gcc -o program program.c
هنا ، يعتمد برنامج الملفات القابلة للتنفيذ على برنامج الملف المصدر. عند تشغيله ، سيتحقق من الملف مقابل تبعياته. إذا لم يتغير أي شيء منذ آخر بناء – فإن برنامج II أحدث من البرنامج – سوف يخرج Make ببساطة ، وآمنًا في افتراض أنه لا يجب القيام بأي شيء. إذا تغير برنامج .C ، فسيقوم بتشغيل GCC وتجميع البرنامج.

متعلق ب
Makefiles: ما هي وماذا يمكنك أن تفعل معهم؟
لا تزييفها ، اجعلها!
هناك الكثير مما يجعله أبعد من أبسط الحالات ، وتميل Makefiles المولدة إلى أن تكون أكثر تعقيدًا. على سبيل المثال ، يبلغ طول هذا makefile الذي تم إنشاؤه لبرنامج HTOP 2،440 سطرًا:
لكنك لا داعي للقلق بشأن هذا. ما لم تقم باختراق الكود المصدري – أو كتابة بنفسك – يمكنك تشغيله دون القلق حقًا بشأن ما يحدث تحت الغطاء.
قد تستغرق خطوة Make وقتًا طويلاً لتشغيلها ، خاصة بالنسبة للبرامج المعقدة التي تتضمن عدة مكونات. كن صبورًا ولا تقلق إذا فشل. عادة ما يكون السبب هو التبعية المفقودة ، وأحد فوائد صنعها هو أنها ستستأنف عملية البناء دون فقدان العمل الذي تم تنفيذه بالفعل.
اختتام مع تثبيت
سيقوم البناء النموذجي بإنشاء عملية تجميعية قابلة للتنفيذ ، إما في جذر المشروع أو في كثير من الأحيان في دليل فرعي يدعى Bin. هذا عادة ما يكون برنامجًا مستقلًا يمكنك تشغيله عبر مساره الكامل:
هذا جيد لاختبار أو العمل على البرنامج الخاص بك ، ولكنك ستحتاج في النهاية إلى تثبيته في موقع أكثر ملاءمة.
معظم Makefiles لديها هدف تثبيت الذي يصنعه عند تشغيل تشغيل التثبيت. سيستخدم هذا الأمر في كثير من الأحيان أمر التثبيت لنسخ الملفات الفردية وتعيين الأذونات والملكية المناسبة.
يعتمد موقع التثبيت على كيفية تشغيل تكوينه. تذكر أن الموقع الافتراضي للـ Executables هو/usr/local/bin ، والذي قد لا يكون لديك إذن للكتابة إليه. إذا لم يتمكن المستخدمون من الكتابة إلى موقع التثبيت ، فستحتاج إلى تشغيل Sudo للتثبيت وتوفير كلمة مرور الجذر للمتابعة.
أيا كان موقع التثبيت ، يجب أن يكون في طريقك حتى تتمكن من تشغيل البرنامج فقط عن طريق كتابة اسمه على سطر الأوامر ، بدلاً من مساره الكامل.

متعلق ب
كيفية إضافة دليل إلى مسار $ الخاص بك في Linux
لا تضيف كل شيء إلى طريقك. بجد.
(tagstotranslate) Linux (T) Linux & MacOS Terminal (T)