Как посмотреть зависимости пакетов
Перейти к содержимому

Как посмотреть зависимости пакетов

  • автор:

Sorry, you have been blocked

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

What can I do to resolve this?

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

Cloudflare Ray ID: 7a2434e4a990247c • Your IP: Click to reveal 88.135.219.175 • Performance & security by Cloudflare

Как найти все зависимости deb-пакета?

Внутри частного облако (часть публичного облака) есть виртуальные машины с некой изменнёной провайдером облака Ubuntu 14 LTS.
По требованиям безопасности виртуалки не имеют доступа в Интернет. Все установки/настройки/обновления делаются из некого доверенного узла.

Задача:
Нужно устанавливать компоненты системы из сохраннёных пакетов: dpkg -i ./*.deb

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

Например мы имеем некий нестандартный пакет rabbitmq-server _3.5.7-1 для которого:
# dpkg -I rabbitmq-server_3.5.7-1_all.deb

new debian package, version 2.0.
size 4222022 bytes: control archive=7435 bytes.
90 bytes, 3 lines conffiles
364 bytes, 11 lines control
20645 bytes, 198 lines md5sums
1895 bytes, 68 lines * postinst #!/bin/sh
1731 bytes, 70 lines * postrm #!/bin/sh
185 bytes, 7 lines * prerm #!/bin/sh
Package: rabbitmq-server
Version: 3.5.7-1
Architecture: all
Maintainer: RabbitMQ Team
Installed-Size: 4936
Depends: erlang-nox (>= 1:13.b.3) | esl-erlang, adduser, logrotate
Section: net
Priority: extra
Homepage: www.rabbitmq.com
Description: Multi-protocol messaging broker
RabbitMQ is an open source multi-protocol messaging broker.

Возьмём первую зависимость erlang-nox и внутри тестовой машины от провайтера облака я сделаю:
# apt-cache depends erlang-nox

Вот что показывает apt-rdepends erlang-nox:

)
Depends: libncursesw5 (>= 5.6+20070908)
Depends: libprocps3
Depends: libtinfo5
Depends: lsb-base (>= 3.0-10)
initscripts
Depends: coreutils (>= 5.93)
Depends: debianutils (>= 4)
Depends: file-rc
Depends: libc6 (>= 2.4)
Depends: lsb-base (>= 3.2-14)
Depends: mount (>= 2.11x-1)
Depends: mountall (>= 2.28)
Depends: passwd
Depends: sysv-rc
Depends: sysvinit-utils (>= 2.86.ds1-64)
Depends: upstart

Как проверить зависимости пакета в дистрибутивах Linux на основе Ubuntu / Debian

Установка приложений через командную строку в Ubuntu / Debian довольно проста. Все, что вам нужно сделать, это использовать apt install package_name.

Но что, если вы хотите узнать зависимости пакета до или после его установки?

В этом руководстве я покажу вам различные способы увидеть зависимости пакета в Ubuntu и других дистрибутивах Linux на основе Debian, которые используют Система управления пакетами APT.

Что такое зависимость пакетов в Ubuntu?

Если вы еще не знали, когда вы устанавливаете программный пакет в Linux, иногда для правильной работы требуются другие пакеты. Эти дополнительные пакеты называются зависимостями. Если эти пакеты зависимостей не установлены в системе, они обычно устанавливаются автоматически вместе с пакетом.

Так, например, Инструмент с графическим интерфейсом HandBrake для преобразования видеоформатов потребности FFmpeg, GStreamer. Итак, для HandBrake FFmpeg и GStreamer являются зависимостями.

Если в вашей системе не установлены эти пакеты, они будут автоматически установлены, когда вы установить HandBrake на Ubuntu.

Проверить зависимости пакета в дистрибутивах на основе Ubuntu и Debian

Как это часто бывает в Linux, есть несколько способов добиться одного и того же результата. Давайте посмотрим на различные способы увидеть зависимости пакета.

Проверка зависимостей с помощью apt show

Вы можете использовать команда apt show для отображения сведений о пакете. Часть этой информации — это зависимости, и вы можете увидеть ее в строке, начинающейся с Depends.

Например, вот что он показывает для Ubuntu-ограниченным дополнительные пакет.

Как видите, пакет ubuntu-limited-extras зависит от пакета ubuntu-limited-addons.

Вот и загвоздка! Пакет зависимостей также может зависеть от другого пакета, и цепочка может продолжаться. К счастью, менеджер пакетов APT справляется с этим за вас, автоматически устанавливая все зависимости (в большинстве случаев).

Какой рекомендуемый пакет?

Вы заметили строку, начинающуюся с «Рекомендует» в приведенном выше выводе?

Рекомендуемые пакеты не являются прямыми зависимостями для пакета, но они включают дополнительные функции.

Как видите, ubuntu-limited-extras имеет ttf-mscorefonts-installer в качестве рекомендованного пакета для установки Microsoft Fonts в Ubuntu.

Рекомендуемые пакеты также устанавливаются по умолчанию, и если вы явно хотите запретить установку рекомендованного пакета, используйте флаг –no-install-рекомендует следующим образом:

sudo apt install –no-install-рекомендует имя_пакета

Используйте apt-cache для получения только информации о зависимостях

В подходящем шоу слишком много информации. Если вы хотите получить зависимости в сценарии, команда apt-cache даст вам лучший и чистый результат.

Вывод выглядит очень чистым, не так ли?

Apt Проверить зависимости Ubuntu

Проверьте зависимости файла DEB с помощью dpkg

Обе команды apt и apt-cache работают с пакетами, доступными в репозиториях. Но если вы загрузите файл DEB, эта команда не будет работать.

В этом случае вы можете использовать команду dpkg с опцией -I или –info.

Зависимости можно увидеть в строке, начинающейся с Depends.

Проверить зависимости пакета Deb

Проверка зависимостей и обратных зависимостей с помощью apt-rdepends

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

Это не обычная команда apt, и вам придется установить ее из репозитория юниверса:

Выход обычно довольно большой, в зависимости от дерева зависимостей.

Инструмент apt-rdepends довольно универсален. Он также может вычислять обратные зависимости. Это означает, что вы можете видеть, какие другие пакеты зависят от определенного пакета.

Результат может быть довольно большим, потому что он напечатает обратное дерево зависимостей.

Я надеюсь, что это краткое руководство помогло немного улучшить ваши знания командной строки. Следите за новостями, чтобы получить больше таких советов.

Базовые команды apt-get и apt-cache

Утилита apt-get — производительная свободная консольная программа, используемая и работающая с библиотекой APT (Advanced Packaging Tool) для выполнения установки новых пакетов с ПО, удаления существующих, обновления установленых, а также для обновления всей операционной системы.

Консольная утилита apt-cache используется для поиска в кеше программных пакетов APT. Говоря простыми словами, этот инструмент, используется для поиска пакетов, сбора информации о пакетах и поиска пакетов, доступных для установки в операционных системах, основанных на Debian или Ubuntu.

Как можно получить список всех доступных пакетов?

Чтобы увидеть все доступные пакеты, выполните следующую команду:

Как можно найти имя пакета и его описание.

Чтобы найти название пакета и его описание перед установкой, используйте флаг «search». Использование “search” c apt-cache отобразит список подходящих пакетов с кратким описанием. Например, вы хотите найти описание пакета vsftpd : чтобы сделать это, команда должна быть вот такой:

Чтобы найти и перечислить все пакеты, имя которых начинается с vsftpd , вы можете использовать следующую команду:

Как я могу просмотреть информацию о пакете?

Например, если вы хотите ознакомиться с информацией о пакете, с его кратким описанием, отображающим номер версии, контрольные суммы, размер, размер после установки, категории и так далее, вы можете использовать подкоманду «show», как показано ниже:

Как можно проверить зависимости какого-либо пакета?

Чтобы проверить зависимости конкретного пакета, вы можете использовать подкоманду showpkg , чтобы узнать, установлены эти зависимости или нет. Например, используйте команду showpkg вместе с названием пакета.

Как можно просмотреть статистику кэша?

Подкоманда stats отобразит полную статистику о кеше, например, полное число пакетов, найденное в кеше. Используйте такую команду:

Как обновить список пакетов в системе?

Команда update используется для синхронизации и обновления индексных файлов пакетов. Синхронизация происходит с источниками, указанными в файле /etc/apt/sources.list. Эту команду можно использовать, например, чтобы не упускать важные обновления пакетов.

Как обновить пакеты в системе?

Команда upgrade используется для обновления всего установленного на данный момент софта в вашйе системе. Иногда может получиться так, что обновление установить нельзя из-за какого-либо другого пакета, который требует старую версию.

Но если вы хотите обновиться вне зависимости от требований пакетов, используйте подкоманду dist-upgrade :

Как я могу установить или обновить какой-либо конкретный пакет?

Подкоманда install используется для установки или обновления какого-либо пакета.

Как я могу установить несколько пакетов сразу?

Вы можете ввести названия нескольих пакетов, чтобы установить их одновременно. Например, чтобы установить пакеты nethogs и goaccess , вы можете выполнить следующую команду:

Как установить несколько пакетов по «маске» названия

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

Как установить пакеты без обновления.

Использование флага –no-upgrade предотвратит обновление уже установленных пакетов.

Как только обновить определенные пакеты?

Флаг –only-upgrade не установит новые пакеты, а только обновит существующие.

Как я могу установить определенную версию пакета?

Представим, что вам необходимо установить специфичную версию пакета, просто используйте знак равно вместе с именем пакета и припишите желаемую версию.

Как удалить пакеты без удаления настроек?

Чтобы удалить программные пакеты без удаления их конфигурационных файлов (для дальнейшего их использования), используйте команду remove как показано.

Как полностью удалить пакеты?

Чтобы удалить пакет вместе с его файлами настроек, используете подкоманду purge , как показано ниже.

Или вы можете объединить обе команды, вот так:

Как можно очистить место на диске?

Команда clean используется для освобождения дискового пространствва за счет удаления полученных .deb-файлов пакетов в вашем локальном репозитории.

Как только загрузить исходный код пакета?

Чтобы только загрузить исходный код пакета, вы можете использовать опцию –download-only source с именем пакета, например:

Как можно загрузить и распаковать пакет?

Чтобы загрузить и распаковать исходный код пакета в специальную директорию, выполните следующую команду:

Как можно загрузить, распаковать и скомпилировать исходный код пакета?

Вы также можете загрузить, распаковать и скомпилировать исходный код пакета, используя опцию ‘–compile‘, как показано ниже:

Как загрузить пакет без установки

Используя опцию «download», вы можете загрузить любой пакет, не устанавливая его. Например, следующая команда только загрузит пакет nethogs в текущую рабочую директорию.

Как можно просмотреть лог изменений (changelog) пакета?

Флаг changelog загружает лог изменений пакета и отображает версию пакета, если он установлен.

Как можно исправить сломанные зависимости?

Команда «check» — инструмент для диагностики, он используется для обновления кеша пакетов и проверки на сломанные зависимости.

Как можно найти и собрать зависимости?

Команда build-dep ищет и устанавливает собранные зависимости нужного пакета. Если пакет отсутствует в локальном репозитории, вы получите ошибку.

Как можно автоматически очистить кеш Apt-Get?

Команда autoclean удаляет все .deb-файлы из /var/cache/apt/archives для освобождения свободного места на жестком диске.

Как можно автоматически удалить ненужные пакеты?

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

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

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