2011-10-17 15 views
21

Piszę scenariusz dla nienadzorowanej instalacji pakietu, który jest w naszym Repo, Jest to pakiet oprogramowania z jednym z Debianów oznaczonych config. Czy istnieje opcja, którą można przekazać do apt-get/aptitude, aby zaakceptował nowe pliki konfiguracyjne.Jak zrobić apt-get accept Nowe pliki konfiguracyjne w nienadzorowanej instalacji debiana z Repo

Zasadniczo muszę odpowiednik apt/aptitude dpkg --force-confnew

muszę odpowiedzieć na następujące pytanie postawione podczas instalacji apt-get z Y


pliku konfiguracyjnego `/ opt/application/conf/XXX.conf '

==> Plik w systemie utworzonym przez ciebie lub przez skrypt.

==> Plik również w pakiecie dostarczonym przez opiekuna pakietu.

Co chcesz z tym zrobić? Dostępne opcje:

Y or I : install the package maintainer's version 

N or O : keep your currently-installed version 

    D  : show the differences between the versions 

    Z  : background this process to examine the 

Domyślnym działaniem jest zachowanie bieżącej wersji.


Informacje dodatkowe:

Również jestem przechodzącej hasło sudo w rurze, aby wykonać polecenie

echo "mysudopass" | sudo apt-get -S mypackage

ten zgłasza błąd podczas instalacji, gdy instalacja jest w fazie interaktywnej konfiguracji.

Jestem na Ubuntu 10.04 wersję apt: apt 0.7.25.3

dlaczego cannotuse dpkg: Te debians mają być zainstalowane z repo i nie mam lokalnych debians na moim komputerze

Dzięki Chłopaki za pomoc z góry !!!!

+0

http://serverfault.com/questions/48724/100-non-interactive-debian-dist-upgrade –

Odpowiedz

10

Wypróbowałem sugestie w innych odpowiedziach i odkryłem, że to nie wystarczyło, gdy próbuję zainstalować pakiet localepurge.

Po użyciu debconfa-set-wybrane ustawienie, czego potrzebowałem, musiałem użyć następujących:

DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install localepurge 

Tylko ze zmiennej środowiskowej DEBIAN_FRONTEND ustawiony Nieinteraktywny mogłem zmusić localepurge robić to, co prosiłem . Może tak być w przypadku innych pakietów.

Oczywiście ze skryptem można wyeksportować zmienną, jeśli chcesz, ale pamiętaj, że może ona zepsuć się z innymi pakietami. Na przykład:

#!/bin/sh 
export DEBIAN_FRONTEND=noninteractive 
apt-get -o Dpkg::Options::="--force-confnew" install -y localepurge foo bar 

Jeżeli -y mówi apt-get przestać zadawać pytania (patrz man page).

+0

Dziękuję, proszę pana! – Charaf

27

myślę, że apt-get linii poleceń szukasz jest

apt-get -o Dpkg::Options::="--force-confnew" install your-package 

Jak dla sudo -S problemu, może spróbuj dodać jakieś przestrzenie wokół „|” postać. Nie jest, pytanie How to pass the password to su/sudo/ssh without overriding the TTY? może być przydatne.

+1

Niesamowite . to działa Wielkie dzięki !!!! – RamNat

+2

Musiałem też dodać -y też. apt-get -o Dpkg :: Opcje :: = "- force-confnew" zainstaluj -y swój pakiet – danielnegri

2

Można również apt skonfigurowany, aby to zrobić poprzez stworzenie /etc/apt/apt.conf.d/local i dodając:

Dpkg::Options { 
    "--force-confdef"; 
    "--force-confold"; 
}