View previous topic :: View next topic |
Author |
Message |
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Tue Sep 04, 2007 9:04 am Post subject: Последние пробелемы - libexpat.so.0 и другие |
|
|
Вопрос:
После обновления системы получаю сообщение при работе/старте различных сервисов, например, apache:
"/usr/sbin/apache2: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory"
Ответ:
Это происходит при обновлении expat с версий 1.х до версий 2.х. Нужно пересобрать несколько пакетов по нижеследующему сценарию:
Code: | #first, expat itself
emerge -u1 expat
#now some basic libraries that are needed for building stuff
emerge -1 gettext XML-Parser
#make sure that old revdep-rebuild stuff is removed
rm /root/.revdep*
#now, everything else that is broken
revdep-rebuild -Xp
revdep-rebuild -X --library libexpat.so.0
|
Источники:
https://forums.gentoo.org/viewtopic-t-575655.html
https://forums.gentoo.org/viewtopic-t-577453.html |
|
Back to top |
|
|
user11 Tux's lil' helper
Joined: 25 Nov 2005 Posts: 149
|
Posted: Fri Sep 07, 2007 8:22 pm Post subject: |
|
|
Вопрос:
При обновлении системы компиляция qt заткнулась на:
Quote: | /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/bin/ld: warning: libexpat.so.0, needed by /usr/X11R6/lib/libfontconfig.so, not found (try using -rpath or -rpath-link)
/usr/X11R6/lib/libfontconfig.so: undefined reference to `XML_SetElementHandler'
...
collect2: ld returned 1 exit status |
Ответ:
По-видимому, при обновлении системы исчез /lib/libexpat.so.0 (вероятно, просто обновился на libexpat.so.1), а от него зависит fontconfig. От fontconfig зависит qt. Однако, emerge решил обновлять qt сразу, не пересобирая fontconfig, и это ему не удалось. Лечение - пересобрать libfontconfig.so:
Code: | emerge -1 fontconfig |
После этого сделать revdep-rebuild.
В моём случае это выглядело так:
Code: | emerge -NDu world
emerge -1 fontconfig
emerge -NDu world
revdep-rebuild --library libexpat.so.0
|
Альтернативное решение: попробовать временно вернуть на место потерянную библиотеку (например, сделать на ёё месте символьную ссылку на новую библиотеку), дообновлять систему, а затем вычистить ссылки на старую библиотеку:
Code: | ln -s /lib/libexpat.so.1 /lib/libexpat.so.0
emerge -NDu world
revdep-rebuild --library=libexpat.so.0
rm /lib/libexpat.so.0 |
Вполне возможно, эти рецепты могут оказаться полезными и при других аналогичных проблемах.
Литература:
https://forums.gentoo.org/viewtopic.php?p=4224739 # мои личные грабленаступания
https://forums.gentoo.org/viewtopic-t-575655.html # более репрезентативный источник
man revdep-rebuild |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|