سؤال

أخبرني أحد مدرسي مسؤول النظام ذات يوم أنني يجب أن أتعلم استخدام "make" لأنه يمكنني استخدامها في الكثير من الأشياء الأخرى التي تؤدي فقط إلى عمليات التجميع.

لم تسنح لي الفرصة للحديث لفترة أطول عن ذلك.هل لديك أي مثال جيد؟

على سبيل المكافأة، أليست هذه الأداة مهملة، وما هي البدائل الحديثة (لغرض التجميع وغيرها)؟

هل كانت مفيدة؟

المحلول

يمكن استخدام Make لتنفيذ أي أوامر تريد تنفيذها.من الأفضل استخدامه للأنشطة التي تتطلب التحقق من التبعية، ولكن لا يوجد سبب يمنعك من استخدام make للتحقق من بريدك الإلكتروني، أو إعادة تشغيل خوادمك، أو عمل نسخ احتياطية، أو أي شيء آخر.

من المفترض أن تكون Ant وNAnt وmsbuild هي البدائل الحديثة، ولكن التصميم القديم البسيط لا يزال يُستخدم على نطاق واسع في البيئات التي لا تستخدم Java أو .NET.

نصائح أخرى

أحد الأشياء الممتازة التي يمكن استخدامها إلى جانب التجميع هو LaTeX.إذا كنت تقوم بأي عمل جاد باستخدام LaTeX، فستجد أن هذا الإجراء مفيد جدًا نظرًا للحاجة إلى إعادة تفسير ملفات .tex عدة مرات عند استخدام BibTex أو جداول المحتويات.

لا يتم إهمال Make بالتأكيد.على الرغم من وجود طرق مختلفة للقيام بنفس الشيء (الملفات الدفعية على Windows، ونصوص shell على Linux) تجعل العمل هو الأفضل، IMHO.

أليس هذه الأداة مهملة

ماذا؟!لا، ولا حتى قليلا.أنا أستخدم نظام التشغيل Linux لذا أدركت أنني لست شخصًا عاديًا، ولكني أستخدمه يوميًا تقريبًا.أنا متأكد من أن هناك الآلاف من مطوري Linux الذين يفعل استخدامه يوميا.

أتذكر رؤية مقال عن سلاش دوت قبل بضع سنوات وصف تقنية لتحسين تسلسل تمهيد Linux باستخدام make.

يحرر:

إليك مقالة من IBM شرح المبدأ.

جعل ينفذ أ النوع الطوبولوجي, ، وهذا يعني أنه بالنظر إلى مجموعة من الأشياء، ومجموعة من المتطلبات التي تجعل شيئًا واحدًا قبل شيء آخر، فإنه يجد طريقة لترتيب كل الأشياء بحيث يتم استيفاء جميع المتطلبات.يعد بناء الأشياء (البرامج، المستندات، كرات التوزيع، وما إلى ذلك) أحد الاستخدامات الشائعة للفرز الطوبولوجي، ولكن هناك استخدامات أخرى.يمكنك إنشاء ملف Makefile بإدخال واحد لكل خادم في مركز البيانات الخاص بك، بما في ذلك التبعيات بين الخوادم (NFS، NIS، DNS، وما إلى ذلك) ويمكن أن يخبرك make بالترتيب الذي سيتم به تشغيل أجهزة الكمبيوتر بعد انقطاع التيار الكهربائي، أو ما هو الترتيب لإيقاف تشغيلها قبل انقطاع التيار الكهربائي.يمكنك استخدامه لمعرفة الترتيب الذي يتم به بدء الخدمات على خادم واحد.يمكنك استخدامه لمعرفة ترتيب ارتداء ملابسك في الصباح.أي مشكلة تحتاج فيها إلى العثور على ترتيب لمجموعة من الأشياء أو المهام التي تلبي مجموعة من المتطلبات المحددة للنموذج A قبل B هي مشكلة محتملة يمكن حلها باستخدام make.

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

فكر في إنشاء نصوص برمجية ذات جاذبية إضافية.

حسنًا، أنا متأكد من أن أداة UNIX "make" لا تزال تستخدم كثيرًا، حتى لو كانت في تراجع في عالم .Net.وبينما قد يستخدم المزيد من الأشخاص أدوات MSBUILD وAnt وnAnt وغيرها هذه الأيام، إلا أنهم في الأساس مجرد "إنشاء" باستخدام صيغة ملف مختلفة.المفهوم الأساسي هو نفسه.

تعد أدوات التصنيع سهلة الاستخدام لأي شيء حيث يوجد ملف إدخال تتم معالجته إلى ملف إخراج.اكتب تقاريرك في برنامج MSWord، ولكن قم بتوزيعها كملفات PDF؟- استخدم make لإنشاء ملفات PDF.

يتغير ملف التكوين من خلال crontab، لو ضروري.

لدي أمثلة ل postfix الخرائط، و squid طاولات خارجية.

مثال لـ /etc/postfix/Makefile:

POSTMAP=/usr/sbin/postmap
POSTFIX=/usr/sbin/postfix

HASHES=transport access virtual canonical relocated annoying_senders
BTREES=clients_welcome

HASHES_DB=${HASHES:=.db}
BTREES_DB=${BTREES:=.db}

all: ${BTREES_DB} ${HASHES_DB} aliases.db
    echo \= Done

${HASHES_DB}: %.db: %
    echo . Rebuilding $< hash...
    ${POSTMAP} $<

${BTREES_DB}: %.db: %
    echo . Rebuilding $< btree...
    ${POSTMAP} $<

aliases.db: aliases
    echo . Rebuilding aliases...
    /usr/bin/newaliases

إلخ

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top