Dlaczego moja aktualizacja do wersji 12.04 nie powiodła się z powodu błędu „nie znaleziono glibc” lub „libc6” lub „wymaga błędu jądra 2.6.24”?

8

Zaktualizowałem moją instalację serwera z wersji 11.04 do 11.10, a następnie do wersji 12.04 przez ssh. Wszystko wydaje się prawie w porządku - ale jest mały problem z glibc, który psuje mój apt.

Próbowałem, sudo apt-get install -fale nie dostaje tego, czego potrzebuje. Pracuję na maszynie wirtualnej OpenVZ.

Jak mogę naprawić moje zależności apt?

sysadmin@svr:~$ sudo apt-get update 
Ign http://archive.canonical.com precise InRelease
Ign http://archive.ubuntu.com precise InRelease
Ign http://archive.ubuntu.com precise-updates InRelease
Ign http://archive.ubuntu.com precise-security InRelease
Get:1 http://archive.ubuntu.com precise Release.gpg [198 B]
Hit http://archive.canonical.com precise Release.gpg 
Get:2 http://archive.ubuntu.com precise-updates Release.gpg [198 B]
Hit http://archive.canonical.com precise Release      
Get:3 http://archive.ubuntu.com precise-security Release.gpg [198 B]
Hit http://archive.canonical.com precise/partner i386 Packages
Get:4 http://archive.ubuntu.com precise Release [49.6 kB]
Ign http://archive.canonical.com precise/partner TranslationIndex
Get:5 http://archive.ubuntu.com precise-updates Release [49.6 kB]
Get:6 http://archive.ubuntu.com precise-security Release [49.6 kB]               
Get:7 http://archive.ubuntu.com precise/main i386 Packages [1274 kB]            
Ign http://archive.canonical.com precise/partner Translation-en                  
Get:8 http://archive.ubuntu.com precise/restricted i386 Packages [8431 B]
Get:9 http://archive.ubuntu.com precise/universe i386 Packages [4796 kB]
Hit http://archive.ubuntu.com precise/main TranslationIndex                                                                                                                       
Hit http://archive.ubuntu.com precise/restricted TranslationIndex                                                                                                                 
Hit http://archive.ubuntu.com precise/universe TranslationIndex                                                                                                                   
Get:10 http://archive.ubuntu.com precise-updates/main i386 Packages [20.2 kB]                                                                                                     
Get:11 http://archive.ubuntu.com precise-updates/restricted i386 Packages [770 B]                                                                                                 
Get:12 http://archive.ubuntu.com precise-updates/universe i386 Packages [2258 B]                                                                                                  
Get:13 http://archive.ubuntu.com precise-updates/main TranslationIndex [72 B]                                                                                                     
Get:14 http://archive.ubuntu.com precise-updates/restricted TranslationIndex [71 B]                                                                                               
Get:15 http://archive.ubuntu.com precise-updates/universe TranslationIndex [72 B]                                                                                                 
Get:16 http://archive.ubuntu.com precise-security/main i386 Packages [11.8 kB]                                                                                                    
Get:17 http://archive.ubuntu.com precise-security/restricted i386 Packages [14 B]                                                                                                 
Get:18 http://archive.ubuntu.com precise-security/universe i386 Packages [1357 B]                                                                                                 
Get:19 http://archive.ubuntu.com precise-security/main TranslationIndex [72 B]                                                                                                    
Get:20 http://archive.ubuntu.com precise-security/restricted TranslationIndex [70 B]                                                                                              
Get:21 http://archive.ubuntu.com precise-security/universe TranslationIndex [71 B]                                                                                                
Hit http://archive.ubuntu.com precise/main Translation-en                                                                                                                         
Hit http://archive.ubuntu.com precise/restricted Translation-en                                                                                                                   
Hit http://archive.ubuntu.com precise/universe Translation-en                                                                                                                     
Get:22 http://archive.ubuntu.com precise-updates/main Translation-en [9145 B]                                                                                                     
Hit http://archive.ubuntu.com precise-updates/restricted Translation-en                                                                                                           
Get:23 http://archive.ubuntu.com precise-updates/universe Translation-en [1344 B]                                                                                                 
Get:24 http://archive.ubuntu.com precise-security/main Translation-en [3549 B]                                                                                                    
Hit http://archive.ubuntu.com precise-security/restricted Translation-en                                                                                                          
Get:25 http://archive.ubuntu.com precise-security/universe Translation-en [760 B]                                                                                                 
Fetched 6279 kB in 57s (109 kB/s)                                                                                                                                                 
Reading package lists... Done
sysadmin@svr:~$ sudo apt-get ugrade
E: Invalid operation ugrade
sysadmin@svr:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libc6 : Depends: libc-bin (= 2.13-20ubuntu5.1) but 2.15-0ubuntu10 is installed
 libncurses5 : Depends: libtinfo5 (= 5.9-1ubuntu5) but 5.9-4 is installed
 libnih-dbus1 : Depends: libnih1 (= 1.0.3-4ubuntu9) but 1.0.3-4ubuntu2 is installed
