менеджер пакетов linux debian

Альманах пакетных менеджеров Linux

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

менеджер пакетов linux debian

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

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

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

Есть еще такое чудо — wajig. Несмотря на странное звучание, вполне годный МП с человеко-читабельным выводом информации на экран.

Настройка репозиториев производится правкой файла /etc/apt/sources.list

В целом ПМ Debian один из лучших, с которыми мне доводилось иметь дело.

Redhat и другие RPM дистрибутивы

Команды rpm на те случаи, когда использовать yum не с руки.

Zypper

На SuSE Linux используется Zypper / YaST для управления пакетами, движок ZYpp крутится поверх RPM.

Можно использовать операторы и регулярные выражения.

Pacman

Этот МП используется в Арче и Manjaro.

Движок поиска в базе данных поддерживает регулярные выражения.

Настройка репозиториев и зеркал производится из файла /etc/pacman.conf

Gentoo emerge

С дополнительными утилитами можно получить больше информации о файлах, ненужных пакетах и т. д.

Источник

Популярные пакетные менеджеры Linux

менеджер пакетов linux debian

Содержание:

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

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

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

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

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

Теоретические основы

Категории пакетных менеджеров

Распространенные форматы пакетов

Разрешение зависимостей

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

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

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

Популярные пакетные менеджеры

менеджер пакетов linux debian

DPKG (Debian Package) – система управления пакетами в Debian и дистрибутивах на его основе, например Ubuntu.

Утилита DPKG появилась в дистрибутиве Debian в 1995 году. Низкоуровневый пакетный менеджер создан только для работы с локальными DEB пакетами и не может самостоятельно разрешать зависимости, а также скачивать пакеты из репозиториев.

Особенности

Пакеты DEB – это архивы с набором установочных файлов. Для установки в систему необходимой программы из репозиториев создан высокоуровневый пакетный менеджер APT, который параллельно работает с DPKG.

менеджер пакетов linux debian

APT (Advanced Packaging Tool) – консольная утилита, выполняющая роль «поисковика» и загрузчика пакетов из репозиториев. Установка скачанных пакетов производится утилитой DPKG. Благодаря эффективному разрешению зависимостей, пакетный менеджер APT используется по умолчанию в дистрибутивах с архитектурой Debian и поддерживает систему в актуальном состоянии.

Список репозиториев хранится в файле «/etc/apt/sources.list» и может быть изменён пользователем в любой момент для установки или обновления программы, не входящей в базу дистрибутива. Установка скачанных пакетов производится утилитой DPKG.

Изначально APT разрабатывался только для работы с пакетами DEB, использующихся в Debian и родственных ОС (Ubuntu, Linux Mint). Позже в него была добавлена поддержка rpm-файлов. Благодаря этому, установить софт привычным образом можно даже в дистрибутивах RED HAT и его производных (Fedora, CentOS и др.).

Оболочки APT

Для упрощения работы с APT можно использовать консольные оболочки APTITUDE или Synaptic.

APTITUDE

APTITUDE — это утилита, выполняющая роль «надстройки» для APT. Разработчики программы добавили полезные функции, оптимизирующие систему поиска пакетов, а также исправили ошибки, касающиеся разрешения зависимостей.

APTITUDE доступен в нескольких вариантах интерфейса:

Если в дистрибутиве APTITUDE отсутствует по умолчанию, то выполнить установку можно следующими командами:

Synaptic

менеджер пакетов linux debian

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

Установить Synaptic можно следующими командами:

Открыть программу можно, найдя ярлык в меню рабочего окружения, или введя « sudo synaptic » в терминале.

менеджер пакетов linux debian

RPM (Red Hat Package Manager) – формат пакетов и низкоуровневый пакетный менеджер систем RED HAT (RHEL, CentOS, Fedora и др.) Как и DPKG, способен работать только с локальными файлами.

Пакетный менеджер выпущен в 1997 году. Он работает с пакетами RPM. В отличие от DEB, пакеты RPM архивируются утилитой cpio, сжимающий пакет алгоритмом gzip.

Особенности

менеджер пакетов linux debian

YUM (Yellowdog Updater, Modified) – высокоуровневый пакетный менеджер, написанный на языке Python для систем RED HAT (RHEL, CentOS, Fedora). Программа представляет собой своеобразную оболочку для утилиты RPM.

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

DNF (Dandified YUM) – модифицированная версия пакетного менеджера YUM на языке на Python. Разработка утилиты начата в 2011 году. В 2015 году DNF стал основным менеджером пакетов для системы Fedora 22. В DNF были исправлены такие недостатки YUM, как некорректная установка зависимостей, низкая скорость работы, большое потребление оперативной памяти.

