Менеджеры пакетов. Обзор пакетных менеджеров Linux Linux как узнать какой менеджер пакетов

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

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

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

Система пакетов

Практически любой софт устанавливаемый в современную linux систему можно найти в Интернете. Он может быть предоставлен разработчиками конкретного дистрибутива через официальные репозитарии (хранилища программного обеспечения, которые могут содержать тысячи пакетов, каждый из которых был скомпилирован, протестирован и поддерживается для распространения и использования в данном дистрибутиве linux ) или доступен в виде исходного кода, который можно загрузить и установить вручную. Поскольку разные семейства дистрибутивов linux используют разные системы упаковки (Debian - пакеты в формате deb , CentOS - rpm формат, openSUSE - тоже rpm но созданный специально для openSUSE ), пакет, предназначенный для одного дистрибутива, не будет совместим с другим дистрибутивом. Большинство дистрибутивов linux входят в одно из трех основных семейств linux , включенных в сертификацию LFCS .

Высоко- и низкоуровневые инструменты управления пакетами.

При решении различных задач по управлению пакетами программного обеспечения, необходимо знать, что существуют два типа утилит: низкоуровневые инструменты (производящие фактическую установку, обновление и удаление файлов пакетов), и высокоуровневые инструменты (отвечают за выполнение задач по разрешению зависимостей и поиска метаданных - так называемые "данные о данных"). Низкоуровневые системы управления пакетами:
  • Debian , Ubuntu и подобные - менеджер пакетов dpkg
  • CentOS - менеджер пакетов rpm
  • OpenSUSE - менеджер пакетов rpm (opensuse )
Высокоуровневые системы управления пакетов:
  • Debian , Ubuntu и подобные - apt-get/aptitude
  • CentOS - менеджер пакетов yum
  • OpenSUSE - менеджер пакетов zipper
Dpkg - низкоуровневый пакетный менеджер в Debian linux Dpkg умеет устанавливать, удалять, предоставлять информацию и создавать deb пакеты, однако он не может автоматически загружать и устанавливать необходимые зависимости для конкретного пакета. Apt-get - высокоуровневый пакетный менеджер в Debian linux и производных дистрибутивах. Apt-get представляет из себя простой способ получения и установки необходимых пакетов из различных источников, с разрешением зависимостей, через командную строку. В отличии от dpkg , apt-get не работает напрямую с .deb файлами пакетов, только пакетом по его имени. Aptitude , это еще один высокоуровневый инструмент управления пакетами в debian -подобных операционных системах и может быть использован для управления пакетами (установка, обновление и удаление пакетов с автоматическим разрешениме зависимостей), быстрым и простым способом. Он обеспечивает те же функциональные возможности что и apt-get , плюс некоторые расширенные, такие как доступ к нескольким версиям пакета. Rpm - система управления пакетами, используемая Linux Standard Base (LSB) - совместимыми дистрибутивами для низкоуровневой обработки пакетов. Как и dpkg , он может запрашивать, устанавливать, проверять, обновлять и удалять пакеты, чаще используется в дистрибутивах на базе Fedora , таких как RHEL и CentOS . Yum - высокоуровневый инструмент для работы с пакетами (установка, удаление, обновление), с управлением зависимостями в системах на основе RPM пакетов. Yum как apt-get и aptitude , работает с репозитариями

Распространенные задачи низкоуровневых инструментов.

1. Установка пакета из скомпилированного *.deb или *.rpm файла.

Минус подобной установки, это невозможность разрешения зависимостей пакета. Вероятней всего вы будете использовать данный способ установки, если в репозитариях соответствующее ПО отсутствует и не может быть установлено с помощью инструментов высокого уровня. В данном случае, пакет не сможет скачать и установить зависимости, если они ему потребуются, и установка будет прервана ошибкой. # dpkg -i file.deb # rpm -i file.rpm Не пытайтесь устанавливать в CentOS , rpm пакет, скомпилированный для OpenSUSE , и наоборот.

2. Обновление пакета из скомпилированного файла.

Обновить пакет ПО не доступный из репозитариев, возможно только вручную. # dpkg -i file.deb # rpm -U file.rpm

3. Список установленных пакетов

