Automatycznie zachowuj aktualną wersję plików konfiguracyjnych podczas instalacji apt-get

14

Muszę automatycznie zainstalować pakiet z plikiem konfiguracyjnym już obecnym na serwerze.

Szukam czegoś takiego:

apt-get install --yes --force-yes --keep-current-confs mysql-server

Prawdopodobnie głupie pytanie, ale nie mogę znaleźć takiej opcji.

Falken
źródło

Odpowiedzi:

29

Znajdź odpowiedź na blogu Raphaela Hertzoga :

apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y mysql-server

Rolą dpkg jest konfiguracja, a zatem wybranie, który plik conf ma zostać zachowany.

Falken
źródło
13

W obecnych systemach Ubuntu potrzebujesz trochę więcej:

export DEBIAN_FRONTEND=noninteractive ; apt-get dist-upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes
edlerd
źródło
Głupie pytanie: dlaczego podajesz jednocześnie dwie pozornie wykluczające się opcje? confdef vs confold ? Jeśli to naprawdę działa, to z pewnością tylko kwestia kolejności oceny? Nie, żebym spróbował ...
zadzwonił
1
„--force-confold: nie modyfikuj bieżącego pliku konfiguracyjnego, nowa wersja jest instalowana z przyrostkiem .dpkg-dist. Dzięki tej opcji nawet pliki konfiguracyjne, które nie zostały zmodyfikowane, pozostają niezmienione. Musisz to połączyć z opcją --force-confdef, aby zezwolić dpkg na zastąpienie plików konfiguracyjnych, które nie zostały zmodyfikowane. "
Craig Francis
1
--force-yespowinien być używany w ostateczności, ponieważ ma on szansę na uszkodzenie twojego systemu! Odwiedź tę stronę man, aby uzyskać szczegółowe informacje na temat korzystania z przełączników --allow .
Steven K7FAQ