Yum Extender

Yum Extender – лёгкая графическая оболочка для менеджеров пакетов YUM и DNF.

менеджер пакетов linux debian

Yum Extender устанавливается следующей командой:

Pacman

менеджер пакетов linux debian

Pacman – высокоуровневый пакетный менеджер системы Arch Linux и его родственных дистрибутивов (Manjaro, EndeavourOS и др.). Программа написана на языке C# и совмещает высокую функциональность, легкость и производительность. В качестве пакетов используются архивы pkg.tar.xz.

Особенности

Компиляция программы производится только в том случае, если пакет взят из репозитория AUR (Arch User Repository). Он содержит более 54000 пакетов и активно поддерживается обычными пользователями и администраторами ArchLinux.

Перед тем, как попасть в официальный репозиторий дистрибутива, пакеты проходят тщательный отбор в репозиториях AUR. Репозиторий AUR, в отличие от официального репозитория, содержит скрипты PKGBUILD для самостоятельной сборки пакета в системе пользователя. Для компиляции используется скрипт MakePKG.

Оболочки Pacman

MakePKG

Скрипт, объединяющий работу компилятора, линкера и других вспомогательных приложений для сборки пакета из PKGBUILD. MakePKG установлен по умолчанию в системе с пакетным менеджером Pacman. Компонент входит в пакет base-devel и ABS (Система автоматической сборки пакетов).

Установка или обновление всех компонентов производиться командами:

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

Важно. Запуск скрипта с помощью MakePKG должен проводится без предоставления прав администратора. Это делается для защиты системы от выполнения вредоносных команд, находящихся в файле «pkgbuild».

Программа написана на языке GO и используется для поиска и установки пакета из репозитория AUR. Управления Yay производится посредством командной строки.

Для установки утилиты в дистрибутив с Pacman нужно задать следующие команды:

Утилита Yay упрощает весь алгоритм установки до ввода одной простой команды в консоль. Например, запрос к терминалу для инсталляции пакета из AUR строится следующим образом:

Примечание. Для установки пакетов через Yay не требуется предоставлять административный доступ утилите (добавлять «sudo» перед командой).

Pamac

менеджер пакетов linux debian

Графический менеджер пакетов Pamac разработан специально для Manjaro, но может быть установлен в любой дистрибутив на основе Arch Linux. Программа сочетает лёгкость с большим функционалом. В качестве источников используются официальные репозитории дистрибутивов AUR и Snappy.

Установка программы Pamac выполняется командой:

Portage

менеджер пакетов linux debian

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

Особенности

Установка программ из репозиториев чаще всего производится с помощью интерфейса Emerge. Для добавления дружелюбности системе, также можно использовать графическую оболочку Kuroo.

Интерфейсы Portage

Emerge

Консольный интерфейс Emerge предназначен для сборки и обновления программ и их зависимостей. Инструмент доступен «из коробки» и используется для работы с системой Portage по умолчанию.

Для компиляции программ используются ebuild-скрипты. Они содержатся в локальных репозиториях Gentoo (overlay), а сам исходный код программ скачивается с GitHub. Настроить список репозиториев можно самостоятельно, в файле «/etc/portage/repos.conf».

Kuroo

Графический интерфейс Kuroo по принципу работы почти не отличается от Emerge. Утилита написана на языке C++ с использованием фреймворка Qt.

менеджер пакетов linux debian

Kuroo установлен по умолчанию в систему с рабочим окружением KDE. В случае отсутствия программы, инсталляция выполняется по данной инструкции.

Заключение

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

Чтобы даже самый требовательный дистрибутив Linux работал как швейцарские часы — выбирайте VDS от Eternalhost с оперативной техподдержкой 24/7 и бесплатной защитой от DDoS.

Источник

Управление пакетами в Debian

Базовая конфигурация

APT использует файл, который содержит список «источников» из которых могут быть получены пакеты. Это файл /etc/apt/sources.list. Записи в этом файл обычно следуют формату:

Конечно, указанные выше записи приведены только для примера и не должны использоваться. Первое слово каждой линии, deb или deb-src, показывают тип архива: является ли эта строка ссылкой на бинарные пакеты (deb), которые являются прекомпилированными пакетами, которые мы обычно используем, или это это ссылки на исходные коды оригинальных программ, плюс контрольные файлы Debian (.dsc) и diff.gz, содержащие изменения необходимы для «дебианизации» программы.

В Debian версии 6.0.5, установленного загрузкой файлов из интернета, sources.list имеет следующее содержание:

