Поиск нужных библиотек и rpm

Материал из OSZone.net wiki.

Перейти к: навигация, поиск


Содержание

Поиск нужных библиотек в rpm

Достаточно часто встречающийся вариант - приложение не стартует, жалуясь на нехватку библиотек. Что делать?

Прежде всего лучше подобрать родную (для Вашего дистрибутива) библиотеку. Прежде всего надо выяснить вопрос - какая библиотека нужна и в какой пакет она входит.

Как узнать какой библиотеки не хватает

Это определяется простой командой ldd, например

>ldd /usr/bin/mc

       libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00a09000)
       libext2fs.so.2 => /lib/libext2fs.so.2 (0x00b26000)
       libgpm.so.1 => /usr/lib/libgpm.so.1 (0x00265000)
       libslang.so.1 => /usr/lib/libslang.so.1 (0x0084c000)
       libc.so.6 => /lib/libc.so.6 (0x00111000)
       librt.so.1 => /lib/librt.so.1 (0x00c3d000)
       libcom_err.so.2 => /lib/libcom_err.so.2 (0x00230000)
       libm.so.6 => /lib/libm.so.6 (0x00731000)
       libtinfo.so.5 => /lib/libtinfo.so.5 (0x008e4000)
       libdl.so.2 => /lib/libdl.so.2 (0x00ae5000)
       /lib/ld-linux.so.2 (0x00f6c000)
       libpthread.so.0 => /lib/libpthread.so.0 (0x00233000)

Как видно все библиотеки найдены а вот я "спрятал" библиотеку libgpm

>ldd /usr/bin/mc

       libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x004db000)
       libext2fs.so.2 => /lib/libext2fs.so.2 (0x00781000)
       libgpm.so.1 => not found
       libslang.so.1 => /usr/lib/libslang.so.1 (0x00c15000)
       libc.so.6 => /lib/libc.so.6 (0x00869000)
       librt.so.1 => /lib/librt.so.1 (0x00111000)
       libcom_err.so.2 => /lib/libcom_err.so.2 (0x00235000)
       libdl.so.2 => /lib/libdl.so.2 (0x002d0000)
       libm.so.6 => /lib/libm.so.6 (0x00801000)
       /lib/ld-linux.so.2 (0x0070b000)
       libpthread.so.0 => /lib/libpthread.so.0 (0x00db6000)


Как узнать в каком именно rpm содержится нужная библиотека?
      Рекомендуем замечательный сайт: http://rpmfind.net/
      Пример запроса: http://rpmfind.net/linux/rpm2html/search.php?query=ld-linux.so.2


  • А есть более unix-way способы? То есть можно ли найти пакет, зная только одно составляющее, пользуясь какими-нибудь стандартными командами?

Ответ ruslandh:

      Можно, надо вытащить составлющие всех пакетов и пропустить через grep
      cd <папка с rpm>
      rpm -qpil * | grep -B40 -m1 ld-linux.so.2


  • Для поиска пакетов в дистрибутивах с имеющимся apt очень подходит :
  apt-cache search КЛЮЧЕВОЕ_СЛОВО_ПОИСКА

Например :

  apt-cache search ffmpeg
  ffmpeg - Быстрый кодировщик/декодировщик MPEG1/MPEG4/H263/RV и AC3/MPEG
  ffmpeg-doc - Documentation files for ffmpeg project.
  ffmpeg-vhook - The video hook functionality for ffmpeg
  ffmpeg2theora - A simple converter to create Ogg Theora files
  ffplay - A very simple media player using the ffmpeg and SDL libraries
  gst-ffmpeg - GStreamer streaming media framework plug-in using FFmpeg
  kmplayer - Графическая оболочка MPlayer/Xine/ffmpeg/ffserver/VDR для KDE
  libakode - A simple audio backend
  libavcodec - ffmpeg codec library
  libavformat - ffmpeg file format library
  libffmpeg - Shared libraries to run ffmpeg
  libffmpeg-devel - Development files for ffmpeg
  libffmpeg-devel-static - ffmpeg static libraries
  libmpeg3hv - advanced editing and manipulation of MPEG streams (cinelerra's internal)
  libmpeg3hv-devel - advanced editing and manipulation of MPEG streams (development files)
  libmpeg3hv-utils - advanced editing and manipulation of MPEG streams (development files)
  libpostproc - ffmpeg video postprocessing library
  libquicktimehv - Quicktime 4 Linux Cinelerra internal library
  libquicktimehv-devel - Quicktime 4 Linux (Cinelerra internal) library (development files)
  vlc-normal - Normal package for VideoLAN Client
  vlc-plugin-ffmpeg - FFMPeg plugin for the VideoLAN client

Читаем:

Форум

Личные инструменты