как узнать версию библиотеки linux

Как узнать версию библиотеки linux

Я начинающий но уже продвинутый. Не могу сообразить принципы стандартной сборки приложения linux.

Вопросы возникли при попытках сборки vlc player. Это здоровенный можно сказать мультимедийный фрэймворк. Чтобы его собрать нужно

30 других пакетов которые и между собой тоже связаны. Там есть автоматизация сборки всех нужных пакетов, но с первого раза не получилось. Процесс несколько раз стопорился и в каждом случае приходилось вручную разбираться с несобирающимся пакетом. И когда он наконец таки собрался, заработал тоже не сразу. Пришлось пересобирать несколько раз а на каждую пересборку не меньше 40 минут уходило. Я злился!

Что делает ldconfig? Т.е. не может ли он тоже повлиять на то какая версия ffmpeg будет использоваться. Ведь ldconfig при каждой загрузке запускается и что то связывает.

>MOPSLinux 5 = Slackware 11
>
>Я начинающий но уже продвинутый. Не могу сообразить принципы стандартной сборки приложения
>linux.
>
>Вопросы возникли при попытках сборки vlc player. Это здоровенный можно сказать мультимедийный
>фрэймворк. Чтобы его собрать нужно

30 других пакетов которые и между
>собой тоже связаны. Там есть автоматизация сборки всех нужных пакетов, но
>с первого раза не получилось. Процесс несколько раз стопорился и в
>каждом случае приходилось вручную разбираться с несобирающимся пакетом. И когда он
>наконец таки собрался, заработал тоже не сразу. Пришлось пересобирать несколько раз
>а на каждую пересборку не меньше 40 минут уходило. Я злился!

>
>Не могу сообразить порядок вообще т.е.
>1. autotools делают файлы Makefile и configure

autotools делают configure, потом configure делает Makefile’ы и config.h’ы.
Делают они это преотвратно, IMHO.

>2. gcc и g++ собирает файлы «o» из файлов c/cpp + h/hpp

>Где определяется что программа будет не статической а использовать «so» и какие
>? Т.е. например пакет ffmpeg у меня уже есть в /usr/local.
>Сборочный скрипт vlc качает ffmpeg в свой подкаталог и как быть
>уверенным что при сборке будет использоваться именно скаченная версия

man ldconfig
Плюс полезные переменные LIBRAY_PATH и LD_LIBRARY_PATH

>Что делает ldconfig? Т.е. не может ли он тоже повлиять на то
>какая версия ffmpeg будет использоваться. Ведь ldconfig при каждой загрузке запускается
>и что то связывает.

Не «что-то связывает», а устанавливает порядок, в котором по стандартным каталогам
ищутся библиотеки.

А Вы пойдете к дантисту, который обучался по книжке «A complete idiot’s
guide to dental care»? 😉

Источник

Библиотеки Linux

Все мы привыкли пользоваться программами в любой операционной системе для решения своих задач. Но за функциональностью программ стоит еще одна вещь, с которой мы редко встречаемся при обычной работе с компьютером. Это библиотеки, которые содержат общий набор функций и возможностей, используемых программами. Например, большинство программ, написанных на Си, используют стандартную библиотеку Си, в которой содержатся все основные возможности взаимодействия с системой.

У каждой программы есть свой набор библиотек, которые должны быть в системе чтобы она смогла работать. Иначе бы программистам пришлось заново изобретать различные алгоритмы, писать много кода и разработка программ занимала бы в разы больше времени. В этой статье мы собрали основные библиотеки Linux, а также их предназначение. Эта информация поможет вам лучше освоиться в системе.

Что такое библиотеки?

Как получить информацию о библиотеках?

Перед тем как перейти к рассмотрению самих библиотек, вам, наверное, будет интересно, как получить информацию о них и узнать где они находятся в вашей системе. Библиотеки Linux могут быть размещены в различных каталогах, в зависимости от дистрибутива, но посмотреть эти каталоги можно, выполнив:

как узнать версию библиотеки linux. Snimok ekrana ot 2017 04 29 15 01 10. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-Snimok ekrana ot 2017 04 29 15 01 10. картинка как узнать версию библиотеки linux. картинка Snimok ekrana ot 2017 04 29 15 01 10.

Во всех перечисленных здесь каталогах находятся статические и динамически библиотеки Linux:

как узнать версию библиотеки linux. Snimok ekrana ot 2017 04 29 15 02 46. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-Snimok ekrana ot 2017 04 29 15 02 46. картинка как узнать версию библиотеки linux. картинка Snimok ekrana ot 2017 04 29 15 02 46.

