2011-10-17 10 views
21

Sto scrivendo uno script per un'installazione automatica di un pacchetto che si trova nel nostro Repo, Si tratta di un pacchetto software con uno dei Debians contrassegnati config. C'è qualche opzione che posso passare ad apt-get/aptitude in modo che accetti i nuovi file di configurazione.Come rendere apt-get accetta i nuovi file di configurazione in un'installazione automatica di debian da Repo

Fondamentalmente ho bisogno di un apt/aptitude equivalente di dpkg --force-confnew

ho bisogno di rispondere alla seguente domanda posta mentre apt-get installazione con un file di configurazione Y


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

==> File sul sistema creato dall'utente o da uno script.

==> File anche nel pacchetto fornito dal gestore del pacchetto.

Cosa ti piacerebbe fare al riguardo? Le opzioni disponibili sono:

azione
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 

Il valore predefinito è quello di mantenere la versione corrente.


Informazione supplementare:

Inoltre, sto passando la password sudo in un tubo per eseguire il comando

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

Questo segnala un errore durante l'installazione quando l'installazione si trova nella fase di Config Interactive.

Sono su Ubuntu 10.04 versione apt: apt 0.7.25.3

Perché i cannotuse dpkg: Queste Debians devono essere installati da Repo e non ho Debians locali sulla mia macchina

Grazie Ragazzi per il vostro aiuto in anticipo !!!!

+0

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

risposta

10

Ho provato i suggerimenti nelle altre risposte e ho scoperto che non era sufficiente quando si cercava di installare il pacchetto localepurge.

Dopo aver utilizzato debconf-set-selections per impostare quello che mi serviva, ho dovuto utilizzare il seguente:

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

Solo con la variabile d'ambiente DEBIAN_FRONTEND impostata non interattiva potevo forzare localepurge a fare quello che avevo chiesto . Questo può essere vero per altri pacchetti.

Ovviamente con uno script è possibile esportare la variabile se si desidera, ma tenere presente che potrebbe danneggiare altri pacchetti. Per esempio:

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

Qualora il -y dice apt-get a smettere di fare domande (vedi la man page).

+0

Grazie signore! – Charaf

27

penso che il apt-get riga di comando che stai cercando è

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

quanto riguarda il tuo problema sudo -S, forse prova ad aggiungere alcuni spazi intorno al '|' carattere. No, la domanda How to pass the password to su/sudo/ssh without overriding the TTY? potrebbe essere utile.

+1

Impressionante . Funziona Grazie mille !!!! – RamNat

+2

Ho dovuto aggiungere anche -y. apt-get -o Dpkg :: Opzioni :: = "- force-confnew" installa -y tuo-pacchetto – danielnegri

2

È anche possibile avere apt configurato per farlo che con la creazione /etc/apt/apt.conf.d/local e aggiungendo:

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