Debian

Зависимости пакетов Debian

Зависимости пакетов Debian
Для дистрибутивов Linux, таких как Debian GNU / Linux, существует более 60.000 различных программных пакетов. Все они имеют определенную роль. В этой статье мы объясняем, как управление пакетами надежно управляет этим огромным количеством программных пакетов во время установки, обновления или удаления, чтобы ваша система работала и была полностью стабильной.

Для Debian GNU / Linux это относится к инструментам apt, apt-get, aptitude, apt-cache, apt-sizes, apt-rdepends, dpkg-deb и apt-mark.

Наличие программных пакетов

Как уже было сказано выше, дистрибутив Linux состоит из множества различных программных пакетов. На сегодняшний день программное обеспечение достаточно сложное, поэтому принято делить программное обеспечение на несколько отдельных пакетов. Эти пакеты можно классифицировать по функциональности или ролям, таким как двоичные пакеты, библиотеки, документация, примеры использования, а также коллекции для конкретных языков и предоставляют только выбранную часть программного обеспечения. Для этого нет фиксированного правила, и разделение осуществляется либо командой разработчиков инструмента, либо сопровождающим пакета, который заботится о программном пакете для вашего дистрибутива Linux. Используя aptitude, на рисунке 1 перечислены пакеты, содержащие переводы для разных языков для веб-браузера Mozilla Firefox.

Рисунок 1: aptitude-firefox.PNG

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

Организация пакетов

Инструменты управления пакетами в дистрибутиве Debian GNU / Linux постоянно заботятся о том, чтобы зависимости установленных пакетов полностью соблюдались. Это особенно важно, если программный пакет предназначен для установки, обновления или удаления в вашей системе или из нее. Отсутствующие пакеты добавляются в систему или установленные пакеты удаляются из системы, если они больше не требуются. Рисунок 2 демонстрирует это для удаления пакета 'mc-data' с помощью 'apt-get'. Пакет 'mc-data' рекомендует также автоматически удалить пакет 'mc', потому что его установка без 'mc-data' больше не имеет смысла.

Рисунок 2: apt-get-remove-mc.PNG

Марки и флаги пакетов

Во время работы инструменты управления пакетами соблюдают установленные для пакетов флаги и метки. Они либо устанавливаются автоматически, либо устанавливаются системным администратором вручную. Особенно это поведение относится к флагу «необходимый пакет», который установлен для пакетов, которые не следует удалять. Перед тем, как вы это сделаете, выдается четкое предупреждение (см. Рисунок 3).

Рисунок 3: apt-get-remove.PNG

Также учитываются три отметки «автоматический», «ручной» и «удерживаемый». Они отмечают пакет как автоматически устанавливаемый, установленный вручную или не подлежащий обновлению (сохраните текущую версию). Программный пакет либо помечен как «автоматический», либо «ручной», но не оба сразу.

Среди прочего, команда apt-mark обрабатывает метки и флаги с помощью следующих подкоманд:

Чтобы вывести список всех установленных вручную пакетов, выполните эту команду:

$ apt-mark show ручное
слово
абс-гид
ack-grep
acl
acpi

$

Чтобы сохранить версию пакета, используйте подкоманду hold. Пример ниже показывает это для пакета mc.

# apt-mark hold mc
MC поставлен на удержание
#

Подкоманда 'showhold' выводит список пакетов, которые находятся на удержании (в нашем случае это только пакет 'mc'):

# apt-mark showhold
MC
#

Используя альтернативный метод под названием 'apt pinning', пакеты классифицируются по приоритетам. Apt применяет их, чтобы решить, как обращаться с этим программным пакетом и с версиями, доступными в репозитории программного обеспечения.

Описание пакета

Используя альтернативный метод под названием 'apt pinning', пакеты классифицируются по приоритетам. Apt применяет их, чтобы решить, как обращаться с этим программным пакетом и с версиями, доступными в репозитории программного обеспечения.

Каждый программный пакет имеет собственное стандартизированное описание. Среди других полей это описание явно указывает, от каких дополнительных пакетов оно зависит. Инструменты, специфичные для распространения, извлекают эту информацию из описания пакета, вычисляют и визуализируют зависимости для вас, а затем. В следующем примере используется команда apt-cache show для отображения описания пакета poppler-utils (см. Рисунок 4).

Рисунок 4: package-description-poppler-utils.PNG

В описании пакета есть раздел под названием "Зависит от". В этом разделе перечислены другие пакеты программного обеспечения, а также номер версии, от которой зависит текущий пакет. На рисунке 4 этот раздел выделен красной рамкой и показывает, что 'poppler-utils' зависит от пакетов 'libpoppler64', 'libc6', 'libcairo2', 'libfreetype6', 'liblcms2-2', 'libstdc ++ 6' и 'zlib1g'.

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

Чтение описания пакета - сложный способ выяснить зависимости пакета. Далее мы покажем вам, как упростить это.

Есть несколько способов показать зависимости пакетов в командной строке. Для пакета deb в качестве локального файла используйте команду dpkg-deb с двумя параметрами - имя файла пакета и ключевое слово Depends. Пример ниже демонстрирует это для пакета skypeforlinux-64.deb ':

