apt update scriptje : stdin probleempje

Pagina: 1
Acties:

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 08-07-2025
Ik heb een simpel apt update scriptje draaien op mijn debian machine:
code:
1
2
3
4
5
6
7
8
9
10
#! /bin/bash

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
LOG="/root/apt-get_log"

echo "--- `date` ---" >> $LOG
apt-get update > /dev/null 2>&1
apt-get -y dist-upgrade >> $LOG 2>&1
apt-get clean
echo "" >> $LOG

Werkt op zich prima, behalve wanneer een bepaald pakketje update-inetd nodig heeft, zoals in het onderstaande geval van samba:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Setting up samba (3.0.6-3) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
Couldn't reopen stdin at /usr/sbin/update-inetd line 29.
dpkg: error processing samba (--configure):
 subprocess post-installation script returned error exit status 6
Errors were encountered while processing:
 samba
E: Sub-process /usr/bin/dpkg returned an error code (1)

Wie weet wat er precies mis gaat, ik snap het probleem niet helemaal en kan het dus niet fixen..

Verwijderd

Ik denk dat het probleem em hier in zit:

code:
1
6 debconf: (This frontend requires a controlling tty.)


Ik weet dus niet of het mogelijk is wat jij wilt..

  • Sendy
  • Registratie: September 2001
  • Niet online
debconf gebruikt some een 'frontend' om vragen aan je te stellen. Het lijkt erop dat-ie daarvoor in eerste instantie Dialog voor gebuikt en dan terugvalt naar Teletype. Je kan misschien proberen om de 'frontend' altijd uit te zetten. Dit doe je in dpkg-reconfigure debconf. Als dat niet werkt dan kan je nog kijken op lijn 29 in /usr/sbin/update-inetd, wat voert dit script uit?

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 08-07-2025
Line 29 is de open(STDIN.... , zie hieronder.
code:
1
2
3
4
5
6
7
8
# hack to make update-inetd work in a script which calls debconf
if($ENV{DEBIAN_HAS_FRONTEND}) {
    my $file = ($ENV{DEBIAN_FRONTEND} eq 'noninteractive') ?
        '/dev/null' : '/dev/tty'; # see 4.13 changelog entry
    open(STDIN,  "<$file") or die "Couldn't reopen stdin";
    open(STDOUT, ">$file") or die "Couldn't reopen stdout";
    open(STDERR, ">$file") or die "Couldn't reopen stderr";
}


Ik denk dat ik DEBIAN_HAS_FRONTEND lekker op 0 zet, en wel zie wat er gaat gebeuren. Samba had ik al met de hand gefixt (kwestie van reconfigure), dus ik moet even wachten tot er weer een probleempje komt.. heb geen zin om er een te veroorzaken.

[ Voor 12% gewijzigd door QuarK op 26-08-2004 14:26 ]


  • Sihaya
  • Registratie: Juni 2001
  • Niet online

Sihaya

Pasfoto:

Je kunt ook tijdelijk het debconf front-end op non-interactive zetten. Kijk hiervoor in man 7 debconf, dus bijvoorbeeld voordat apt-get aangeroepen wordt het volgende te plaatsen:

export DEBIAN_FRONTEND=noninteractive

signature has expired