Jak mogę uniknąć monitów podczas instalowania portu FreeBSD?

26

Podczas instalacji portu często pojawia się ekran menu umożliwiający wybranie opcji konfiguracji. Jeśli zamierzam zainstalować naprawdę duży pakiet z wieloma zależnościami, będzie to wyjątkowo niewygodne. Czy istnieje flaga make do akceptowania domyślnych odpowiedzi dla wszystkich takich monitów?

JCCyC
źródło

Odpowiedzi:

20

Prawdopodobnie BATCHopisane w portach (7) jest to, czego szukasz:

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

make rmconfigusuwa OPTIONSconfig dla tego portu i można go użyć do usunięcia tych, OPTIONSktóre zostały wcześniej zapisane przy pierwszej konfiguracji i instalacji screen(1). OPTIONSsą przechowywane w katalogu określonym za pomocą PORT_DB_DIR(domyślnie to /var/db/ports).

Jeśli używasz bash, BATCHmożesz ustawić automatycznie przy każdym logowaniu:

# echo 'export BATCH=yes' >> ~/.bash_profile
Yasir Arsanukaev
źródło
12
Wolę make config-recursive && make install clean, ponieważ daje to wszystkie okna dialogowe konfiguracji z góry, podczas gdy faktyczna instalacja prawdopodobnie będzie działać bez nadzoru.
user569825
Ponadto, aby skrócić obciążenie wymagane do konfiguracji, często rozsądnym pomysłem jest spojrzenie wyłącznie na opcje, które są domyślnie aktywne i po prostu rozważenie wyłączenia dowolnej z nich.
user569825
7
Uruchom także make config-recursivewiele razy, aż przestaniesz otrzymywać nowe opcje (tj. Przynajmniej dwa razy). Za każdym razem, gdy zmienisz opcję, może ona spowodować kolejną zależność, która ma jeszcze więcej opcji.
Alex Hirzel
exportbędzie działał tylko na shdomyślnej powłoce FreeBSD
ajeh
21

Myślę, że warto wspomnieć, że nie zawsze możesz chcieć to zrobić. Wydaje mi się, że pamiętam na przykład konieczność skonfigurowania emacsa, aby dodać obsługę xft. Jeśli chcesz ominąć monity o jedną kompilację,

make install clean BATCH=yes

będzie również działać.

hydro
źródło
jakoś działa lepiej niż umieszczanie „BATCH = yes” przed marką. Dzięki.
hari
Warto zauważyć, że make install clean BATCH=ma to ten sam efekt, ponieważ zgodnie z instrukcją ports(7)należy go tylko zdefiniować. Może być ustawiony na cokolwiek lub nic
Harold Fischer
15

Nie akceptuje to automatycznie wartości domyślnych, o które pytasz, ale podoba mi się metoda „make config-recursive”, która prowadzi cię przez dowolne opcje dla wybranego portu, a także opcje dla wszystkich zależności. Nie musisz niczego zmieniać, jeśli nie chcesz, ale przeglądasz wszystkie ekrany wyboru naraz, a nie za każdym razem, gdy dochodzi do nich proces budowania.

Gdy to zrobisz, twój „make install clean” powinien pozostać prawie bez nadzoru.

Administrator FreeeBSD
źródło
3
Jak powiedziałem w poście @ Yasir - pamiętaj, aby uruchomić to wiele razy. Jeśli zmienisz opcję, która wprowadza inną zależność, jeśli ta zależność ma opcje do skonfigurowania, nie dotkniesz jej do następnego uruchomienia make config-recursive.
Alex Hirzel
Osobiście uważam, że powinna to być zaakceptowana odpowiedź.
revprez