Изучите управление зависимостями с помощью команды ldd, чтобы лучше управлять своим Linux-компьютером и установленными пакетами.
Управление зависимостями является неотъемлемой частью обслуживания вашей системы Linux. Программное обеспечение сложное и зависит от множества общих библиотек и файлов. Иногда становится трудно отслеживать файлы, необходимые приложению.
Здесь в игру вступает команда ldd в Linux. ldd — это находчивый инструмент командной строки для отслеживания зависимостей общих объектов, необходимых приложению.
Давайте узнаем, как вы можете использовать команду ldd в своих интересах и стать профессионалом в управлении зависимостями в Linux!
Что такое зависимости пакетов?
Программное обеспечение — это не просто отдельный исходный код, а скорее объединение собственного исходного кода и кода, заимствованного из внешних библиотек. Когда эти библиотеки и другие общие объекты отсутствуют в вашей системе, приложение, зависящее от них, может работать со сбоями или даже отказываться запускаться.
Все эти общие файлы, пакеты, библиотеки и т. д. в совокупности называются зависимостями в Linux. Хотя это краткое определение дает вам приблизительное представление о зависимостях, реальная картина немного сложнее, поэтому важно изучить какие зависимости у пакетов в глубине.
Что такое команда ldd и как она работает?
ldd — это сокращение от List Dynamic Dependencies. Как следует из названия, ldd перечисляет все общие объекты, необходимые приложению.
Он работает, вызывая динамический компоновщик со специально установленным переменные среды. Когда вы запускаете ldd с расположением двоичного файла, он возвращает вывод, содержащий список зависимостей, их расположение и шестнадцатеричное значение, представляющее, где в памяти они загружены.
Поиск общих зависимостей объектов с помощью команды ldd
Теперь, когда у вас есть четкое представление о том, что такое ldd, давайте попрактикуемся и узнаем, как с его помощью можно найти программные зависимости.
Прежде чем вы научитесь использовать ldd, сначала убедитесь, что он установлен в вашей системе, распечатав установленную версию ldd:
ldd --версия
Если он вернется ошибка "команда не найдена", вам нужно сначала установить ldd.
В системах на основе Ubuntu и Debian запустите:
sudo apt установить libc-bin
Для дистрибутивов на базе Arch:
sudo pacman -S glibc
В RHEL и Fedora:
sudo dnf установить glibc-common
После установки ldd вы можете сосредоточиться на изучении того, как его использовать. Вот основной синтаксис команды ldd:
lddbinary_location
Если вы не знаете расположение двоичного файла, вы можете использовать один из многие операторы командной строки Linux и объедините вывод команды which с ldd, чтобы найти зависимости для пакета:
ldd -flag $(какое бинарное_имя)
Команда ldd предлагает четыре различных параметра для изменения вывода. Они есть:
- -в: Печатает подробный вывод, включая дополнительную информацию, такую как информация о версии для каждой зависимости.
- -у: Выводит все неиспользуемые зависимости, то есть зависимости, которые загружены, но не реализованы.
- -д: Печатает отсутствующие объекты и выполняет перемещения
- -р: Распечатывает недостающие объекты и функции и выполняет перемещения
Управление зависимостями пакетов в Linux
Имея ldd в своем программном арсенале, вы сможете устранять проблемы, связанные с зависимостями общих объектов, в вашем приложении.
Кроме того, поскольку ldd также выводит место загрузки библиотеки, вы сможете отлаживать приложение и лучше понимать, как реализована конкретная библиотека. ldd также выводит версии общих библиотек, используемых в приложении.
С помощью этой функции вы можете проводить аудит своих приложений на наличие потенциальных уязвимостей, связанных с устаревшей версией общей библиотеки.
Управление зависимостями — это ключевой навык, который имеет решающее значение для поддержания работоспособности вашей системы Linux. Однако иногда пакет может сломаться, несмотря на то, что все его зависимости исправны. Важно, чтобы вы знали, как найти и исправить поврежденные пакеты.