Если в ваше распоряжение попала уже работающая система, будет не лишним узнать, что на ней установлено: # dpkg -l # rpm -qa Если вам нужно узнать, установлен-ли какой-то конкретный пакет, можно воспользоваться командой grep . перенаправив на нее вывод менеджера пакетов: # dpkg -l | grep apache2-mpm-itk ii apache2-mpm-itk 2.2.22-13+deb7u6 amd64 multiuser MPM for Apache 2.2 # rpm -qa | grep httpd-2.4.6 httpd-2.4.6-45.el7.centos.4.x86_64 Еще один способ получить аналогичный результат: # dpkg --status package_name # rpm -q package_name 4. Какому пакету принадлежит файл. # dpkg --search my.cnf mysql-common: /etc/mysql/my.cnf # rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64

Распространенные задачи высокоуровневых инструментов

1. Поиск пакетов

# aptitude update && aptitude search package_name # zypper refresh && zypper search package_name # yum search package_name если yum получает ключ search all , поиск производится не только по имени пакета но и по описанию # yum search all package_name Каким пакетом установлен файл # yum whatprovides "*/server.cnf" 1:mariadb-server-5.5.52-1.el7.x86_64: The MariaDB server and related files Repo: base Matched from: Filename: /etc/my.cnf.d/server.cnf

2. Установка пакета из репозитария

При установке пакета вам может быть предложено подтвердить установку после того, как менеджер пакетов разрешит все зависимости. # aptitude update && aptitude install package_name # zypper refresh && zypper install package_name # yum update && yum install package_name

3. Удаление пакетов

Если aptitude указан ключ remove , пакет будет удален, за исключением конфигурационных файлов. Что-бы удалить все следы установки пакета, нужно использовать ключ purge . # aptitude remove/purge package_name # yum erase package_name В OpenSUSE обратите внимание на знак "минус" перед именем пакета. # zypper remove -package_name Практически любой менеджер пакетов потребует подтвердить удаление пакета.

4. Просмотр инфоормации о пакете

Вывод информации о пакете mariadb-server # aptitude show mariadb-server # yum info mariadb-server # zypper info mariadb-server Удачи.

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


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

Debian и родственные

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


То, что в примерах aptitude не значит, что он правильнее, чем apt-get . Для меня это всего лишь дело привычки.


$ aptitude install package #установить пакет; $ aptitude safe-upgrade package #обновить пакет; $ aptitude update #проверить и установить обновления; $ aptitude remove package #удалить пакет; $ aptitude purge package #удалить пакета с концами, все данные и настройки; $ apt-get dist-upgrade #обновить ОС, killer-feature и оно работает! $ aptitude search package #искать пакет. $ apt-cache depends package #зависимости пакета; $ apt-cache rdepends package #обратные зависимости от пакета.

Некоторые функции доступны с дополнительным МП dpkg .


$ dpkg -l #список установленных программ; $ dpkg -L package #список файлов пакета

Установщики пакетов делают атомарными (одношаговыми) операции с отдельными пакетами: вместо копирования множества файлов и запуска нескольких сценариев пользователь вводит одну команду «установить/удалить пакет». Однако атомарная с точки зрения пользователя операция - добавление в систему одного нового компонента может состоять из нескольких (и даже многих) операций над пакетами. Мефодий уже столкнулся с подобным случаем, изучая на собственном опыте понятие «цепочка зависимостей». Здесь установщики пакетов никак не могут облегчить работу пользователя. Чтобы сделать процедуру установки, удаления и обновления компонента системы атомарной, были разработаны менеджеры пакетов . Менеджер пакетов - это программа, которая вычисляет весь комплекс операций над отдельными пакетами, который нужно произвести для установки/удаления нового компонента (пакета), и сама запускает установщик пакетов сколько нужно раз с нужными параметрами. Кроме того, менеджер пакетов хранит информацию не только о пакетах, уже установленных в системе, но и обо всех, которые доступны для установки с какого-либо носителя или по Сети (подробнее об этом в разделе Package..Доставка).

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

Наиболее известный и популярный менеджер пакетов называется APT (A dvanced P ackage T ool). Первоначально он был разработан в рамках дистрибутива Debian и работал только с установщиком пакетов dpkg, впоследствии для других дистрибутивов была разработана версия, работающая с rpm . В дистрибутиве Мефодия также используется APT.

Чтобы установить пакет, прежде всего нужно узнать о его существовании. Пакетов для каждого дистрибутива Linux доступны тысячи и даже десятки тысяч, ориентироваться в них непросто. APT предоставляет возможность поиска нужного среди доступных пакетов, для этого используется утилита apt-cache . В каждом пакете обязательно содержится краткая аннотация (в одну строку) и небольшое описание содержищихся в пакете ресурсов (не длиннее нескольких абзацев). По команде « apt-cache search подстрока » APT найдёт и выведет список из имён и аннотаций пакетов, где в имени, аннотации или описании нашлась указанная подстрока.

