Mutt-Client-Installation

373
Mulligan

Ich versuche, einen Mutt-Client auf meiner Slackware (14.2) zu erstellen und zu installieren. Ich folge dem Standardverfahren configure && make && make install. Hier sind meine Fragen zum Thema.

  1. Wie kann man überprüfen, ob alle 3 Schritte (Konfigurieren, Ausführen, Installieren) richtig ausgeführt wurden? Ich habe recht, dass ich std-Fehler in eine Datei wie diese umleiten kann:

.configure 2> configure_errors.log
make 2> make_errors.log

und dann davon ausgehen, dass der entsprechende Schritt erfolgreich ist, wenn die entsprechende Datei leer ist (keine Fehler)?

  1. Was sind die Standardoptionen für das configureSkript? Ich kann eine Liste von Optionen mit ihrer Bedeutung finden, aber nicht die Standardeinstellungen finden.
  2. Ich möchte mutt in einem benutzerdefinierten Verzeichnis ($ HOME / mutt) installieren, aber die --prefixOption scheint nicht zu funktionieren. Wenn ich --prefix=$HOME/muttdas configureSkript hinzufüge, wird Mutt nur in dem Verzeichnis installiert, von dem aus ich das Skript herausgegeben habe (das ist das Verzeichnis, in dem das Skript unverpackt war). Mein $HOME/muttVerzeichnis ist leer.
0

1 Antwort auf die Frage

0
dirkt

1) Wenn Sie sich nicht sicher sind, ob das Programm fehlerfrei funktioniert, müssen Sie alle Schritte separat ausführen. Schauen Sie sich die Meldungen des Terminals an.

Sehen Sie sich also an configure, wie sie sich über fehlende Bibliotheken beschwert, installieren Sie Pakete für die fehlenden Bibliotheken, führen Sie sie configureerneut durch, bis sie erfolgreich ist. Dann hat make, behebt Fehler in den Quelldateien bei Bedarf (hoffentlich nicht). Zum Schluss noch make installals root machen.

Das Umleiten von Standardfehlern in Protokolldateien klingt unnötig kompliziert. Normalerweise wird das Problem sofort angezeigt. Und das Terminal kann nach oben gescrollt werden. Ich bin noch nicht auf ein Problem gestoßen, bei dem ich das tun müsste, obwohl ich gelegentlich das ausführliche Protokoll configureproduzierte (weil es die Testprogramme enthält, die es zu kompilieren versucht), wenn ich es nicht herausfinden konnte genau was war falsch von der Fehlermeldung.

2) Ich glaube nicht, dass es eine Möglichkeit gibt, Standardwerte zu finden. Sie können unter anderem nachsehen configure.in, Makefile.amwas es macht, wenn eine bestimmte Option nicht klar ist. Mit welcher Option hast du Probleme?

3) In der Regel für selbst erstellte Software, empfehle ich die Installation von ihnen in /usr/localVerwendung stow, wie zB beschrieben hier . Die Installation in Unterverzeichnissen von $HOMEfunktioniert nur, wenn Sie keine Bibliotheken oder andere Elemente installieren, die /usr/localvon den meisten Teilen des Systems bereits gefunden werden, da die Suchpfade standardmäßig vorhanden sind.

Leider funktioniert die Installation der Software auch bei Autotools etwas anders, daher weiß ich nicht, warum sie nicht in das --prefixVerzeichnis installiert wurde . Was waren die Nachrichten, die Sie nach dem Tippen erhalten haben make install? Sie sagen normalerweise, wo versucht wird, alles zu installieren. Manchmal ignorieren Teile oder alle Dateien die verschiedenen Präfixe und werden an anderer Stelle installiert. Sie müssen also Makefile.amusw. ändern, damit sie ordnungsgemäß funktioniert.

Zu Frage Nr. 1 - Ich dachte, dass es einen Standard / eine Konvention gibt, die das Konfigurieren, Erstellen und Installieren von Skripts für die Ausgabe von "normalen" Meldungen zum std-Ausgang und Fehler (falls vorhanden) zum std-Fehler macht, aber wie ich aus Ihrer Antwort nehme, gibt es nicht ein Fall? Mulligan vor 7 Jahren 0
Ich weiß es eigentlich nicht, weil ich nie versucht habe, stderr umzuleiten - wenn es eine Fehlermeldung gibt, egal ob auf stdout oder stderr gedruckt, ich möchte es sehen und möchte es nicht in einer Datei, wo ich eine brauche zusätzlicher Schritt, um es zu sehen. :-) Aber es ist einfach zu testen, provozieren Sie einfach einen Fehler (zB deinstallieren Sie ein notwendiges Paket) und beobachten Sie, was passiert. Zu faul, das jetzt zu testen. :-) dirkt vor 7 Jahren 0
Die übliche Konvention für stdout und stderr ist, dass, wenn das Werkzeug Ausgaben erzeugt, die Sie möglicherweise in eine Datei umleiten möchten, * dann * Fehler an stderr gehen, weil dann immer noch Fehler angezeigt werden, selbst wenn `tool> some_file` ausgeführt wird. "Configure" und "make" erzeugen jedoch nur eine informative Ausgabe. Ich habe also keine Ahnung, ob sie sich zwischen stdout und stderr unterscheiden. dirkt vor 7 Jahren 0
Die andere Konvention besteht darin, Exit-Codes zu verwenden, um Erfolg oder Misserfolg zu kommunizieren. Deshalb funktioniert "&&". Ich habe noch nie von der Idee gehört "wenn es keine Ausgabe für stderr gibt, dann war die Aktion erfolgreich". Das funktioniert vielleicht für * einige * Kommandozeilen-Tools, aber ich bin ziemlich überzeugt, dass es bei den meisten von ihnen fehlschlagen wird. dirkt vor 7 Jahren 0