Antworten für apt-get install einstellen

Bash, Shell, PHP, Python, Perl, CGI
microhome
Posts: 120
Joined: 2004-04-04 21:24

Antworten für apt-get install einstellen

Post by microhome »

Code: Select all

apt-get install linux-image-2.6.15-1-amd64-generic lilo mdadm vim initrd-tools raidtools2 -y
rufe ich in einem Shellscript auf. Dabei werden mir 5 Fragen gestellt. Nun möchte ich jedoch vorher festlegen wie diese beantwortet werden müssen, sodass das Script die automatisch macht. Wie ist das möglich??
User avatar
Joe User
Project Manager
Project Manager
Posts: 11176
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Antworten für apt-get install einstellen

Post by Joe User »

Mit expect.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
microhome
Posts: 120
Joined: 2004-04-04 21:24

Re: Antworten für apt-get install einstellen

Post by microhome »

Okay, hab mal ein Bissl damit rumprobiert. Ist echt nen super Tool! Nur ich bekomme es irgendwie nicht hin auf "grafische" Konsolenabfragen zu reagieren. Hab das im Moment so:

Code: Select all

/usr/bin/expect -c "spawn apt-get install linux-image-2.6.15-1-amd64-generic lilo mdadm vim initrd-tools raidtools2 -y; send "\r"; send "\r"; send "\r"; send "\r"; send "\r"; expect eof"
Es wird fünf Mal nach einer Bestätigung für OK oder Yes gefragt (ist eigentlich nur ein Enter drücken). Geht aber mit dem Script nicht. Ich glaub er bricht nach dem Timeout einfach ab...
Was kann ich da machen? Hab was gelesen vonwegen expectk. Das ist doch aber nur für WIRKLICHE Grafik, das heißt die ganze x-geschichte, oder?


Joe vielen Dank erstmal auf jeden Fall für den Hinweis bzgl. expect. Hatte ich noch nie von gehört und hätte echt noch ewig weitersuchen müssen bis ich vielleicht mal ganz zufällig drauf gestoßen wäre.
Wenn jemand noch ne Idee bzgl. der Grafikgeschichte hat wäre ich sehr dankbar!!


Machts gut,
der Rene
User avatar
Joe User
Project Manager
Project Manager
Posts: 11176
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Antworten für apt-get install einstellen

Post by Joe User »

Du hast vergessen die inneren Hochkomma zu escapen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
microhome
Posts: 120
Joined: 2004-04-04 21:24

Re: Antworten für apt-get install einstellen

Post by microhome »

Sicher? Ich hab das vorher mit nem ganz einfach Ccript getestet und das hat problemlos funktioniert!

todo:

Code: Select all

#!/bin/sh
echo "name?"
read NAME
echo $NAME > blah
test:

Code: Select all

#!/bin/sh
/usr/bin/expect -c "spawn ./lalala; send "rene\r"; expect eof"

Code: Select all

rescue:~# cat blah
rene

Also das hat da funktioniert.

// edit: Hab das Script mit dem apt-get install eben mit " getestet und funktioniert auch nicht.
microhome
Posts: 120
Joined: 2004-04-04 21:24

Re: Antworten für apt-get install einstellen

Post by microhome »

Hat denn niemand eine Idee wie ich das lösen kann?
sbkwi
Posts: 16
Joined: 2005-10-21 12:01

Re: Antworten für apt-get install einstellen

Post by sbkwi »

Das 'readline'-Frontend für debconf müsste eigentlich mit expect gut zusammenarbeiten. Wie man das einstellt, steht in der 'debconf'-Doku:

Code: Select all

apt-get install debconf-doc
man 7 debconf
Dort steht auch, wie man das 'noninteractive'-Frontend für automatische Paketinstallationen mit Einträgen in die debconf-Datenbank verwendet.
microhome
Posts: 120
Joined: 2004-04-04 21:24

Re: Antworten für apt-get install einstellen

Post by microhome »

Hey vielen Dank für den Tipp!
Ich hab das mal mit readline versucht, bekomme bei folgendem Code aber einen Fehler:

Code: Select all

/usr/bin/expect -c "spawn DEBIAN_FRONTEND=readline apt-get install linux-image-2.6.15-1-amd64-generic lilo mdadm initrd-tools raidtools2 vim -y; send "yes\r"; send "yes\r"; send "root\r"; expect eof"
Fehler:
spawn DEBIAN_FRONTEND=readline apt-get install linux-image-2.6.15-1-amd64-generic lilo mdadm initrd-tools raidtools2 vim -y
couldn't execute "DEBIAN_FRONTEND=readline": no such file or directory
while executing
"spawn DEBIAN_FRONTEND=readline apt-get install linux-image-2.6.15-1-amd64-generic lilo mdadm initrd-tools raidtools2 vim -y"
Wenn ich "DEBIAN_FRONTEND=readline apt-get install linux-image-2.6.15-1-amd64-generic lilo mdadm initrd-tools raidtools2 vim -y" in der Konsole eingebe dann funzt es und er fragt nicht mehr grafisch sondern eben mit Cmd-Prompt.

Mal gucken, bekomm ich schon noch hin!


// Edit: Habs schon: Man sollte das env-man lesen :wink:
Muss natürlich spawn ..env DEBIAN_FRONTEND.. heißen
thorsten
Posts: 561
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: Antworten für apt-get install einstellen

Post by thorsten »

Ich habe 25 identische Server mit fast identischer Softwareauswahl.
Da läuft in der Nacht u.a. das hier:

Code: Select all

# Paket-Auswahl einlesen und das System aktualisieren
DEBIAN_FRONTEND=noninteractive
export DEBIAN_FRONTEND

SELECTIONFILE=/etc/package_selection.txt
SELECTIONFILELOCAL=/etc/package_selection.local.txt
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin

# Paketliste aktualisieren
apt-get --yes update

# globale Paket-Auswahl einlesen
dpkg --set-selections < $SELECTIONFILE

# ggf. lokale Paket-Auswahl einlesen
test -f $SELECTIONFILELOCAL && dpkg --set-selections < $SELECTIONFILELOCAL

# Upgrade durchführen
apt-get --yes dselect-upgrade
Dabei wird immer die Standardantwort benutzt.

HTH