# apt-cache search python | wc 146 1158 8994 # apt-cache search python | grep "programming" python - An interpreted, interactive object-oriented programming language

Пример 9 . Поиск пакетов в APT

Для установки и удаления пакетов предназначена утилита apt-get , а команда установки выглядит совсем просто: « apt-get install имя_пакета », причём не нужно указывать никаких сведений о версии и местонахождении пакета: APT сам найдёт и установит самую последнюю из доступных версий.

# apt-get install python Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие дополнительные пакеты будут установлены: libpython libgdbm libgmp python-base python-modules python-modules-bsddb python-modules-compiler python-modules-curses python-modules-email python-modules-encodings python-modules-hotshot python-modules-logging python-modules-xml python-strict Следующие НОВЫЕ пакеты будут установлены: libpython libgdbm libgmp python python-base python-modules python-modules-bsddb python-modules-compiler python-modules-curses python-modules-email python-modules-encodings python-modules-hotshot python-modules-logging python-modules-xml python-strict 0 будет обновлено, 15 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 0B/4466kB архивов. После распаковки потребуется дополнительно 16,9MB дискового пространства. Продолжить? y Получено: 1 cdrom://SomeLinux CD RPM/main libpython 2.3.3-some2 Получено: 2 cdrom://SomeLinux CD RPM/main libgdbm 1.8.3-some3 Получено: 3 cdrom://SomeLinux CD RPM/main libgmp 4.1.2-some3 . . . Получено: 14 cdrom://SomeLinux CD RPM/main python-base 2.3.3-some12 Получено: 15 cdrom://SomeLinux CD RPM/main python 2.3.3-some12 Получено 4466kB за 0s (19,5MB/s). Совершаем изменения... Preparing... ######################################### 1: libpython ######################################### [ 6%] 2: libgdbm ######################################### [ 13%] 3: libgmp ######################################### [ 20%] 4: python-base ######################################### [ 26%] . . . 13: python-modules-logging ######################################### [ 86%] Завершено.

Пример 10 . Установка пакета с помощью APT

Процедуру установки APT выполняет в несколько этапов: сначала он ищет запрошенный пакет в списках доступных, найдя, рассчитывает, какие пакеты следует установить, чтобы удовлетворить его зависимости, после чего получает файлы всех нужных пакетов (в данном случае APT нашёл нужные пакеты на диске CD-ROM), и запускает установщик пакетов последовательно для установки всего необходимого. Аналогично, чтобы удалить пакет, достаточно выполнить команду « apt-get remove имя_пакета ».

Кроме APT, есть ещё несколько менеджеров пакетов. Большинство из них специфичны для определённого дистрибутива, как, например, emerge для Gentoo или yast для SUSE. Их задачи и возможности примерно совпадают с APT.

Контроль целостности

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

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

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

# rpm -ql python (не содержит файлов) # rpm -ql python-strict (не содержит файлов)

Пример 11 . Виртуальные пакеты не содержат файлов

Именно поэтому apt «получил» 15 пакетов (включая два виртуальных), а «совершил изменения» только для 13-ти.

Доставка

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

Чтобы APT мог работать с пакетами, они должны содержаться в организованном по специальным правилам хранилище - репозитории . Список доступных APT репозиториев хранится в файле /etc/apt/sources.list , для каждого репозитория указан способ доступа (например, « cdrom: », « ftp: », « file: » и др.) и адрес.

Rpm cdrom:/ RPM contrib main rpm ftp://updates.somelinux.com 2.4/i586 updates

Пример 12 . Файл sources.list

После каждого изменения файла /etc/apt/sources.list нужно обновлять кеш APT, в котором хранятся сведения о доступных пакетах, командой apt-get update . Для того, чтобы добавить в кеш информацию о пакетах, доступных на CD, следует использовать команду « apt-cdrom add », а не редактировать sources.list вручную.

APT позволяет и просто доставить пакет в систему, не устанавливая его. Так, например, всегда происходит с исходными пакетами , которые просто копируются из репозитория в определённый каталог системы по команде « apt-get source имя_пакета ».

Обновление