E: Unmet dependencies. Try using -f.
sysadmin@svr:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  libswscale0 libavutil50 python-support g++-4.5 libboost-program-options1.42.0 librpmio1 libpostproc51 libavformat52 libstdc++6-4.5-dev libavfilter1 libavcodec52
  libboost-filesystem1.42.0 libboost-system1.42.0 libavdevice52
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libc-dev-bin libc6 libc6-dev libncurses5 libnih1
Suggested packages:
  glibc-doc
The following packages will be upgraded:
  libc-dev-bin libc6 libc6-dev libncurses5 libnih1
5 upgraded, 0 newly installed, 0 to remove and 335 not upgraded.
2 not fully installed or removed.
Need to get 0 B/9099 kB of archives.
After this operation, 1618 kB disk space will be freed.
Do you want to continue [Y/n]? 
locale: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by locale)
Preconfiguring packages ...
Setting up libc-bin (2.15-0ubuntu10) ...
(Reading database ... 31190 files and directories currently installed.)
Preparing to replace libc6-dev 2.13-20ubuntu5.1 (using .../libc6-dev_2.15-0ubuntu10_i386.deb) ...
Unpacking replacement libc6-dev ...
Preparing to replace libc-dev-bin 2.13-20ubuntu5.1 (using .../libc-dev-bin_2.15-0ubuntu10_i386.deb) ...
Unpacking replacement libc-dev-bin ...
Preparing to replace libc6 2.13-20ubuntu5.1 (using .../libc6_2.15-0ubuntu10_i386.deb) ...
locale: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by locale)
Checking for services that may need to be restarted...
Checking init scripts...
runlevel:/var/run/utmp: No such file or directory
Checking for services that may need to be restarted...
Checking init scripts...
runlevel:/var/run/utmp: No such file or directory
WARNING: init script for samba not found.
Stopping some services possibly affected by the upgrade (will be restarted later):
  cron: stopping...done.

WARNING: this version of the GNU libc requires kernel version
2.6.24 or later. Please upgrade your kernel before installing
glibc.

The installation of a 2.6 kernel _could_ ask you to install a new libc
first, this is NOT a bug, and should *NOT* be reported. In that case,
please add lenny sources to your /etc/apt/sources.list and run:
  apt-get install -t lenny linux-image-2.6
Then reboot into this new kernel, and proceed with your upgrade
dpkg: error processing /var/cache/apt/archives/libc6_2.15-0ubuntu10_i386.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Processing triggers for man-db ...
locale: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by locale)
Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.15-0ubuntu10_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
sysadmin@svr:~$ 
Billy Moon
źródło
Postanowiłem poczekać chwilę, aż zaktualizuję, mając nadzieję, że problem zostanie rozwiązany bez dalszych wysiłków. Kilka razy musiałem ponownie zainstalować system. Podejrzewam, że najlepsza odpowiedź może zawierać klucz do problemu, ale jeszcze go nie przetestowałem. Zaznaczę to po zweryfikowaniu - co postaram się zrobić wkrótce.
Billy Moon
Dzięki Billy - skomentuj odpowiedź, jeśli masz więcej pytań / problemów!
ish

Odpowiedzi:

11

Najpierw wyjaśnienie, potem rozwiązanie :)