Информацию о зависимостях каждой библиотеки вы можете посмотреть командой ldd:

как узнать версию библиотеки linux. Snimok ekrana ot 2017 04 29 15 06 45. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-Snimok ekrana ot 2017 04 29 15 06 45. картинка как узнать версию библиотеки linux. картинка Snimok ekrana ot 2017 04 29 15 06 45.

А еще можно узнать какому пакету принадлежит библиотека в Ubuntu:

как узнать версию библиотеки linux. otussysadmin. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-otussysadmin. картинка как узнать версию библиотеки linux. картинка otussysadmin.

как узнать версию библиотеки linux. Snimok ekrana ot 2017 04 29 15 08 37. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-Snimok ekrana ot 2017 04 29 15 08 37. картинка как узнать версию библиотеки linux. картинка Snimok ekrana ot 2017 04 29 15 08 37.

Как видите, библиотека ld.so принадлежит пакету libc6, точнее она входит в набор инструментов Си. Более подробно, о том, как устанавливать новые библиотеки и решать проблемы с ними, описано в статье библиотеки Ubuntu.

Основные библиотеки

Это библиотеки основных языков программирования, которые содержат базовую функциональность для взаимодействия с системой.

Библиотеки кодеков

Эти библиотеки содержат наборы кодеков для воспроизведения различных медиа данных. Некоторые из них имеют несвободную лицензию или закрытый исходный код:

Звуковые библиотеки

Работа с архивами

Графические библиотеки

Работа с текстом

Безопасность

Библиотеки драйверов

Эмуляция

Выводы

В этой статье мы собрали основные библиотеки Linux, которые имеют наибольшее значение для работы операционной системы. Конечно, невозможно перечислить здесь абсолютно все библиотеки, потому что их очень много. Надеюсь эта информация была полезной для вас.

На завершение урок про библиотеки Linux:

Источник

Как узнать версию библиотеки linux

1. «Общий порядок компиляции + как узнать версию библиотеки»
Сообщение от DeadMustdie как узнать версию библиотеки linux. email. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-email. картинка как узнать версию библиотеки linux. картинка email.как узнать версию библиотеки linux. user profiles. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-user profiles. картинка как узнать версию библиотеки linux. картинка user profiles.(??) on 12-Фев-07, 11:36
как узнать версию библиотеки linux. ab1858440fc76be334b38a12e1472a27?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-ab1858440fc76be334b38a12e1472a27?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar. картинка как узнать версию библиотеки linux. картинка ab1858440fc76be334b38a12e1472a27?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar.От: opener
Дата:23.05.13 12:58
Оценка:

Ну вот лежит у меня в системе libxml2.so
Как узнать, из какого пакета она была установлена?

ДД>Какими командами — зависит от дистрибутива.

как узнать версию библиотеки linux. 0c5a265f89d81b184b91983a75390861?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-0c5a265f89d81b184b91983a75390861?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar. картинка как узнать версию библиотеки linux. картинка 0c5a265f89d81b184b91983a75390861?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar.От: ДимДимычhttp://klug.org.ua
Дата:23.05.13 13:11
Оценка: 2 (1)

Здравствуйте, opener, Вы писали:

O>Ну вот лежит у меня в системе libxml2.so
O>Как узнать, из какого пакета она была установлена?
O>Linux RedHat

Если это файл, а не симлинк, то

Если симлинк, то глянуть, на какой файл он смотрит. В моей системе, например:

как узнать версию библиотеки linux. 461f0ade50a01275172668e11ef5bd42?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-461f0ade50a01275172668e11ef5bd42?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar. картинка как узнать версию библиотеки linux. картинка 461f0ade50a01275172668e11ef5bd42?s=32&r=g&d=http%3a%2f%2frsdn.org%3a80%2fImages%2fDefaultGravatar.От: zaufi
Дата:23.05.13 15:49
Оценка:

Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, opener, Вы писали:

O>>Ну вот лежит у меня в системе libxml2.so
O>>Как узнать, из какого пакета она была установлена?
O>>Linux RedHat

ДД>Если это файл, а не симлинк, то
ДД>

ДД>Если симлинк, то глянуть, на какой файл он смотрит. В моей системе, например:
ДД>

ДД>Версия 2.9.1.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

🔥 Популярное

Руководство по команде grep в Linux