Программное обеспечение в мире Linux (и не только) постоянно обновляется: исправляются ошибки, расширяются возможности. Разработчики каждого дистрибутива по мере выхода новых версий программ готовят новые версии соответствующих пакетов и делают их доступными в своём репозитории (репозитории, отражающие наиболее современное состояние программного обеспечения, доступны через Интернет). Пользователю имеет смысл не отставать от обновлений программного обеспечения, потому что новые версии программ - это и большая надёжность работы системы, и новые возможности.

Менеджеры пакетов позволяют делать комплексные обновления всей системы. В APT эту процедуру можно выполнить одной командой: « apt-get dist-upgrade ». Эта процедура сначала исследует содержимое всех доступных репозиториев и находит там все пакеты более поздних версий, чем соответствующие пакеты, установленные в системе. После этого вычисляется объём обновления: должна быть удалена связаная область зависящих друг от друга устаревших пакетов и заменена соответствующей областью более новых версий. Сложные ситуации могут возникать в том случае, если изменилось распределение ресурсов по пакетам: пакеты были разделены или объединены - здесь может потребоваться ручное вмешательство пользователя. Тот род обновлений системы, который нужно делать регуляно и обязательно - это обновления, связанные с безопасностью (security updates). Когда в программе обнаруживают и исправляют серьёзные ошибки, угрожающие безопасности всей системы, разработчики дистрибутивов обычно заботятся о том, чтобы соответствующие обновления достигли пользователя. Обычно присутствует отдельный репозиторий с обновлениями, существенными для безопасности.

Цена удобства

Удобство менеджеров пакетов оплачивается тем, что они могут успешно работать только со специальными целостными областями источников (репозиториями пакетов ). Хотя для большинства пользователей это ограничение не так существенно: те дистрибутивы, в которых используются менеджеры пакетов, обычно имеют огромные репозитории пакетов, где можно найти любое мыслимое и немыслимое программное обеспечение. Если же нужной программы всё-таки нет в официальном репозитории дистрибутива, обычно находятся «частные» репозитории, доступные по сети Интернет, включающие не вошедшие в официальный репозиторий пакеты.

Если всё-таки нужный вам пакет нигде не найти собранным именно для вашего дистрибутива, можно установить и сторонний пакет, но это может быть выполнено только при помощи установщика пакетов, менеджер пакетов в этой ситуации будет бесполезен. Можно установить программу и самостоятельно скомпилировав её из исходных кодов, однако здесь стоит иметь в виду следующее.

Автор программы совершенно не обязан учитывать в ней все тонкости всех дистрибутивов, поэтому возможны, с одной стороны, прямые конфликты с файлами в системе (которые никто уже не отследит), а с другой стороны - конфликты и противоречия скрытые (например, программа устанавливается в подкаталог каталога /usr/local , и ожидает, что все остальные программы тоже находятся в этом каталоге). Это значит, что придётся самостоятельно разобраться и с тем, как и с какими параметрами компилировать программу, как устанавливать её в систему, и как избежать при этом конфликтов. А если так, если вы и в самом деле в состоянии правильно собрать и установить в систему нужную вам, а значит и ещё кому-нибудь, программу, которой пока нет в дистрибутиве, то самое правильное - сделать из неё пакет , по крайней мере исходный пакет , а если получится, то и двоичный . Это здорово облегчит жизнь и вам, когда вы будете компилировать и устанавливать эту программу ещё раз (на другом компьютере или обновляя версию самой програмы), и, главное, всему сообществу пользователей вашего дистрибутива!

Наконец, во многие современные дистрибутивы включаются средства, помогающие сборке двоичных пакетов. Такие средства (например, пакет hasher из ALT Linux) позволяют не только скомпилировать программу в «универсальной среде», содержащей лишь заданный набор пакетов, но и автоматически выстраивают зависимости, проверяют правильность установки, отслеживают конфликты. Короче говоря, собрав пакет с помощью такого средства, вы можете серьёзно претендовать на роль сопровождающего этот пакет в дистрибутиве. Напротив, скомпилировав программу втихомолку, с помощью шаманства и ручной работы, вы проявите себя как лентяй и эгоист, которому нет дела до роста и улучшения собственной операционной системы.

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

Synaptic - это графическая программа, позволяющая управлять пакетами в Ubuntu. Она совмещает в себе все возможности консольной системы управления пакетами apt и удобство графического интерфейса. С помощью Synaptic вы можете устанавливать, удалять, настраивать и обновлять пакеты в вашей системе, просматривать списки доступных и установленных пакетов, управлять репозиториями и обновлять систему до новой версии.

Установка

