LINUX.ORG.RU

сдох pacman

 


0

1

решил обновить систему в арч:
pacman -Syu

он сказал что сначала надо обновить сам pacman
ок, обновил:


[user@myhost m]$ pacman -Syu
pacman: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

[user@myhost m]$ sudo locate libcurl.so.4
/usr/lib/libcurl.so.4
/usr/lib/libcurl.so.4.2.0

как это пофиксить? где должна лежать либа?


ldd $(which pacman)
linux-gate.so.1 (0xf7709000)
libalpm.so.7 => /usr/lib/libalpm.so.7 (0xf76bc000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf7516000)
libcurl.so.4 => not found
libgpgme.so.11 => not found
libarchive.so.12 => not found
libcrypto.so.1.0.0 => /usr/lib32/libcrypto.so.1.0.0 (0xf734f000)
/lib/ld-linux.so.2 (0xf770a000)
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf734a000)
libz.so.1 => /usr/lib32/libz.so.1 (0xf7333000)

Дай вывод

ls -lh /usr/lib/libcurl.*

А потом если всё ОК, то:

LD_LIBRARY_PATH="/usr/lib" pacman -Syu
post-factum ★★★★★ ()
Ответ на: комментарий от post-factum

[user@myhost m]$ ls -lh /usr/lib/libcurl.*
-rw-r--r-- 1 root root 758K May 24 19:47 /usr/lib/libcurl.a
lrwxrwxrwx 1 root root 16 May 24 19:47 /usr/lib/libcurl.so -> libcurl.so.4.2.0
lrwxrwxrwx 1 root root 16 May 24 19:47 /usr/lib/libcurl.so.4 -> libcurl.so.4.2.0
-rwxr-xr-x 1 root root 373K May 24 19:47 /usr/lib/libcurl.so.4.2.0


[user@myhost m]$ LD_LIBRARY_PATH=«/usr/lib» pacman -Syu
pacman: error while loading shared libraries: libcurl.so.4: wrong ELF class: ELFCLASS64

получается он при обновлении выкачал кривой (или не докачал) новый libcurl?

sergey-novikov ★★★ ()
Ответ на: комментарий от sergey-novikov

ядро 32битное? как получилось тогда, что libcurl 64битный?

waker ★★★★★ ()

Ты сам пакман с АУРа не собирал случайно?

post-factum ★★★★★ ()
Ответ на: комментарий от sergey-novikov

С любого зеркала арча. У тебя пакман обновился, а курл - нет. распакуй курл руками, а потом поправь конфиг пакмана, чтобы он обновлял все его зависимости (см SyncFirst)

sergej ★★★★★ ()

Вчера на нетбуке была та же проблема, пришлось всё обновлять с live-usb. Уже второй раз наступаю на грабли при обновлении с этим симлинком на /lib. Только в первый раз грабли были другие.

Interlace ★★ ()
Ответ на: комментарий от Interlace

качал отсюда - http://www.archlinux.org/packages/core/i686/curl/
для x86_64 и i686 на всякий случай
каждый раз закидывал libcurl.a libcurl.so libcurl.so.4 libcurl.so.4.2.0 в /usr/lib

потом запускал pacman/yaourt - та же ошибка:
pacman: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

LD_LIBRARY_PATH=«/usr/lib» pacman -Syu
pacman: error while loading shared libraries: libgpgme.so.11: wrong ELF class: ELFCLASS64


это неправильные файлы или надо обновлять не только их или надо перезагружаться?

Interlace, что именно ты обновлял руками?

sergey-novikov ★★★ ()

Ты как-то умудрился 32-битный pacman установить, причём он лезет в /usr/lib32 зачем-то (это же каталог мультилиба).

Покажи grep ^Arch /etc/pacman.conf и залей /var/log/pacman.log на пастебин.

gatsu ()
Ответ на: комментарий от sergey-novikov

Я загрузил live-образ арча с флешки, настроил сеть, подмонтировал корень в /mnt/arch/, затем сделал «pacman -Syud -r /mnt/arch/ --ignore glibc», затем «pacman -Su -r /mnt/arch/» (проблем с конфликтами файлов в /lib в этот раз не было).

Но вот затем после перезагрузки не смог примонтироваться корень (unable to find root device), пришлось опять загружаться с флешки, на этот раз чрутиться и сделать «pacman -S mkinitcpio systemd-tools linux». Только после этого система ожила.

