Менеджер пакетов linux где

Глава 8. Инструменты управления пакетами Debian

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

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

Важно понимать, что высокоуровневые инструменты управления пакетами, такие как aptitude или synaptic , для управления пакетами используют apt , который, в свою очередь, использует dpkg для управления пакетами системы.

See Chapter 2. Debian package management of the Debian reference for more information about the Debian package management utilities. This document is available in various languages and formats, see the Debian Reference entry in the DDP Users’ Manuals overview.

8.1.1. dpkg

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

  • Показать список всех параметров: dpkg —help
  • Показать управляющий файл (и другую информацию) для указанного пакета: dpkg —info foo_VVV-RRR.deb
  • Установить пакет на жёсткий диск (т. е. распаковать и настроить): dpkg —install foo_VVV-RRR.deb
  • Распаковать архив Debian на жёсткий диск (но не настраивать): dpkg —unpack foo_VVV-RRR.deb . Учтите, что в результате данной операции пакет не обязан быть в рабочем состоянии; для правильной работы может потребоваться внесение изменений в некоторые файлы. Данная команда удаляет любую ранее установленную версию программы и запускает сценарий preinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»).
  • Настроить пакет, который был распакован ранее: dpkg —configure foo . Кроме всего прочего, эта команда запускает сценарий postinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»). Она также обновляет файлы, перечисленные в conffiles . Обратите внимание, что в качестве аргумента для параметра configure указывается имя пакета (т. е. foo), а не имя файла-архива Debian (т. е. foo_VVV-RRR.deb).
  • Распаковать файл с именем «blurf» (или группу файлов с именем «blurf*») из архива Debian: dpkg —fsys-tarfile foo_VVV-RRR.deb | tar -xf — ‘blurf*’
  • Удалить пакет (но не его файлы настроек): dpkg —remove foo
  • Удалить пакет (вместе с файлами настроек): dpkg —purge foo
  • Вывести состояние установки пакетов, содержащих в имени строку (или регулярное выражение) «foo*»: dpkg —list ‘foo*’

8.1.2. APT

APT is the Advanced Package Tool , an advanced interface to the Debian packaging system which provides the apt-get program. It provides commandline tools for searching and managing packages, and for querying information about them, as well as low-level access to all features of the libapt-pkg library. For more information, see the User’s Guide in /usr/share/doc/apt-doc/guide.html/index.html (you will have to install the apt-doc package).

Читайте также:  Linux on the chromebook pixel

Starting with Debian Jessie, some frequently used apt-get and apt-cache commands have an equivalent via the new apt binary. This means some popular commands like apt-get update , apt-get install , apt-get remove , apt-cache search , or apt-cache show now can also be called simply via apt , say apt update , apt install , apt remove , apt search , or apt show . The following is an overview of the old and new commands:

apt-get update -> apt update apt-get upgrade -> apt upgrade apt-get dist-upgrade -> apt full-upgrade apt-get install package -> apt install package apt-get remove package -> apt remove package apt-get autoremove -> apt autoremove apt-cache search string -> apt search string apt-cache policy package -> apt list -a package apt-cache show package -> apt show package apt-cache showpkg package -> apt show -a package

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

apt-get provides a simple way to retrieve and install packages from multiple sources using the command line. Unlike dpkg , apt-get does not understand .deb files, it works with the packages proper name and can only install .deb archives from a source specified in /etc/apt/sources.list . apt-get will call dpkg directly after downloading the .deb archives [5] from the configured sources.

Часто используемые команды apt-get :

Источник

Управление пакетами в ОС Linuх

В далекие времена установка программного обеспечения под операционные системы семейства Линукс могла серьезно напугать начинающих пользователей этих ОС. Загрузка исходников, борьба с зависимостями, которая зачастую превращалась в нетривиальный квест, ручная правка конфигов и другие “прелести” установка приложений того времени сейчас покажутся глубоким анахронизмом.

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

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

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

Какие пакеты бывают

Различные дистрибутивы ОС Linux имеют свои форматы пакетов. Вот основные форматы:

  • .deb – Debian и производные (Ubuntu, Mint и т.д.)
  • .rpm – Red Hat и производные (CentOS, Fedora и т.д.), OpenSUSE
  • .apk – Android
  • .ebuild – Gentoo