Начиная с Ubuntu 11.10 Synaptic не распостраняется в комплекте стандартных программ. Установить его можно нажав на ссылку слева или введя в терминале команду:

sudo apt-get install synaptic

Запуск и внешний вид

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

Для запуска Synaptic откройте Главное меню и наберите в поиске synaptic . Также Synaptic можно запустить введя в терминале команду:

sudo synaptic

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

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

Если вы выберите «Все», вы увидите полный список доступных и установленных пакетов. При нажатии «Установленные» будут показываться лишь установленные пакеты и так далее. Правая часть окна разделена на верхнюю и нижнюю части. В верхней части выводится список пакетов, и при выбора пакета из этого списка в нижней части отображаются сведения о нем и его описание.

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

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

Управление ПО

Установка

    Щелкните по кнопке Обновить

    Правый клик на нужном пакете и выберите в появившемся меню Отметить для установки , или нажмите Ctrl + I . Если пакет требует установки другого пакета, то появиться диалоговое окно с изменениями которые будут сделаны, если вы действительно хотите продолжить установку, то щелкните по клавише Применить или нажмите Ctrl + P .

    Для установки, нажмите кнопку Применить

Удаление

    Правый клик на нужном пакете и выберите в появившемся меню выберите Отметить для удаления .

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

    Для удаления, нажмите кнопку «Применить» на главной панели Менеджера пакетов Synaptic.

Если вы отметите пакет маркером «Отметить для полного удаления» то удалится не только выбранный вами пакет, но и все зависимости.

Обновление

    Щелкните по кнопке Обновить или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.

    Правий клик на нужном пакете и выберите в появившемся меню Отметить для обновления .

    Применить на главной панели Менеджера пакетов Synaptic.

Обновление всей системы

Synaptic предоставляет два варианта обновления системы

    Умное обновление попытается разрешить конфликты пакетов перед обновлением системы. Действие умного обновления аналогично действию команды apt-get dist-upgrade .

    Стандартное обновление

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

По умолчанию ynaptic использует умное обновление. Для того чтобы изменить метод обновления системы откройте Настройки→Параметры→Основные и выберите требуемый способ в Обновление системы .

    Щелкните по кнопке Обновить или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.

    Нажмите на кнопку Отметить для обновления или нажмите Ctrl + G для того, чтобы Synaptic отметил для обновления все пакеты.

    Для обновления, нажмите кнопку Применить на главной панели Менеджера пакетов Synaptic.

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

«Сломанные пакеты» - это пакеты которые имеют неудовлетворённые зависимости. Если сломанные пакеты обнаружены, то Synaptic не позволит проводить ни каких изменений в системе с пакетами до тех пор пока все сломанные пакеты не будут исправлены.

Для исправления сломанных пакетов

    Выберите Правка→Исправить пакеты с ошибками в главном меню.

    Выберите Внести отмеченные изменения в меню Правка или нажмите Ctrl + P

    Подтвердите изменения, щелкнув по кнопке Применить .

Горячие клавиши в Synaptic

Команда Сочетание клавиш
Обновить список доступных пакетов Ctrl + R
Открыть диалоговое окно поиска Ctrl + F
Показать окно с свойствами выбранного пакета Ctrl + O
Отметить выбранный(е) пакет(ы) для установки Ctrl + I
Отметить выбранный(е) пакет(ы) для обновления Ctrl + U
Отметить выбранный(е) пакет(ы) для удаления Delete
Отметить выбранный(е) пакет(ы) для полного удаления Shift + Delete
Снять какие-либо изменения в пакетах Ctrl + N
Отметить все возможные обновления Ctrl + G
Быстрая установка специфической версии для пакета Ctrl + E
Отменить последнее изменение Ctrl + Z
Повторить последнее изменение Ctrl + Shift + Z
Применить все выбранные действия Ctrl + P
Выйти из Synaptic Ctrl + Q

Настройка кэширования пакетов

Настройки кэширования пакетов находятся в двух местах. Первое – в самом synaptic, окно с настройками кэширования вызывается через меню Настройки→Параметры→Файлы .

Кэш хранится в папке /var/cache/apt/archives/

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

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

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

    Очистить кэш - полностью очищает кэш.

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

Второе место в котором хранятся настройки кэширования устанавливает правила хранения пакетов в кэше. Для того чтобы получить доступ к этим настройкам необходимо в терминале выполнить следующую команду:

Sudo nano /etc/apt/apt.conf.d/20archive

Эти настройки имеют следующий вид:

