Просмотр зависимостей пакета linux

Содержание
  1. Просмотр зависимостей пакета linux
  2. Как в Linux узнать зависимости уже установленного (portable) приложения?
  3. Как просмотреть подробную информацию о пакете в Linux
  4. Команда YUM: просмотр информации о пакете на системах RHEL и CentOS
  5. Команда YUMDB: просмотр информации о пакете на системах RHEL & CentOS
  6. Команда RPM: просмотр информации о пакете в системах RHEL / CentOS / Fedora
  7. Команда DNF: просмотр информации о пакете в системе Fedora
  8. Команда Zypper: просмотр информации о пакете на системе openSUSE
  9. Команда pacman: просмотр информации о пакете на Arch Linux и Manjaro
  10. Команда Apt-Cache: просмотр информации о пакете в системах Debian / Ubuntu / Mint
  11. Команда APT: просмотр информации о пакете в системах Debian / Ubuntu / Mint
  12. Команда dpkg: просмотр информации о пакете в системах Debian / Ubuntu / Mint
  13. Команда Aptitude: просмотр информации о пакете в системах Debian / Ubuntu / Mint
  14. Как найти все зависимости deb-пакета?
  15. Записки IT специалиста
  16. Linux — начинающим. Часть 5. Управление пакетами в Debian и Ubuntu
  17. Пакеты и репозитории
  18. Низкоуровневый менеджер пакетов Dpkg
  19. Улучшенный инструмент для работы с пакетами APT и команды apt и apt-get
  20. Графические оболочки Aptitude и Synaptic
  21. Магазины приложений
  22. Заключение
  23. Дополнительные материалы:

Просмотр зависимостей пакета linux

Для просмотра от каких пакетов зависит пакет gnome-calculator:

$ epm requires gnome-calculator

Для просмотра какие другие пакеты зависят от пакета gnome-calculator:

$ epm whatdepends gnome-calculator

Для просмотра какому пакету принадлежит файл /usr/bin/gnote:

$ epm qf /usr/bin/gnote

(причём для исполняемых файлов можно и epm qf gnote)

Список всех файлов в пакете:
$ epm ql gnome-calculator

2.4 , Аноним ( — ), 22:39, 20/02/2020 [^] [^^] [^^^] [ответить] + / –
> Ну а для тех, кому не хочется запоминать все варианты, давно создан EEPM:

Для таких случаев создан XKCD #927.

  • 3.7, Виталий Липатов ( ok ), 13:48, 21/02/2020 [^] [^^] [^^^] [ответить]
  • + / –
    Ну что ещё ожидать от Анонима. Но EPM не ещё один пакетный менеджер.
  • 2.5 , имя ( ok ), 01:34, 21/02/2020 [^] [^^] [^^^] [ответить]
  • + / –
    > Лет 8 назад здесь уже писали об этом проекте

    Лет 12 назад уже был PackageKit.

    3.8, Виталий Липатов ( ok ), 17:56, 21/02/2020 [^] [^^] [^^^] [ответить] + / –
    >> Лет 8 назад здесь уже писали об этом проекте
    > Лет 12 назад уже был PackageKit.

    Поэтому до сих пор люди пишут полезные советы, как пользоваться пакетными менеджерами. PackageKit предоставляет только базовую функциональность и ограничен теми системами, которые имеют D-BUS. Но у проекта и цели другие — предоставить доступное обычному пользователю управление пакетами через GUI.

    Источник

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

    Как выяснить список всех необходимых пакетов / библиотек для работы конкретного portable приложения в Linux, если это приложение не имеет ни репозитория ни deb-пакета?

    Конкретно задача связана с FreeFileSync который ни хочет запускать диалог выбора папки в KDE Plasma на Kubuntu 14.04.05. Если установить весь xubuntu-desktop то начинает работать, если только xfce4 — не начинает. Ставить весь Xubuntu-desktop не хочу, из него начинаются проблемы в KDE (сбрасывается ряд настроек окружения, повисает видимое окно plasma-desktop в верхнем левом углу и соответствующий пункт в панели задач). В общем нужно как то выяснить, чего конкретно не хватает FreeFileSync. Чем это можно сделать? Либо просто скажите, что ему нужно. В Доках смотрел — не нашёл.

    Читай в readme к продукту, там должны быть указаны зависимости (dependencies), либо если есть исходники читай в readme какие зависимости нужны для сборки, часть из них будет достаточна для работы, за вычетом компилятора.

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

    Если исходников нет, разработчик не указал, то можешь посмотреть зависимости к этому продукту в репозитории какого-либо дистрибутива Linux.

    Запусти из консоли и почитай, на что ругается. Ещё попробуй ldd ./my_app и посмотри, чего не находит.

    Источник

    Как просмотреть подробную информацию о пакете в Linux

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

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

    Тот, кто придерживается командной строки, большую часть времени предпочитает менеджеров пакетов на базе CLI.

    Основными менеджерами пакетов CLI для Linux являются Yum, Dnf, Rpm, Apt, Apt-Get, Deb, pacman и zypper.

    В качестве системного администратора вы должны знать, откуда идут пакеты, какой репозиторий, версия пакета, размер пакета, выпуск, URL-адрес источника пакета, информация о лицензии и т. д.

    Это поможет вам понять использование пакета простым способом, так как оно идет с описанием пакета.

    Выполните приведенные ниже команды на основе вашего дистрибутива, чтобы получить подробную информацию о данном пакете.

    Команда YUM: просмотр информации о пакете на системах RHEL и CentOS

    YUM означает Yellowdog Updater, Modified – это утилита управления интерфейсом командной строки с открытым исходным кодом для RPM-систем, таких как Red Hat Enterprise Linux (RHEL) и CentOS.

    Yum является основным инструментом для получения, установки, удаления, запросов и управления пакетами RPM из репозиториев дистрибутива, а также других сторонних репозиториев.

    Команда YUMDB: просмотр информации о пакете на системах RHEL & CentOS

    Yumdb предоставляет информацию, аналогичную информации yum, но дополнительно предоставляет данные контрольной суммы пакета, тип, информацию о пользователе (кто установил пакет).

    Поскольку yum 3.2.26 yum начал хранить дополнительную информацию за пределами базы данных rpm (где пользователь указывает, что она была установлена пользователем, а dep означает, что она была введена как зависимость).

    Команда RPM: просмотр информации о пакете в системах RHEL / CentOS / Fedora

    RPM означает Red Hat Package Manager – мощная утилита управления пакетами для командной строки Red Hat, например, (RHEL, CentOS, Fedora, openSUSE & Mageia).

    Утилита позволяет вам устанавливать, обновлять, удалять, запрашивать и проверять программное обеспечение на вашей системе Linux / сервере.

    Файлы RPM поставляются с расширением .rpm. RPM-пакет, построенный с использованием требуемых библиотек и зависимостей, которые не конфликтуют с другими пакетами, были установлены в вашей системе.

    Команда DNF: просмотр информации о пакете в системе Fedora

    DNF означает Dandified yum.

    Мы можем сообщить DNF, следующее поколение менеджера пакетов yum (Fork of Yum), используя библиотеку hawkey / libsolv для бэкэнд.

    Aleš Kozumplík начал работать над DNF с Fedora 18 и, наконец, был реализован в Fedora 22.

    Команда Dnf используется для установки, обновления, поиска и удаления пакетов в Fedora 22 и более поздних версиях системы.

    Она автоматически разрешает зависимости и упрощает установку пакета без каких-либо проблем.

    Команда Zypper: просмотр информации о пакете на системе openSUSE

    Zypper – это менеджер пакетов в командной строке, который использует libzypp. Zypper предоставляет такие функции, как доступ к репозиторию, решение проблем, установка пакетов и т. д.

    Команда pacman: просмотр информации о пакете на Arch Linux и Manjaro

    Pacman означает утилиту диспетчера пакетов. pacman – простая утилита командной строки для установки, сборки, удаления и управления пакетами Arch Linux.

    Pacman использует библиотеку libalpm (библиотека управления пакетами Arch Linux (ALPM)), чтобы выполнять все действия.

    Команда Apt-Cache: просмотр информации о пакете в системах Debian / Ubuntu / Mint

    Команда apt-cache может отображать большую часть информации, хранящейся во внутренней базе данных APT.

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

    Команда APT: просмотр информации о пакете в системах Debian / Ubuntu / Mint

    APT означает Advanced Packaging Tool (APT), который является заменой apt-get, например, как DNF появился вместо YUM.

    Это многофункциональные средства командной строки, включающие все фьючерсы в одной команде (APT), такие как apt-cache, apt-search, dpkg, apt-cdrom, apt-config, apt-key и т. д,. и несколько других уникальных функций.

    Например, мы можем легко установить пакеты .dpkg через APT, но мы не сможем выполнить через Apt-Get аналогичные дополнительные функции, включенные в команду APT. APT-GET заменен APT Из-за блокировки фьючерсов, отсутствующих в apt-get, которая не была решена.

    Команда dpkg: просмотр информации о пакете в системах Debian / Ubuntu / Mint

    dpkg означает менеджер пакетов Debian (dpkg).

    dpkg – это инструмент командной строки для установки, сборки, удаления и управления пакетами Debian. dpkg использует Aptitude (первичный и более удобный) в качестве front-end для выполнения всех действий.

    Другие утилиты, такие как dpkg-deb и dpkg-query, используют dpkg в качестве интерфейса для выполнения некоторых действий. В настоящее время большинство администраторов используют Apt, Apt-Get & Aptitude для управления пакетами без головной боли и ее надежного управления.

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

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

    Команда Aptitude: просмотр информации о пакете в системах Debian / Ubuntu / Mint

    aptitude – это текстовый интерфейс к пакетной системе Debian GNU / Linux.

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

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

    Источник

    Как найти все зависимости 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

    erlang-nox
    |Depends: erlang-base
    Depends: erlang-base-hipe
    Depends: erlang-asn1
    Depends: erlang-corba
    Depends: erlang-crypto
    Depends: erlang-diameter
    Depends: erlang-edoc
    Depends: erlang-eldap
    Depends: erlang-erl-docgen
    Depends: erlang-eunit
    Depends: erlang-ic
    Depends: erlang-inets
    Depends: erlang-mnesia
    Depends: erlang-odbc
    Depends: erlang-os-mon
    Depends: erlang-parsetools
    Depends: erlang-percept
    Depends: erlang-public-key
    Depends: erlang-runtime-tools
    Depends: erlang-snmp
    Depends: erlang-ssh
    Depends: erlang-ssl
    Depends: erlang-syntax-tools
    Depends: erlang-tools
    Depends: erlang-webtool
    Depends: erlang-xmerl
    Suggests: erlang
    Suggests: erlang-manpages
    Suggests: erlang-doc

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

    Reading package lists. Done
    Building dependency tree
    Reading state information. Done
    erlang-nox
    Depends: erlang-asn1
    Depends: erlang-base
    Depends: erlang-base-hipe
    Depends: erlang-corba
    Depends: erlang-crypto
    Depends: erlang-diameter
    Depends: erlang-edoc
    Depends: erlang-eldap
    Depends: erlang-erl-docgen
    Depends: erlang-eunit
    Depends: erlang-ic
    Depends: erlang-inets
    Depends: erlang-mnesia
    Depends: erlang-odbc
    Depends: erlang-os-mon
    Depends: erlang-parsetools
    Depends: erlang-percept
    Depends: erlang-public-key
    Depends: erlang-runtime-tools
    Depends: erlang-snmp
    Depends: erlang-ssh
    Depends: erlang-ssl
    Depends: erlang-syntax-tools
    Depends: erlang-tools
    Depends: erlang-webtool
    Depends: erlang-xmerl
    erlang-asn1
    Depends: erlang-base (= 1:16.b.3-dfsg-1ubuntu2)
    Depends: erlang-base-hipe (= 1:16.b.3-dfsg-1ubuntu2)
    Depends: libc6 (>= 2.14)
    erlang-base
    Depends: libc6 (>= 2.14)
    Depends: libtinfo5
    Depends: procps
    Depends: zlib1g (>= 1:1.2.2)
    libc6
    Depends: libgcc1
    libgcc1
    Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1)
    Depends: libc6 (>= 2.14)
    PreDepends: multiarch-support
    gcc-4.9-base
    multiarch-support
    Depends: libc6 (>= 2.3.6-2)
    libtinfo5
    Depends: libc6 (>= 2.15)
    PreDepends: multiarch-support
    procps
    Depends: initscripts
    Depends: libc6 (>= 2.15)
    Depends: libncurses5 (>= 5.5-5

    )
    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

    Источник

    Записки IT специалиста

    Технический блог специалистов ООО»Интерфейс»

    • Главная
    • Linux — начинающим. Часть 5. Управление пакетами в Debian и Ubuntu

    Linux — начинающим. Часть 5. Управление пакетами в Debian и Ubuntu

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

    Пакеты и репозитории

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

    Существуют различные форматы пакетов, наиболее распространенными из которых являются RPM (рекурсивный акроним RPM Package Manager, ранее Red Hat Package Manager) и DEB (сокращение от Debian). Первый используется в основанных на Red Hat/Fedora дистрибутивах, а также некоторых иных, например, OpenSUSE, второй — во всем многочисленном семействе систем на базе Debian и его производных, включая один из самых популярных дистрибутивов — Ubuntu.

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

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

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

    Все это хорошо, скажет иной читатель, только как мне узнать какие именно пакеты мне нужно установить, чтобы получить на выходе полноценный продукт, как разобраться во всем этом обилии непривычных названий? Для этой цели существуют метапакеты. По сути — это пакет пустышка, который в своих зависимостях имеет нужный перечень пакетов для установки готового продукта. Например, если нужен офисный пакет, то достаточно просто установить libreoffice, этот метапакет по зависимостям подтянет и установит все необходимые компоненты для полного набора офиса, каким вы его привыкли видеть. Хотя никто не мешает установить самому только нужные компоненты, скажем только LibreOffice Calc.

    Следующий вопрос — где брать пакеты? Windows опыт подсказывает — на сайте разработчика или производителя ПО. Но этот подход в Linux не работает, точнее работает частично. Почему? Ну вот скачали мы нужный пакет и выясняется, что у него еще 10 пакетов в зависимостях, где их брать? На сайтах их разработчиков, а у них окажутся свои зависимости. Поэтому в Linux были созданы и поддерживаются централизованные хранилища пакетов — репозитории. Каждый крупный дистрибутив имеет собственные репозитории для всех поддерживаемых выпусков и архитектур, которые содержат огромное количество ПО и поэтому вам не следует волноваться о том, где искать пакеты.

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

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

    Как правило типичный дистрибутив на базе Debian имеет четыре основных репозитория:

    • Base repository — основное хранилище, содержит все пакеты, но обновляется достаточно редко, обычно одновременно с выходом минорной версии дистрибутива, например, Debian 9.6, Debian 9.7 и т.д.
    • Security updates — обновления безопасности, являются критически важными для функционирования системы и крайне желательны к установке.
    • Stable updates — стабильные обновления, не являющиеся обновлениями безопасности, могут исправлять некритические ошибки в ПО или незначительно расширять его функционал в рамках текущей версии.
    • Stable backports — стабильное ПО с обратной совместимостью, содержит прекомпилированные для текущего дистрибутива самые свежие версии ПО, которые разрабатываются в рамках новой версии, позволяет использовать более новые версии программ, не подвергая стабильность дистрибутива угрозам при использовании пакетов тестируемой или нестабильной ветки.

    Каждый репозиторий состоит из нескольких разделов, в Debian это:

    • main — содержит пакеты, которые полностью совместимы с «Критериями Debian по определению Свободного ПО»
    • non-free — распространяемое без ограничений ПО, которое не соответствует или не полностью соответствует принципам свободного ПО по версии FSF (Free Software Foundation, Фонд свободного ПО)
    • contrib — свободное ПО, которое требует для работы несвободные компоненты, например, бинарные модули драйверов, прошивок ROM и т.д., либо требует ПО, имеющее собственника, скажем несвободную версию Java от Oracle.

    В Ubuntu разделы немного иные:

    • main — также, как и в Debian содержит свободные пакеты, поддерживаемые компанией Canonical
    • restricted — несвободное ПО, поддерживаемое Canonical
    • universe — свободное ПО, поддерживаемое сообществом
    • multiverse — несвободное ПО, поддерживаемое сообществом.

    Список подключенных репозиториев хранится в /etc/apt/sources.list, ниже показано содержимое этих файлов в Debian 10 (слева) и Ubuntu 18.04 (справа).

    В Debian все достаточно лаконично, подключен только раздел main трех репозиториев Base, Security updates и Stable updates, если вам нужны иные разделы, то их следует подключить самостоятельно, добавив через пробел в нужную строку.

    В Ubuntu более развернутый список репозиториев, он полностью не уместился на скриншот, но для понимания структуры записей приведенного фрагмента хватает. Сверху вниз подключены Base и Security updates для поддерживаемых компанией разделов, затем они же вместе для свободного и несвободного ПО поддерживаемого сообществом, а вот Stable backports прописан для всех веток одновременно, еще ниже (за пределами экрана на скриншоте) подключены Security updates и специальный партнерский репозиторий для пакетов партнеров компании Canonical.

    Типичная запись репозитория выглядит как строка со следующей структурой:

    Строка начинается с deb, который обозначает репозиторий с двоичными пакетами или deb-src для репозиториев с исходным кодом, если вы не собираетесь самостоятельно собирать пакеты, то вам они не нужны. Далее идет адрес репозитория и имя выпуска, для Debian это buster, для Ubuntu — bionic, затем следует перечисление подключенных разделов, в указанном примере подключены все три.

    Адреса репозиториев сохраняются постоянными, отличаясь только именами выпуска, поэтому если вам нужно обновить выпуск, скажем с Debian 9 на Debian 10, то вам просто потребуется заменить везде stretch (имя девятого выпуска) на buster.

    Также в Debian можно использовать вместо имен классы выпусков:

    • stable — текущий выпуск дистрибутива,
    • oldstable — предыдущий выпуск,
    • testing — разрабатываемый выпуск,
    • unstable — нестабильный выпуск, он же имеет собственное имя sid.

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

    Для добавления собственных источников пакетов предназначена директория /etc/apt/sources.list.d/ в которой следует располагать файлы с адресами источников и обязательным расширением .list. Хотя их можно прописать и в основной файл, но это считается дурным тоном.

    Низкоуровневый менеджер пакетов Dpkg

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

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

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

    Для установки просто выполните:

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

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

    Чтобы получить сведения о всех доступных и установленных пакетах используется ключ -l, но он выведет список всех пакетов, поэтому следует использовать его с маской, например, так:

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

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

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

    Для удаления пакета используйте:

    Обратите внимание, что здесь мы указываем не имя deb-файла, а имя установленного пакета, узнать его можно способом, представленным выше. Часто после удаления пакета от него остаются конфигурационные файлы и иные данные, полностью очистить их можно командой:

    Но будьте внимательны, при этой операции могут быть удалены пользовательские данные, хранившиеся в стандартных расположениях. Это актуально для таких видов программ, как веб-сервера или СУБД.

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

    Улучшенный инструмент для работы с пакетами APT и команды apt и apt-get

    Настоящим пакетным менеджером в Debain является APT (Advanced Package Tool, Улучшенный инструмент для работы с пакетами), который умеет работать с репозиториями, разрешать зависимости и взаимодействовать с dpkg, которая, собственно, и занимается установкой пакетов.

    APT имеет два интерфейса командной строки: apt-get и более новый apt. Их синтаксис и возможности во многом схожи, и мы будем практически всегда использовать последний, кроме отдельных случаев, когда требуемые возможности поддерживает только apt-get.

    Как мы уже говорили, списки репозиториев хранятся в /etc/apt/sources.list, но они не содержат сведений о пакетах, чтобы их получить нужно скачать из репозитория список находящихся в нем пакетов. Понятно, что каждый раз скачивать списки — плохая идея, поэтому APT хранит локальный кеш пакетов в /var/lib/apt/lists, также копии всех скачанных пакетов сохраняются в /var/cache/apt/archives, что позволяет предотвратить их скачивание в случае повторной установки.

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

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

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

    Установить обновления можно командой:

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

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

    Обычные обновления следует выполнять командой upgrade, тогда как dist-upgrade следует использовать для обновления дистрибутива, в том числе и на минорные версии в составе текущего выпуска.

    Для установки пакетов следует использовать команду:

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

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

    Для удаления пакета используйте:

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

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

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

    Удалить их можно командой:

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

    Также иногда может потребоваться возможность очистить кеш скачанных пакетов, скажем при недостатке места на диске, это можно сделать, введя:

    Эта команда полностью очистит кеш, также можно использовать более мягкую очистку с помощью apt-get, который дает возможность удалить из кеша только те пакеты, которые на текущий момент отсутствуют в репозитории (были заменены новыми версиями или удалены):

    Затронем еще один интересный момент, допустим вы в своих экспериментах удалили или еще как-либо повредили входящие в состав пакета файлы, но система считает, что пакет установлен и отказывается устанавливать его повторно. Но можно всегда переустановить пакет:

    Еще одна важная возможность APT — это восстановление нарушенных зависимостей и автоматическое исправление ошибок при установке пакетов, например, когда процесс обновления или установки был аварийно прерван. Либо когда вы установили некоторый пакет при помощи dpkg и при этом у него оказались неудовлетворенные зависимости. Все это в большинстве случаев отлично исправляется одной простой командой:

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

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

    Если вы не знаете точного названия нужного вам пакета, то можно выполнить его поиск командой:

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

    Для получения информации о пакете просто введите:

    Еще одна задача, с которой может столкнуться администратор — это фиксация версии пакета, допустим вы собрали и установили собственный пакет с нужными вам функциями и не хотите чтобы при обновлении системы он был заменен стандартным из репозитория. Не проблема, отметьте пакет как зафиксированный:

    Чтобы отменить фиксацию выполните:

    Объем данной статьи не позволяет рассмотреть все возможности apt, поэтому мы ограничились наиболее необходимыми в повседневной деятельности, ну и в завершение небольшая порция юмора. Если запустить команду apt без параметров, то вы увидите краткую справку в самом конце которой будет строка: В APT есть коровья СУПЕРСИЛА. Что это значит? Просто наберите:

    И вы увидите старую пасхалку от разработчиков, которая была еще в apt-get, а затем ее заботливо перенесли в apt.

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

    Кроме родных для APT консольных интерфейсов apt-get и apt существуют и более высокоуровневые оболочки. Одна из них aptitude, которая может работать как в псевдографическом режиме, так и в режиме командной строки, имея синтаксис во многом повторяющий синтаксис apt. Благодаря этому многие воспринимают эту утилиту как еще один интерфейс к APT, хотя основной задачей разработчиков было именно создание псевдографической интерактивной оболочки.

    В современных дистрибутивах Debian и Ubuntu aptitude отсутствует в основной поставке и вам потребуется установить этот пакет отдельно.

    Если вы используете настольную версию Linux, то вам будет доступен графический менеджер пакетов Synaptic, он также отсутствует в основной поставке основных дистрибутивов и может быть установлен вручную. Данный пакет представляет собой опрятный и удобный графический интерфейс над APT, в тоже время дающий администратору все возможности по тонкой настройке процесса.

    Однако не смотря на то, что Aptitude и Synaptic являются зрелыми и эффективными инструментами, мы бы не рекомендовали их использование по крайней мере до тех пор, пока вы не освоите работу с базовым интерфейсом apt.

    Магазины приложений

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

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

    Так и в современном Linux, если раньше эта ОС ассоциировалась преимущественно с энтузиастами и «хакерами», то сейчас это система открыта для всех. Магазины приложений — это простой и надежный способ управления программным обеспечением для обычных пользователей, не имеющих специальных технических знаний. А опытный администратор, скорее всего, предпочтет работу в привычной ему командной строке.

    Ниже показан магазин для актуальной версии Debian

    или Ubuntu

    Заключение

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

    Дополнительные материалы:

    Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

    Или подпишись на наш Телеграм-канал:

    Источник

    Читайте также:  Mac os acer nitro 5
    Оцените статью