15 примеров команды PING для диагностики сети

Рекурсивно найти слово в файлах и папках Linux

15 примеров CURL в Linux

👌 Похожее

Установка MySQL Server на CentOS 7

Базовые основы устранения неполадок в Unix

Работа с жесткими дисками в Linux

Управление библиотеками в Linux

В данной статье мы посмотрим, что такое статические и динамические библиотеки. Местоположение библиотек по умолчанию. Определение используемых библиотек. Загрузка библиотек.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

как узнать версию библиотеки linux. laptop. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-laptop. картинка как узнать версию библиотеки linux. картинка laptop.

как узнать версию библиотеки linux. 1. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-1. картинка как узнать версию библиотеки linux. картинка 1.

Библиотеки это набор функций, которые могут использоваться в различных программах. Библиотеки могут быть статические (библиотека привязывается к определенной программе или софт содержит данную библиотеку в своем теле.) и динамическими (библиотеки грузятся в оперативную память и используются). Плюсы первого варианта нет проблемы совместимости, т. к. софт уже в себе содержит библиотеку, библиотека всегда с собой. Но при этом программы становятся большие по размеры и т.к каждая может загружать свои библиотеки, а иногда и одинаковые. Второй вариант значительно лучше, сами программы по своему размеру меньше. Библиотека загружается один раз в оперативку. И следующая программа, которой необходимы такие же функции, берет и использует эти данные.

По умолчанию библиотеки в Linux находятся в двух папках. Это корневая папка /lib в ней находятся библиотеки, которые используют программы, расположенные в корневой папке /bin.

как узнать версию библиотеки linux. 2. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-2. картинка как узнать версию библиотеки linux. картинка 2.

И есть вторая папка /usr/lib. В ней находятся библиотеки, которые используют программы расположенные /usr/bin. Пути к библиотекам указаны файле /etc/ld.so.conf. Данный файл можно просмотреть стандартным способом, через утилиту cat.

как узнать версию библиотеки linux. 3. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-3. картинка как узнать версию библиотеки linux. картинка 3.

Видим, что написано включить все библиотеки, которые расположены по пути, указанном в файле. Те которые оканчиваются на .conf. Он просто включает в себя все настройки, которые находятся в конфигурационных файлах, в данной директории. Переходим в данную директорию.

как узнать версию библиотеки linux. 4. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-4. картинка как узнать версию библиотеки linux. картинка 4.

В данной директории мы можем видеть 2 файла конфигурации, в зависимости от версии и наполнения операционной системы их может быть и больше. Ну и соответственно в конфигурационных файлах находятся пути к директориям, где лежат необходимые для работы библиотеки. Если мы ставим какое, то свое программное обеспечение, которому необходимы дополнительные библиотеки, не идущие в составе дистрибутива linux, то в данной директории может создаться свой конфигурационный файл. Например: если мы используем систему виртуализации VMware, то к каждой VM устанавливаем VMware tools то данное программное обеспечение создаст свой конфигурационный файл с путями для своих библиотек.

Переходим в директорию cd /etc/ и отсортируем так, чтобы в результатах все, что содержит ld.

как узнать версию библиотеки linux. 5. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-5. картинка как узнать версию библиотеки linux. картинка 5.

Давайте посмотрим, как, определить какими библиотеками пользуется какая программа.

Для этого мы будем использовать команду ldd и путь к бинарному файлу. Например: Программа ls которая используется для вывода списка файлов в каталоге. Она находится в каталоге /bin/ls.

В результате получим мы следующее:

как узнать версию библиотеки linux. 6. как узнать версию библиотеки linux фото. как узнать версию библиотеки linux-6. картинка как узнать версию библиотеки linux. картинка 6.

Возможно добавление библиотек вручную, это может потребоваться если мы ставим совершенно стороннее программное обеспечение, которое очень трудно взаимодействует с Linux или устаревшее. Т.е. которое само не может создать конфигурационный файл и разнести библиотеки в системные директории Linux. Если мы хотим сделать это вручную, тогда нам необходим тот самый файл /etc/ld.so.conf. В данный файл мы можем дописать путь к файлу конфигурации библиотек тех, которые нам нужны. Либо есть более легкий вариант с использованием переменной export LD_LIBRARY_PATH и указать путь к тем особенным библиотекам, которые будет использовать наша «особенная» программа. Обычно все стороннее программное обеспечение устанавливается в папку /opt. Итоговый вариант будет выглядеть как: export LD_LIBRARY_PATH=/opt/soft/lib и когда пройдет экспорт, у нас попробует погрузится из этого пути библиотека, но перед этим необходимо не забыть сделать ldconfig.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Выполняю установку, настройку, сопровождение серверов. Для уточнения деталей используйте форму обратной связи

