update problem

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
samlinux
Beiträge: 124
Registriert: 13.05.2004 19:26:38

update problem

Beitrag von samlinux » 10.04.2007 19:37:18

hallo, ich habe folgendes problem:

habe scheinbar einmal ein falsches update gemacht, wie auch immer das geht.

doch jetzt kann ich den server nicht mehr update.

:~# apt-get -f install
Reading Package Lists... Done
Building Dependency Tree... Done
Correcting dependencies... Done
The following extra packages will be installed:
debianutils e2fslibs e2fsprogs initscripts libblkid1 libc6 libdevmapper1.02 libselinux1 libsepol1 libss2 libuuid1 lsb-base mktemp mount
Suggested packages:
gpart parted e2fsck-static glibc-doc
The following NEW packages will be installed:
e2fslibs e2fsprogs initscripts libblkid1 libdevmapper1.02 libselinux1 libsepol1 libss2 libuuid1 lsb-base mktemp
The following packages will be upgraded:
debianutils libc6 mount
3 upgraded, 11 newly installed, 0 to remove and 148 not upgraded.
3 not fully installed or removed.
Need to get 0B/6002kB of archives.
After unpacking 1058kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 23109 files and directories currently installed.)
Preparing to replace libc6 2.3.2.ds1-22sarge4 (using .../libc6_2.3.6.ds1-13_i386.deb) ...

Name Service Switch update in the C Library: pre-installation question.

Running services and programs that are using NSS need to be restarted,
otherwise they might not be able to do lookup or authentication any more.
The installation process is able to restart some services (such as ssh or
telnetd), but other programs cannot be restarted automatically. One such
program that needs manual stopping and restart after the glibc upgrade by
yourself is xdm - because automatic restart might disconnect your active
X11 sessions.

Known packages that need to be stopped before the glibc upgrade are:
xdm kdm gdm postgresql xscreensaver

This script did not detect any installed services which need to be
stopped.

If you want to interrupt the upgrade now and continue later, please
answer No to the question below.

Do you want to upgrade glibc now? [Y/n] Y

WARNING: This version of glibc requires that you be running
kernel version 2.4.1 or later. Earlier kernels contained
bugs that may render the system unusable if a modern version
of glibc is installed.
dpkg: error processing /var/cache/apt/archives/libc6_2.3.6.ds1-13_i386.deb (--unpack):
subprocess pre-installation script returned error exit status 1
init: error while loading shared libraries: libsepol.so.1: cannot open shared object file: No such file or directory
Errors were encountered while processing:
/var/cache/apt/archives/libc6_2.3.6.ds1-13_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
habe jetzt schon eniges versucht und hoffe nicht damit den server noch mehr geschadet zu haben.

wie kann ich die fehlenden versionen nun wieder aktualisieren? Danke für eure Hilfe.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.04.2007 20:12:33

hier ist das für den Abbruch verantwortliche Codestück aus libc6.preinst:

Code: Alles auswählen

    # The GNU libc is now built with --with-kernel= >= 2.4.1, except on m68k
    if [ "$realarch" != m68k ]
    then
        if kernel_compare_versions "$kernel_ver" lt 2.4.1
        then
            echo WARNING: This version of glibc requires that you be running
            echo kernel version 2.4.1 or later.  Earlier kernels contained
            echo bugs that may render the system unusable if a modern version
            echo of glibc is installed.
            exit_check
        fi
    fi
und hier ist ein Testscript, welches du bitte auf deinem Server startest:

Code: Alles auswählen

    realarch=`uname -m`
    kernel_ver=`uname -r`

    # convert "armv4l" and similar to just "arm", and "mips64" and similar
    # to just "mips"
    case $realarch in
      arm*) realarch="arm";;
      mips*) realarch="mips";;
    esac

