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?

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

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ć.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.