Wie kann ich die Eingabeaufforderungen bei der Installation eines FreeBSD-Ports vermeiden?


26

Wenn ich einen Port installiere, wird mir häufig ein Menübildschirm zur Auswahl von Konfigurationsoptionen angezeigt. Wenn ich ein wirklich großes Paket mit vielen Abhängigkeiten installieren werde, ist das äußerst unpraktisch. Gibt es ein make-Flag zum Akzeptieren der Standardantworten für alle derartigen Eingabeaufforderungen?

Antworten:


20

Wahrscheinlich BATCHist in ports (7) beschrieben , wonach Sie suchen:

# cd /usr/ports/sysutils/screen
# export BATCH=yes
# make rmconfig
# make install clean
(no configuration menu is displayed)

make rmconfig entfernt OPTIONS Konfiguration für diesen Port, und Sie können sie verwenden, um diejenigen zu entfernen, OPTIONSdie zuvor gespeichert wurden, als Sie screen(1)das erste Mal konfiguriert und installiert haben. OPTIONSwerden in einem Verzeichnis gespeichert, das mit PORT_DB_DIR(standardmäßig /var/db/ports) angegeben wird.

Wenn Sie bash verwenden, BATCHkann dies bei jeder Anmeldung automatisch festgelegt werden:

# echo 'export BATCH=yes' >> ~/.bash_profile

12
Ich bevorzuge es make config-recursive && make install clean, da es Ihnen alle Konfigurationsdialoge im Voraus gibt, während die eigentliche Installation wahrscheinlich unbeaufsichtigt funktionieren wird.
user569825

Um den für die Konfiguration erforderlichen Arbeitsaufwand zu verringern, ist es häufig sinnvoll, ausschließlich die standardmäßig aktiven Optionen zu betrachten und nur die Deaktivierung dieser Optionen in Betracht zu ziehen.
user569825

7
Führen Sie den make config-recursiveVorgang außerdem mehrmals aus, bis Sie keine neuen Optionen mehr erhalten (dh mindestens zweimal). Jedes Mal, wenn Sie eine Option ändern, kann dies zu einer weiteren Abhängigkeit mit noch mehr Optionen führen.
Alex Hirzel

exportwird nur funktionieren, auf shdenen nicht die FreeBSD-Standard-Shell ist
ajeh

21

Ich denke, es ist erwähnenswert, dass Sie dies möglicherweise nicht immer tun möchten. Ich scheine mich zu erinnern, zum Beispiel Emacs konfigurieren zu müssen, um xft-Unterstützung hinzuzufügen. Wenn Sie die Eingabeaufforderungen für einen einzelnen Build umgehen möchten,

make install clean BATCH=yes

wird auch funktionieren.


funktioniert irgendwie besser als "BATCH = yes" vor make zu setzen. Vielen Dank.
Hari

Bemerkenswerterweise make install clean BATCH=hat das die gleiche Wirkung, wie laut Handbuch für ports(7), es muss nur definiert werden. Es kann auf alles oder nichts gesetzt werden
Harold Fischer

15

Dies akzeptiert nicht automatisch Standardeinstellungen, wie Sie sie verlangen, aber ich mag die Methode "make config-recursive", die Sie durch alle Optionen für den gewünschten Port sowie durch Optionen für alle Abhängigkeiten führt. Sie müssen nichts ändern, wenn Sie nicht möchten, aber Sie durchlaufen alle Auswahlbildschirme auf einmal und nicht immer dann, wenn der Bauprozess sie erreicht.

Sobald dies erledigt ist, sollte Ihre "Installation sauber machen" so gut wie unbeaufsichtigt bleiben.


3
Wie ich in @ Yasirs Post gesagt habe - stelle sicher, dass du das mehrmals machst. Wenn Sie eine Option ändern, die eine andere Abhängigkeit einbringt, und wenn diese Abhängigkeit zu konfigurierende Optionen enthält, werden Sie sie erst beim nächsten Durchlauf von berühren make config-recursive.
Alex Hirzel

Persönlich denke, das sollte die akzeptierte Antwort sein.
revprez
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.