Файл /etc/apt/sources.list может содержать различные типы строк. APT умеет использовать архивы следующих типов: http, ftp, file (локальные файлы, то есть директории, содержащие примонтированные файловые системы типа ISO9660) и ssh, насколько мне известно.

Не забудьте запустить команду apt-get update после изменения файла /etc/apt/sources.list. Вы должны сделать это чтобы APT мог получить списки пакетов из указанных вам источников. Когда вы устанавливаете пакет APT получает необходимые файлы с хостов перечисленных в /etc/apt/sources.list, сохраняет их в локальном репозитарии (/var/cache/apt/archives/) и переходит к установке.

Основные утилиты для управления пакетами

dpkg – установщик пакетных файлов Debian
apt-get – утилита командной строки для APT
aptitude – имеет как псевдографический интерфейс, так и вариант для командной строки
synaptic – графический (gui) интерфейс для APT
dselect – менеджер пакетов на основе меню
tasksel – установщик задач

Для установки программ с помощью apt выполните следующее:

Утилита имеет следующие параметры:

Примеры использования apt-get

Обновление списка пакетов из источников, перечисленных в вашем файле sources.list:

Обновление программ с помощью APT:

Чтобы изменить список зеркал APT:

Искать пакет в локальном кэше:

Удалить программу с помощью APT:

Обновить список пакетов:

Обновить доступные списки пакетов:

Обновить все установленные пакеты:

Показать все установленные и удалённые пакеты:

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

Показать все пакеты, удовлетворяющие маске:

Показать пакеты, которые содержат строку:

Показать список файлов в пакете:

Показать статус пакета:

Показать детали пакета:

Показать связанные пакеты:

Установить пакет из deb файла:

Вычистить пакет из системы вместе с конфигурационными файлами:

Повторно запустить конфигурацию для пакета:

Получить исходные коды пакета:

Определяет зависимости для исходников и устанавливает их, если нужно:

Установить пакет из указанного релиза:

Предотвращает загрузку указанной программы при старте системы:

Как узнать, какие пакеты могут быть обновлены?

Управление пакетами с помощью aptitude

Aptitude является в настоящий момент предпочтительной системой для работы с APT (Advanced Package Tool). Она запоминает, какие пакеты были установлены напрямую Вами, а какие пакеты были установлены за счет зависимостей. Недавние пакеты будут автоматически удалены системой aptitude, когда они будут уже не будут требоваться какому-либо пакету, установленному напрямую. Aptitude имеет продвинутые функции фильтрации пакетов, но они могут быть сложны в настройке.

Обновление локального кеша доступных пакетов (ранее: apt-get update):

Обновить доступные пакеты (ранее: apt-get upgrade):

Обновить доступные пакеты, даже если это значит удаление части пакетов (ранее: apt-get dist-upgrade):

Установить пакет (ранее: apt-get install):

Удалить пакет (ранее: apt-get remove):

Удалить пакет и конфигурационные файлы (ранее: apt-get –purge remove):

Искать пакет с текстом «string» в имени или описании (ранее: apt-cache search string):

Показать подробную информацию о пакете (ранее: apt-cache show pkgname):

Удалить загруженные файлы пакетов (ранее: apt-get clean):

Удалить только файлы пакетов старых версий, но пакеты текущих версий оставить (ранее: apt-get autoclean):

Зафиксировать пакет на текущей версии и не обновлять его автоматически (ранее: не понятная команда echo-to-file):

Чтобы снять фиксацию следует использовать параметр unhold.

Оптимизированный sources.list

Вообще говоря, усилия для создания оптимизированного sources.list не дают особого улучшения.

apt-spy создает sources.list автоматически, на основе задержек и пропускной способности. netselect-apt создает более полный sources.list, но использует более простой метод выбора лучшего зеркала (сравнения времени пингов).

Команда dpkg-divert

Что делать, если команда dpkg сломана

Для архитектуры i386, в URL может быть использована также ссылка http://packages.debian.org/dpkg

Локальный архив пакетов

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

Локальный deb репозитарий, похожий на официальный архив Debian, может быть создан следующим образом:

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

К этим архивам можно получить удаленный доступ, если предоставить доступ к этим директориям посредством HTTP или FTP и внести соответствующие изменения в файл /etc/apt/sources.list

Команда auto-apt

Основные ошибки при управлении пакетами

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

1. Если Вы получили представленное ниже сообщение, когда пытались выполнить команду вида apt-get install package

то вы забыли выполнить команду apt-get update после того, как внесли изменения в файл /etc/apt/sources.list.

2. Если ошибка выглядит как эта:

в момент, когда вы пытаетесь воспользоваться одним из методов apt-get, кроме source, то у вас нет прав суперпользователя, то есть вы работаете под обычным пользователем.

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

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