Dzieje się tak, ponieważ na twoim hoście prawie na pewno działa OpenVZ w jądrze 2.6.18 (wszystkie kontenery OpenVZ współużytkują jądro hosta). Powodem może być stabilność lub zwykłe lenistwo. Problem polega na tym, że libc 2.15 dołączony do Precise wymaga jądra minimum 2.6.24 do działania. Czasami spowoduje to niepowodzenie aktualizacji wersji, ale możliwe jest jej ukończenie i przejście do częściowo zaktualizowanej sytuacji typu „nie tu i nie”, tak jak Ty.

Nie obawiaj się, wymaganie libc to opcja czasu kompilacji, którą można ustawić na niższą wartość (w takim przypadku biblioteka zawiera obejścia dla starszych jąder). Myślę, że ustawienie minimum na .24 to jeden ze sposobów przeciągnięcia ludzi do 2012 roku :)

Skonfigurowałem PPA zawierający ponownie skompilowaną bibliotekę libc, która będzie działać na wersji 2.6.18 lub nowszej (proszę sprawdzić uname -r!) I powinna zastąpić bieżącą bibliotekę libc dostarczoną przez Precise. Po prostu dodaj ppa: izx / ovz-libc , aktualizuj, a powinno ci to pomóc . W szczególności coś takiego:

apt-add-repository ppa:izx/ovz-libc
apt-get update
apt-get -f install
do-release-upgrade

i kontynuuj, aż aktualizacja zakończy się pomyślnie. Zdecydowanie NIE zalecam zastępowania żadnych zmienionych lub nieistniejących plików konfiguracyjnych.

Będę aktualizował ppa na bieżąco, gdy libc zostanie zaktualizowany w górę. Jeśli chcesz uniknąć podobnego błędu, kiedy to się zdarzy, możesz przypiąć libc-bindo mojego PPA z wysokim priorytetem, aby nie aktualizował się, dopóki „ustalona” wersja nie będzie dostępna z PPA.

Mam nadzieję, że to pomoże, i napisz tutaj, jeśli ktoś ma jakieś pytania lub inne uwagi.

ish
źródło
Czy mógłbyś wyjaśnić, jak mogłeś dokonać tej zmiany? Próbowałem przeszukiwać źródło libc6, ale nie mogę go znaleźć. Utknąłem w stanie częściowo zaktualizowanym na OpenVZ VPS z systemem 2.6.18, ale pakiety wymagają libc6 2.17, a nie 2.15. Każda pomoc będzie mile widziana.
red_sky
3

Wypróbuj to polecenie. Możesz otworzyć terminal za pomocą Alt+ Ctrl+ T:

sudo apt-get -o APT::Immediate-Configure=0 -f install

Po tym, jak możesz zrobić sudo apt-get upgrade.

Miałem ten sam problem ... używając serwera Ubuntu ... dziwne, prawda?
Mam nadzieję, że to zadziała dla ciebie.

clement.nuss
źródło
1

Dla wszystkich, którzy utknęli w aktualizacji do-dist i nie mogą uruchomić

apt-add-repository ppa:izx/ovz-libc

Wystarczy ręcznie dodać następujący wiersz do /etc/apt/sources.list:

deb http://ppa.launchpad.net/izx/ovz-libc/ubuntu lucid main
Wilko
źródło
To nie działa dla mnie z pojemnikami Virtuzzo. Używam szablonu z 10.04 i kończy się niepowodzeniem. Ale z Debiana 6.0 z bardziej zaktualizowanym jądrem działa dla Virtuozzo 4.6
shakaran
0

Nie wiem, czy istnieje inny sposób, ale miałem na pulpicie ważne pliki, których nie utworzyłem kopii zapasowej, gdy Ubuntu uderzyło mnie dokładnie w ten sposób, tak się złożyło, że miałem pod ręką instalację Multi-Option Boot Ubuntu 11.10 CD, więc zrestartowałem się z CD, a potem wybrałem „Uaktualnij z 12.04 LTS do 11.10” i po jakim czasie poświęciłem na ponowne instalowanie 11.10, w końcu jestem gotowy do pracy z nienaruszonymi ważnymi plikami.

Pascal Jünger
źródło