APT::Archives::MaxAge "30"; APT::Archives::MinAge "2"; APT::Archives::MaxSize "500";

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

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

Менеджеры пакетов на базе Debian

Ubuntu и Debian сегодня считаются одной из наиболее широко используемых на рынке настольных Linux-операционных систем. Их менеджеры пакетов разделены, причем система управления пакетами самого низкого уровня - «dpkg», для «Debian Package» - сокращение. Это программное обеспечение для управления пакетами barebones, с инструментами для установки, удаления и создания пакетов.

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

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

Именно здесь вступают в действие интерфейсы, такие как apt и aptitude. APT, сокращенный для Advanced Package Tool, намного более совершенен по функциональности по сравнению с dpkg. Он также может устанавливать, удалять и создавать пакеты, однако его функциональность идет гораздо дальше. APT может автоматически обновлять ваши пакеты, устанавливать зависимости, а также автоматически загружать ваши пакеты из Интернета. Это один из самых распространенных менеджеров пакетов, установленных на современных дистрибутивах, с предустановленным на Ubuntu, Debian и большинством других операционных систем на базе Debian.

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

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

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

Менеджеры пакетов RedHat Enterprise Linux (RHEL)

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

RedHat и CentOS - одна из наиболее широко используемых серверных операционных систем, найденных сегодня на серверах. Основным программным обеспечением управления пакетами, установленным в этих системах, является RPM, что сокращает работу Red Hat Package Manager. Этот менеджер пакетов также выполняет основные операции, такие как установка и удаление пакетов, и, как и dpkg, также не может управлять пакетами или устанавливать их непосредственно из Интернета.

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

Как и операционные системы на базе Debian, операционные системы RHEL также имеют собственное программное обеспечение для управления пакетами. YUM, сокращение от Yellow Dog Updater, является самым популярным выбором в качестве интерфейса RPM. Он открывает намного больше возможностей для файлов RPM через репозитории, отслеживает, что установлено в системе, упрощает обновление и многое другое. Это эквивалент менеджера пакетов APT на основе RHEL.

DNF, сокращенный для Dandified Packaging Tool, является более модернизированной и расширенной версией менеджера YUM, включающей функции YUM, одновременно повышая производительность и использование ресурсов. На данный момент только Fedora использует эту версию YUM следующего поколения, но, надеюсь, мы увидим, что в будущем она будет распространяться на большее количество операционных систем.

Есть несколько других инструментов управления пакетами, доступных для систем на основе RPM, таких как up2date, urpmi и ZYpp. Однако они не так широко используются как YUM или DNF.

Другие менеджеры пакетов

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

Pacman - менеджер пакетов, найденный в Arch Linux. Pacman - единственный инструмент управления пакетами, найденный на Arch, что делает его не интерфейсом. Arch Linux - это скользящая версия операционной системы, причем обновления добавляются каждый день. Есть только несколько команд с pacman, предназначенных для поиска, установки и удаления пакетов. Этот менеджер пакетов может подключаться к Интернету и приобретать его пакеты оттуда, делая его более удобным для пользователя. Тем не менее, pacman предназначен для установки программного обеспечения из репозитория Arch, что делает его невозможным для установки из сторонних репозиториев.

Конструктор пакетов ABS

ABS, сокращение от Arch Build System, представляет собой систему инструментов, предназначенных для создания устанавливаемых пакетов программного обеспечения для Arch Linux из исходного кода. Это состоит из нескольких инструментов, которые работают вместе для создания пакетов. Этими инструментами являются все независимые программы, такие как makepkg, pacman, asp и т. Д. Способ создания / установки пакета с использованием АБС отличается от обычного дистрибутива Linux. Вместо установки предварительно скомпилированных пакетов вам нужно создать файл PKGBUILD из ветки Svn или Git, используя пакет asp. Оттуда вы используете команду makepkg, которая использует файл PKGBUILD для загрузки и компиляции исходного кода вашей системы. Это делает ABS немного менее интуитивным методом установки пакетов на Arch Linux. Он также имеет несколько других применений, таких как настройка существующих пакетов или создание и установка настраиваемого ядра.

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

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

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

PS. Если вам понравился этот пост при сравнении разных менеджеров пакетов Linux, поделитесь им со своими друзьями в социальных сетях, используя кнопки слева, или просто оставьте ответ ниже. Благодарю.

Обновление (апрель 09, 2018): Исправлены некоторые неточности в отношении набора инструментов компоновщика пакетов ABS.