Читайте также:  Просмотр архива tar linux

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

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

Из чего состоит пакет

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

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

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

Помимо установочных сценариев, пакет также содержит набор действий, выполняемых после установки (например, пост-инсталляционную конфигурацию). Также пакет содержит сценарий, выполняемый в случае удаления пакета.

Посмотрим пример структуры пакетов для Debian. Зависимости определены в поле Dependents в заголовке пакета. Это список условий, которые должны быть выполнены для корректной работы пакета. Данная информация используется такими инструментами, как apt, для установки необходимых библиотек, утилит, драйверов и т.д. в соответствующих версиях, удовлетворяющих зависимостям устанавливаемого пакета. Для каждой зависимости можно ограничить диапазон версий, удовлетворяющих этому условию. Другими словами, если нам нужен пакет libc6 в версии, равной или превышающей “2.15” ( “libc6 (>= 2.15)”), то операторы сравнения версий следующие:

=: greater than or equal to; >>: greater than.

При этом, стоит отметить, что не все пакеты содержат программы, некоторые содержат шрифты, изображения, темы и т.д.

Зависимости и конфликты

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

Читайте также:  Unturned server on linux

Здесь возможны различные варианты реагирования, в общем случае пакетный менеджер откажется устанавливать пакет, если он вызывает конфликт с уже установленным пакетом. Однако возможна ситуация, когда в новом пакете явно указано, что он “заменит” установленный пакет, и в этом случае менеджер предпочтет заменить старый пакет новым. А вот менеджер apt всегда следует вашим инструкциям: если вы решите установить новый пакет, он автоматически предложит удалить пакет, который создает проблему.

Также, в случае конфликта возможен следующий вариант реагирования: пакетный менеджер просигнализирует о том, что установка пакета “сломает” другой пакет (или определенные его версии) и далее уже пользователь должен решать, что делать в подобной ситуации. При этом различные менеджеры по-разному отреагируют на такую ситуацию. Так, dpkg откажется устанавливать пакет, который нарушает работу уже установленного пакета. А вот apt попытается решить проблему, обновив пакет, который был бы нарушен, до более новой версии (предполагается, что она исправлена и, таким образом, снова совместима).

Такого рода ситуация может возникнуть в случае обновлений без обратной совместимости: это тот случай, когда новая сигнализирует о том, что установка пакета “сломает” другой пакет (или определенные его версии).

Некоторые форматы пакетов можно конвертировать. Так, например пакеты .deb можно конвертировать в другие форматы с помощью утилиты alien. В качестве примера преобразуем deb пакет в rpm.

Для этого сначала установим утилиту alien:

sudo apt-get install alien

Далее выполним конвертацию пакета Teamviewer из deb в rpm. Общий формат работы с alien будет следующий:

Для нашего примера с teamviewer:

sudo alien —to-rpm teamviewer_amd64.deb

Основные операции с пакетами

Установка пакетов во всех менеджерах производится схожим образом. Необходимо сначала скачать пакет (.deb, .rpm . ), далее установить пакет вручную, используя команду данного дистрибутива (dpkg, rpm и т.д.). Например, для dpkg это будет dpkg –i firefox-19.0.deb, а для apt apt-get install firefox.

При этом, все зависимости разрешаются и устанавливаются автоматически.

Обновление списков пакетов и самих пакетов для apt выполняется следующим образом:

Обновление репозитория. Загружает только список пакетов, а не сами пакеты.

Загрузка более новых версий локально установленных пакетов.

И для удаления пакетов в apt используется следующая команда:

apt-get remove [ —purge ] package

Если «—purge» указан, удаляет и конфигурационные файлы.

Где искать пакеты

Для поиска пакетов под различные дистрибутивы можно конечно воспользоваться поисковиками, но лучше использовать проверенные ресурсы, чтобы не столкнуться с сомнительным содержимым. Так, пакеты для Ubuntu можно поискать на следующем ресурсе:

А для RPM можно посмотреть здесь:

Заключение

В этой статье мы рассмотрели основные моменты, связанные с работой с различными пакетами и пакетными менеджерами. А про стандартные потоки ввода/вывода мои коллеги из OTUS расскажут на бесплатном уроке специализации Administrator Linux.

Источник

Оцените статью
Adblock
detector