Источник

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

Содержание

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

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

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 может вызываться с многими параметрами. Наиболее часто используемые из них:

8.1.2. APT

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

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

To update the list of packages known by your system, you can run:

(вы должны регулярно запускать эту команду для обновления списка пакетов)

Установить пакет foo и все его зависимости:

Удалить пакет из системы:

Удалить из системы пакет и все его файлы настроек:

To list all packages for which newer versions are available, run:

Обновить все пакеты в системе (без установки дополнительных пакетов или удаления пакетов):

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

(Команда upgrade оставит старую установленную версию пакета, если для разрешения новых зависимостей при обновлении потребуется установка дополнительных пакетов. Команда full-upgrade менее консервативна.)

Note that you must be logged in as root to perform any commands that modify packages.

Note that apt-get now also installs recommended packages as default, and thanks to its robustness it’s the preferred program for package management from console to perform system installation and major system upgrades.

Найти пакеты, содержащие в своём описании слово :

Показать подробную информацию о пакете:

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

To print detailed information on the versions available for a package and the packages that reverse-depends on it:

8.1.3. aptitude

aptitude — это менеджер пакетов для систем Debian GNU/Linux, он предоставляет интерфейс к инфраструктуре управления пакетами apt. aptitude представляет собой текстовый интерфейс на основе библиотеки curses. Действия можно выполнять как из визуального интерфейса, так и из командной строки.

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

обеспечивает лёгкий доступ ко всем версиям пакета;

позволяет легко отслеживать устаревшее ПО, занося его в «список устаревших пакетов и пакетов, созданных локально»;

можно использовать для установки заранее сформированных наборов для определённых задач. Подробности см. в Раздел 8.1.5, «tasksel»;

aptitude in full screen mode has su functionality embedded and can be run by a normal user. It will call su (and ask for the root password, if any) when you really need administrative privileges.

Note that aptitude is the preferred program for daily package management from the console.

For more information, read the manual page aptitude (8) and install the aptitude-doc package.

8.1.4. synaptic

synaptic is a graphical package manager. It enables you to install, upgrade and remove software packages in a user friendly way. Along with most of the features offered by aptitude, it also has a feature for editing the list of used repositories, and supports browsing all available documentation related to a package. See the Synaptic Website for more information.

8.1.5. tasksel

Typically, the Debian installer will automatically install the task associated with a standard system and a desktop environment. The specific desktop environment installed will depend on the CD/DVD media used, most commonly it will be the GNOME desktop ( gnome-desktop task). Also, depending on your selections throughout the installation process, tasks might be automatically installed in your system. For example, if you selected a language other than English, the task associated with it will be installed automatically too and if the installer recognises you are installing on a laptop system the laptop task will also be installed.

8.1.6. Другие инструменты управления пакетами

8.1.6.1. dpkg-deb

8.2. Говорят, что Debian способен обновить работающую программу; как это делается?

Ядро (файловая система) в системах Debian GNU/Linux поддерживает замену файлов, даже когда они используются.

8.3. Как узнать, какие пакеты установлены в системе Debian?

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

Эта команда выведет для каждого пакета однострочную сводку, включающую два символа состояния (объясняемые в заголовке), имя пакета, установленную версию и краткое описание.

To learn the status of packages whose names match any pattern beginning with «foo», run the command:

Чтобы получить более подробный отчёт о состоянии определённого пакета, выполните команду:

8.4. How do I display the files of an installed package?

Учтите, что файлы, созданные сценариями установки, не отображаются.

8.5. Как определить пакет, которому принадлежит определённый файл?

zgrep foo Contents-ARCH.gz

apt-file search foo

8.6. Why is `foo-data’ not removed when I uninstall `foo’? How do I make sure old unused library-packages get purged?

Some packages are split in program (`foo’) and data (`foo-data’) (or in `foo’ and `foo-doc’). This is true for many games, multimedia applications and dictionaries in Debian and has been introduced since some users might want to access the raw data without installing the program or because the program can be run without the data itself, making `foo-data’ optional.

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

In these cases, `foo-data’ doesn’t depend on `foo’, so when you remove the `foo’ package it will not get automatically removed by most package management tools. The same holds true for the library packages. This is necessary to avoid circular dependencies. However, if you use apt-get (see Раздел 8.1.2, «APT») or aptitude (see Раздел 8.1.3, «aptitude») as your package management tool, they will track automatically installed packages and give the possibility to remove them, when no packages making use of them remain in your system.

[5] Notice that there are ports that make this tool available with other package management systems, like Red Hat package manager, also known as rpm

Источник

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

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