$ dpkg-deb -f Загрузки / skypeforlinux-64.deb Зависит
gconf-service, libasound2 (> = 1.0.16), libatk1.0-0 (> = 1.12.4), libc6 (> = 2.17),
libcairo2 (> = 1.2.4), libcups2 (> = 1.4.0), libexpat1 (> = 2.0.1),
libfreetype6 (> = 2.4.2), libgcc1 (> = 1: 4.1.1), libgconf-2-4 (> = 3.2.5),
libgdk-pixbuf2.0-0 (> = 2.22.0), libglib2.0-0 (> = 2.31 год.8), libgtk2.0-0 (> = 2.24.0),
libnspr4 (> = 2: 4.9-2 ~), libnss3 (> = 2: 3.13.4-2 ~), libpango-1.0-0 (> = 1.14.0),
libpangocairo-1.0-0 (> = 1.14.0), libsecret-1-0 (> = 0.7), libv4l-0 (> = 0.5.0),
libx11-6 (> = 2: 1).4.99.1), libx11-xcb1, libxcb1 (> = 1.6), libxcomposite1 (> = 1: 0.3-1),
libxcursor1 (>> 1.1.2), libxdamage1 (> = 1: 1.1), libxext6, libxfixes3,
libxi6 (> = 2: 1).2.99.4), libxrandr2 (> = 2: 1).2.99.3), libxrender1, libxss1,
libxtst6, apt-transport-https, libfontconfig1 (> = 2.11.0), libdbus-1-3 (> = 1.6.18),
libstdc ++ 6 (> = 4.8.1)
$

Чтобы сделать то же самое для установленного пакета, используйте apt-cache. Первый пример объединяет подкоманду show, за которой следует имя пакета. Вывод отправляется команде 'grep', которая фильтрует строку 'Depends':

$ apt-cache show xpdf | grep Зависит
Зависит: libc6 (> = 2.4), libgcc1 (> = 1: 4.1.1), libpoppler46 (> = 0.26 год.2),
libstdc ++ 6 (> = 4.1.1), libx11-6, libxm4 (> = 2.3.4), libxt6
$

Команда 'grep-status -F package -s Depends xpdf' сообщит ту же информацию.

Точнее, во втором примере снова используется apt-cache, но с подкомандой «зависит». За подкомандой следует имя пакета:

$ apt-cache зависит от xpdf
xpdf
Зависит: libc6
Зависит: libgcc1
Зависит от: libpoppler46
Зависит от: libstdc ++ 6
Зависит: libx11-6
Зависит: libxm4
Зависит: libxt6
Рекомендует: poppler-utils
poppler-utils: i386
Рекомендует: poppler-data
Рекомендует: gsfonts-x11
Рекомендует: cups-bsd
чашки-BSD: i386
Столкнется с:
Столкнется с:
Столкнется с:
Столкнется с:
Заменяет:
Заменяет:
Заменяет:
Заменяет:
Столкнется с: xpdf: i386
$

Приведенный выше список довольно длинный и может быть сокращен с помощью переключателя '-i' (сокращение от '-important'):

$ apt-cache зависит от -i xpdf
xpdf
Зависит: libc6
Зависит: libgcc1
Зависит от: libpoppler46
Зависит от: libstdc ++ 6
Зависит: libx11-6
Зависит: libxm4
Зависит: libxt6
$

Команда 'apt-rdepends' делает то же самое, но с информацией о версии, если это указано в описании:

$ apt-rdepends xpdf
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
xpdf
Зависит: libc6 (> = 2.4)
Зависит: libgcc1 (> = 1: 4.1.1)
Зависит: libpoppler46 (> = 0.26 год.2)
Зависит от: libstdc ++ 6 (> = 4.1.1)
Зависит: libx11-6
Зависит: libxm4 (> = 2.3.4)
Зависит: libxt6
libc6
Зависит: libgcc1

$

Команда aptitude работает и с переключателями. Для зависимостей используйте переключатель '~ R', за которым следует имя пакета. На рисунке 5 это показано для пакета xpdf. Буква «A» во втором столбце вывода «aptitude» указывает на то, что пакет устанавливается автоматически.

Рисунок 5: aptitude-rdepends.PNG

Зависимости пакетов могут быть немного сложными. Это может помочь графически отобразить зависимости пакетов. Используйте команду «долговое дерево», за которой следует имя пакета, чтобы создать графическое представление зависимостей пакета. Инструмент dot из пакета Graphviz преобразует описание в изображение следующим образом:

$ долговые обязательства xpdf | точка -Tpng> график.PNG

На рисунке 6 вы видите созданное изображение PNG, которое содержит граф зависимостей.

Рисунок 6: точка.PNG

Показать обратные зависимости

До сих пор мы отображали, что ответили на вопрос, какие пакеты требуются для пакета. Есть и обратный путь - так называемые обратные зависимости. Следующие примеры относятся к пакету, а также к пакетам, которые от него зависят. Пример номер один использует apt-cache с подкомандой rdepends следующим образом:

$ apt-cache rdepends xpdf
xpdf
Обратные зависимости:
| octave-doc
xpdf: i386
libfontconfig1: i386
| xmds-doc
xfe
wiipdf
| vim-latexsuite
python-scapy
| рубин-тиога
| python-таблицы-док
| хруст страницы
| octave-doc
| muttprint-manual
мозплаггер
mlpost
libmlpost-ocaml-dev

$

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

В следующем примере aptitude используется для перечисления пакетов, которые имеют жесткую ссылку на пакет xpdf (см. Рисунок 7).

Рисунок 7: поиск способностей.PNG

Проверить установку на отсутствие пакетов

Apt-get предлагает подкоманду check, которая позволяет проверить установку. Если вы видите следующий вывод, пакеты не пропущены:

# apt-get check
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
#

Заключение

Поиск зависимостей пакетов хорошо работает с правильными инструментами. Их правильное использование помогает понять, почему пакеты установлены, а какие могут отсутствовать.

Ссылки и ссылки

Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...