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?

JCCyC
quelle

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
Yasir Arsanukaev
quelle
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.

hydo
quelle
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.

FreeeBSD Admin
quelle
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