Frage

Ein Sysadmin Lehrer sagte mir einen Tag, dass ich lernen soll „make“ zu verwenden, weil ich es für viele andere Dinge verwenden könnte, die nur complilations auslösen.

Ich habe nie die Chance, mehr darüber zu reden. Haben Sie ein gutes Beispiel haben?

Als Bonus ist es nicht dieses Tool als veraltet, und was sind moderne Alternativen (für die Erstellung Zweck und andere)?

War es hilfreich?

Lösung

Jetzt kann verwendet werden, um alle Befehle auszuführen Sie ausführen möchten. Es ist am besten für Aktivitäten verwendet, die Abhängigkeitsprüfung erfordern, aber es gibt keinen Grund, warum Sie nicht verwenden können machen Sie Ihre E-Mail zu überprüfen, starten Sie Ihren Server, Backups machen, oder irgendetwas anderes.

Ant, NAnt und msbuild sind angeblich die moderne Alternativen, aber plain-old-make noch ausgiebig in Umgebungen verwendet wird, die Verwendung von Java oder .NET nicht.

Andere Tipps

Eine ausgezeichnete Sache machen kann verwendet werden neben Compilation ist LaTeX. Wenn Sie irgendeine ernsthafte Arbeit mit LaTeX tun, werden Sie feststellen, sehr praktisch, weil die Notwendigkeit, neu zu interpretieren .tex Dateien mehrmals, wenn BibTex oder Inhaltsverzeichnisse verwenden.

Jetzt ist definitiv nicht veraltet. Zwar gibt es verschiedene Möglichkeiten, die gleiche Sache (Batch-Dateien auf Windows, Shell-Skripte auf Linux) zu tun make funktioniert am besten, IMHO.

  

ist es nicht dieses Tool veraltet

Was ?! Nein, nicht einmal etwas. Ich bin auf Linux so dass ich ich bin nicht eine durchschnittliche Person erkennen, aber ich benutze es fast täglich. Ich bin sicher, dass es Tausende von Linux-Entwickler sind, die tun verwenden es täglich.

Ich erinnere mich, einen Artikel über Slashdot sieht vor ein paar Jahren eine Technik beschreibt, für die Optimierung der Sequenz Linux-Boot durch machen mit .

edit:

Hier ist ein Artikel von IBM das Prinzip zu erklären.

Jetzt führt eine topologische Sortierung , die, dass ein paar Dinge gegeben zu sagen ist, und eine Reihe von Anforderungen, die eine Sache, bevor eine andere Sache sein, findet er einen Weg, all die Dinge so zu ordnen, dass alle Anforderungen erfüllt sind. Gebäude Dinge (Programme, Dokumente, Verteilung tarballs, etc.) ist eine gemeinsame Verwendung für topologische Sortierung, aber es gibt andere. Sie können für jeden Server im Rechenzentrum ein Makefile mit einem Eintrag erstellen, einschließlich Abhängigkeiten zwischen Servern (NFS, NIS, DNS, etc.) und machen können Ihnen sagen, was in welcher Reihenfolge auf Ihrem Computer nach einem Stromausfall zu drehen, oder welche Reihenfolge sie in vor einem Stromausfall auszuschalten. Sie können es verwenden, um herauszufinden, was in welcher Reihenfolge Dienst auf einem einzigen Server zu starten. Sie können es verwenden, um herauszufinden, was um auf am Morgen Ihre Kleidung. Jedes Problem, wo Sie brauchen eine Bestellung von ein paar Dinge oder Aufgaben zu finden, die eine Reihe von spezifischen Anforderungen der Form A erfüllt geht vor B ein potentieller Kandidat für ist mit Make gelöst werden.

Die Zufalls Verwendung ich je gesehen habe ist machen für Init-Skripte auf BCCD . Es funktionierte tatsächlich anständig, sobald Sie den wtf Moment bekam über ....

Denken Sie an make als Shell-Skripte mit zusätzlichem Pep.

Nun, ich sicher, dass das UNIX-Tool „make“ ist noch viel verwendet wird, auch wenn es in der .NET-Welt ist abnehmend. Und während mehr Menschen MSBUILD verwenden können, Ameise, nAnt und andere Werkzeuge in diesen Tagen, sie sind im Wesentlichen nur „make“ mit einer anderen Datei Syntax. Das Grundkonzept ist das gleiche.

Machen Sie Werkzeuge für alles handlich sind, wo eine Eingabedatei gibt es, die in eine Ausgabedatei verarbeitet wird. Schreiben Sie Ihre Berichte in MS Word, sondern verteilen sie als PDF-Dateien? - Gebrauch machen, um die PDF-Dateien zu erzeugen

.

Konfigurationsdateiänderungen durch crontab, , wenn benötigt.

Ich habe Beispiele für postfix Karten und für squid externe Tabellen.

Beispiel für / 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

etc

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top