В общем вчера долго с этим тупил и не гарантирую, что способ хорош. А вообще на форуме арча вроде бы много тем с такой же проблемой.

Interlace ★★ ()
Ответ на: комментарий от sergey-novikov

Собери пакман руками. Потом переустанови его самого через самого себя.

tyakos ★★★ ()
Ответ на: комментарий от tyakos

переустанови его самого через самого себя.

Не получится, он же не запускается.

Да и собирать его нет смысла, предыдущая версия осталась в /var/cache/pacman/pkg/. Но прежде чем распаковывать заветный архив следует посмотреть на /var/log/pacman.log — какие ещё пакеты были обновлены.

gatsu ()
Ответ на: комментарий от gatsu

Я сказал потом. После сборки и установки из исходников ручками. Да, я предлагаю превратить систему в слаку.

tyakos ★★★ ()
Ответ на: комментарий от sergey-novikov

переустановил pacman и curl из сорцов
теперь ругается на
pacman: error while loading shared libraries: libalpm.so.7: cannot open shared object file: No such file or directory

нагуглил что надо переустановить glibc
скачал сорцы, собрал, начал устанавливать:

[/home/user/tmp/glib/glibc-2.14/glibc-build]

/bin/sh: /lib/libc.so.6: version `GLIBC_2.15' not found (required by /bin/sh)
/bin/sh: /lib/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib/libreadline.so.6)
make[1]: [install] Error 1 (ignored)
CC=«gcc» /usr/bin/perl scripts/test-installation.pl /home/user/tmp/glib/glibc-2.14/glibc-build/
/bin/sh: /lib/libc.so.6: version `GLIBC_2.15' not found (required by /bin/sh)
/bin/sh: /lib/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib/libreadline.so.6)
make[1]: *** [install] Error 1
make[1]: Leaving directory `/home/deex/tmp/glib/glibc-2.14'
make: *** [install] Error 2

какого черта glibc требует glibc?!

sergey-novikov ★★★ ()
Ответ на: комментарий от sergey-novikov

теперь все ещё веселее:

su root

Password:
bash: /lib/libc.so.6: version `GLIBC_2.15' not found (required by bash)
bash: /lib/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib/libreadline.so.6)

не работает ни su, ни логин в другие терминалы, ни sudo

sergey-novikov ★★★ ()
Ответ на: комментарий от sergey-novikov

ну и система теперь не грузится, зависает на «running early hook [udev]»
с лайв-флешки загрузился, но как её восстановить - хз

пробовал скачать glibc 2.16 и заменить файлы в системе
не помогло

sergey-novikov ★★★ ()
Ответ на: комментарий от sergey-novikov

в каком логе можно увидеть отчего зависает udev?

если в /var/log сделать grep udev *
то вываливается много чего, но ошибок я там не вижу

sergey-novikov ★★★ ()

решил обновить систему в арч:
он сказал что сначала надо обновить сам pacman
. . .
теперь chroot делай с live-системы

Арч, такой арч. . .

comp00 ★★★★ ()
Ответ на: комментарий от comp00

делаю чрут из лайва:

chroot /media/sdb1

/bin/bash: /lib/libc.so.6: version `GLIBC_2.15' not found (required by /bin/bash)
/bin/bash: /lib/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib/libreadine.so.6)

и не делается чрут

sergey-novikov ★★★ ()
Ответ на: комментарий от sergey-novikov

о чудо!
я достал из кеша пакмена glibc2.15, распаковал, закинул в систему с заменой и она загрузилась!

sergey-novikov ★★★ ()
Ответ на: комментарий от sergey-novikov

только теперь часть прог не запускается, требует 2.16
где взять сорцы 2.15 чтобы его нормально скомпилить и установить?

sergey-novikov ★★★ ()

error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

Если бы такое случилось в генте, волшебный revdep-rebuild вс бы исправил. А в других дистрах с этими либами гемор.

lyrix87 ()
Ответ на: комментарий от lyrix87

Если бы такое случилось в генте, волшебный revdep-rebuild вс бы исправил.

Угу.

calculate maelstrom # revdep-rebuild /bin/bash: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /bin/bash) /bin/bash: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /bin/bash)

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.