kernel_compare_versions () {
    verA=$(($(echo "$1" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/')))
        verB=$(($(echo "$3" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/')))

    test $verA -$2 $verB
}

    if [ "$realarch" != m68k ]
    then
        if kernel_compare_versions "$kernel_ver" lt 2.4.1
        then
            echo "$kernel_ver lt 2.4.1"
        else
            echo "$kernel_ver ge 2.4.1"
        fi
    else
            echo "kernelversion $kernel_ver ist egal"
    fi
EDIT: FEHLENDE HOCHKOMMA KORRIGIERT

Gruß
gms
Zuletzt geändert von gms am 11.04.2007 09:04:29, insgesamt 1-mal geändert.

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 10.04.2007 20:19:34

Von den Web- und Mailservern weggeschoben.

bye, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

samlinux
Beiträge: 124
Registriert: 13.05.2004 19:26:38

Beitrag von samlinux » 11.04.2007 08:22:14

Danke für das Testscript,

aber für was brauchen wir hier das testscript?

Wie sieht hier der Lösungsweg aus, um das Problem zu beheben? danke für eine Info.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 11.04.2007 08:45:16

samlinux hat geschrieben:Wie sieht hier der Lösungsweg aus, um das Problem zu beheben? danke für eine Info.
Das Problem wird erst behoben, wenn die Ursache des Problems bekannt ist. Bei der "Ursachenforschung" sollte uns dieses Testscript helfen, da es die für den Abbruch verantwortlichen Teile des Originalscripts beinhaltet

Benutzeravatar
Lirion
Beiträge: 318
Registriert: 11.04.2007 08:30:14
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Worms
Kontaktdaten:

Beitrag von Lirion » 11.04.2007 08:54:13

Dein Script oben hat einen "-Fehler ;)

Hier ist die korrigierte Version, für weniger versierte Shelluser:

Code: Alles auswählen

#!/bin/bash

    realarch=`uname -m`
    kernel_ver=`uname -r`

    # convert "armv4l" and similar to just "arm", and "mips64" and similar
    # to just "mips"
    case $realarch in
      arm*) realarch="arm";;
      mips*) realarch="mips";;
    esac

kernel_compare_versions () {
    verA=$(($(echo "$1" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/')))
        verB=$(($(echo "$3" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/')))

    test $verA -$2 $verB
}

    if [ "$realarch" != m68k ]
    then
        if kernel_compare_versions "$kernel_ver" lt 2.4.1
        then
            echo "$kernel_ver" lt 2.4.1
        else
            echo "$kernel_ver" ge 2.4.1
        fi
    else
            echo "kernelversion" $kernel_ver ist egal
Das haust du in eine Datei, und startest diese mit

Code: Alles auswählen

sh DATEI
Dann hast du deine Kernelversion. Ist sie kleiner als 2.4.1, bekommst du etwas wie "2.2.16 lt 2.4.1" und solltest nen neuen Kernel reinsetzen. Ansonsten steht statt lt ge da und dann schauen wir mal weiter.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 11.04.2007 09:03:07

Lirion hat geschrieben:Dein Script oben hat einen "-Fehler ;)
danke, da ist mir ein Hochkomma hineingerutscht, oder es fehlt eines, dafür fehlt bei dir das "fi" zum Schluß :lol:
Lirion hat geschrieben: Dann hast du deine Kernelversion. Ist sie kleiner als 2.4.1, bekommst du etwas wie "2.2.16 lt 2.4.1" und solltest nen neuen Kernel reinsetzen. Ansonsten steht statt lt ge da und dann schauen wir mal weiter.
Ohne es wirklich zu wissen, würde ich eher auf eine Fehlermeldung tippen, z.B. "sed: command not found"

Gruß
gms

Benutzeravatar
Lirion
Beiträge: 318
Registriert: 11.04.2007 08:30:14
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Worms
Kontaktdaten:

Beitrag von Lirion » 11.04.2007 09:18:06

gms hat geschrieben:
Lirion hat geschrieben:Dein Script oben hat einen "-Fehler ;)
danke, da ist mir ein Hochkomma hineingerutscht, oder es fehlt eines, dafür fehlt bei dir das "fi" zum Schluß :lol:
:roll: Man sollte solche Dinge nicht morgens früh treiben... Bin noch nicht so ganz wach :D
Ich hab die funktionierende Version einfach mal hier hochgeladen, wenn gms was dagegen hat, tu ich's wieder runter.
Ohne es wirklich zu wissen, würde ich eher auf eine Fehlermeldung tippen, z.B. "sed: command not found"
Komm grad nicht mit... warum das?

Pawel
Beiträge: 284
Registriert: 27.11.2006 03:59:39

Beitrag von Pawel » 11.04.2007 09:25:42

Ihr driftet gerade ziemlich von der Problemstellung ab :)

Hätte ein einfaches "uname -a" nicht gereicht um rauszufinden, ob er eine Kernel Version kleiner als 2.4.1 hat? :wink:

samlinux
Beiträge: 124
Registriert: 13.05.2004 19:26:38

Beitrag von samlinux » 11.04.2007 09:44:52

danke für die tolle anteilnahme! :-)


hier das ergebis des testscriptes:

2.2.20 lt 2.4.1

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 11.04.2007 09:53:39

Pawel hat geschrieben: Hätte ein einfaches "uname -a" nicht gereicht um rauszufinden, ob er eine Kernel Version kleiner als 2.4.1 hat? :wink:
nicht wenn er schon mit der Nase drauf gestoßen wurde :lol:
Ich meine die Fehlermeldung ist doch eindeutig:
This version of glibc requires that you be running
kernel version 2.4.1 or later. Earlier kernels contained
bugs that may render the system unusable if a modern version
of glibc is installed.
samlinux hat geschrieben: hier das ergebis des testscriptes:

2.2.20 lt 2.4.1
Ich hätte mehr Vertrauen in dich gesetzt und habe daher einen Fehler bei der Ausführung des Scripts vermutet

Gruß
gms

samlinux
Beiträge: 124
Registriert: 13.05.2004 19:26:38

Beitrag von samlinux » 11.04.2007 10:02:56

ok,

aber wie muss ich jetzt weiter vorgehen ?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 11.04.2007 10:10:05

Upgrade verschieben und zuerst einen neueren Kernel installieren. Nach dem das Upgrade von libc6 nicht funktioniert, wirst du wahrscheinlich einen Kernel aus Sarge nehmen müssen. Für einen Etch-Kernel fehlen dir noch die Userspace Tools ( initrd-tools, udev, module-init-tools ), die du ja (noch) nicht installieren kannst

Gruß
gms

edit:

Ich möchte dir noch dieses Dokument empfehlen: http://www.debian.org/releases/stable/i ... ng.de.html
Hier wird auch das Upgrade ganz genau beschrieben, selbst vor obigen Fehler wird gewarnt:
release notes hat geschrieben: 4.1.5 Unterstützung für 2.2er Kernel wurde entfernt

Falls ein Kernel vor Version 2.4.1 verwendet wird, muss dieser (mindestens) auf die aktuelle Version der 2.4-Serie aktualisiert werden, bevor glibc aktualisiert wird, also am besten bevor das Upgrade gestartet wird. Es wird empfohlen, direkt auf den Kernel 2.6.8 aus Sarge zu aktualisieren, statt einen Kernel der 2.4er Serie zu verwenden.

samlinux
Beiträge: 124
Registriert: 13.05.2004 19:26:38

Beitrag von samlinux » 11.04.2007 10:43:25

danke erstmals für die Hilfe,

vielleicht könnt ihr mir noch eine Info geben, wie ich am besten das Kernel-Update mache und welchen Kernel ich verwenden soll?

Antworten