В Linux исполняемые файлы можно условно разделить на две группы – те, которые содержат в себе весь код, необходимые для работы, и те, которым необходимы разделяемые библиотеки. Первые называют статически собранными бинарными файлами, вторые называют динамически собранными исполняемыми файлами.

Статически собранные программы характеризуются тем, что могут корректно функционировать в любых условиях, и не зависят от наличия или отсутствия разделяемых библиотек, что может оказаться полезным в ситуациях, когда возникают конфликты версий разделяемых библиотек, или когда системные библиотеки повреждены или недоступны (например во время восстановления операционной системы после серьезного сбоя). К недостаткам таких исполняемых файлов следует отнести то, что они имеют значительный размер и для обновления программы необходимо полностью заменить ее исполняемый файл – например, если несколько статически собранных программ, которые работают с архивами ZIP, содержат ошибку, то для исправления ошибки необходимо заменить все эти программы, что может быть затруднено (например, будет трудно точно установить, какие именно программы содержат ошибочный код и нуждаются в обновлении). Кроме того, статически собранные программы не умеют совместно использовать совпадающие участки кода, что ведет к излишнему расходу системных ресурсов.

Динамически собранные исполняемые файлы для корректной работы требуют наличия файлов разделяемых библиотек, и соответственно при их отсутствии/повреждении не могут корректно функционировать, но зато для обновления программы и исправления ошибки часто оказывается достаточным просто заменить соответствующую разделяемую библиотеку, после чего ошибка исчезает во всех программах, которые эту библиотеку используют динамически. Динамически связанные программы также значительно меньше по объему, чем статически связанные, и код разделяемых библиотек может использоваться одновременно многими программами – что позволяет экономить системные ресурсы.

Подавляющее большинство программ в современных дистрибутивах Linux являются динамически собранными. Определить тип исполняемого файла (статический ли он либо с динамическим связыванием) можно, например, с помощью команды ldd:

# ldd /bin/su
linux-gate.so.1 => (0xb77d0000)
libpam.so.0 => /lib/libpam.so.0 (0xb77be000)
libpam_misc.so.0 => /lib/libpam_misc.so.0 (0xb77bb000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb765f000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb765b000)
/lib/ld-linux.so.2 (0xb77d1000)

Но здесь нас подстерегает несколько НО:

1) Существует способ загрузки библиотек в обход ldd, функцией dlopen(). Такие библиотеки в выводе ldd не отображены.

2) Принцип работы ldd состоит в следующем: она устанавливает переменную окружения LD_TRACE_LOADED_OBJECTS, а затем запускает программу на исполнение. Входящий в libc загрузчик динамических библиотек (для GNU glibc это ld-linux.so) проверяет наличие этой переменной. Если она установлена, то вместо нормального запуска программы он выводит список используемых ею динамически подгружаемых библиотек и завершает работу.

То есть, мало того, что не все библиотеки (в идеале) мы сможем увидеть, так ещё и запускаем на исполнение файл! А если это руткит? Что же делать? Выход есть, правда не совсем удобный.

Выход второй (для пунктов 1 и 2): использовать команду strace. Правда вывод не такой удобный будет, как в случае с ldd.

Так же можно эту информацию получить и таким образом:

Для более детальной вычинки бинарника можно использовать утилиту objdump и strace.

Что же делать, если вы получаете сообщения такого плана:

error while loading shared libraries: xxxx.so.0
cannot open shared object file no such file or directory

Это значит, что нет подходящих библиотек. Но что делать, если они есть, а система их не находит? На помощь приходит утилита ldconfig, которая управляет динамическими библиотеками.

С помощью этой программы вы можете добавить свои библиотеки, просматривать кеш библиотек. Список подключаемых библиотек находится в файле /etc/ld.so.conf, а кеш (собственно откуда берут информацию /lib/ld-linux.so) — /etc/ld.so.cache.

— Посмотреть список библиотек

Подробнее можно узнать в справочном руководстве.

Так же можно использовать переменную окружения LD_LIBRARY_PATH.

Примечание.

В Solaris это можно сделать командой dtrace. Кстати, есть хорошая новость — её пытаются портировать на Linux.

Во FreeBSD используется команда truss

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *