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

Содержание
  1. Инструкции
  2. Командная строка Linux: краткий курс для начинающих
  3. Перенаправление ввода/вывода в Linux
  4. Работа с файлами и каталогами в Linux
  5. Как сгенерировать SSH-ключ для доступа на сервер
  6. Как установить и настроить веб-сервер Apache
  7. Руководство по написанию скриптов в Linux Bash
  8. Введение в Git: настройка и основные команды
  9. Как установить MySQL на Windows
  10. Как установить и использовать MySQL Workbench
  11. Создание нового пользователя и настройка прав в MySQL
  12. Альманах пакетных менеджеров Linux
  13. Debian и родственные
  14. Redhat и другие RPM дистрибутивы
  15. Zypper
  16. Pacman
  17. Gentoo emerge
  18. Обзор пакетных менеджеров Linux
  19. 1. DPKG — система управления пакетами Debian
  20. APT (Advanced Packaging Tool)
  21. Aptitude Package Manager
  22. Synaptic
  23. Gnome Software
  24. AppGrid
  25. 2. RPM (Red Hat Package Manager)
  26. YUM (Yellowdog Updater, Modified)
  27. DNF – Улучшенный Yum
  28. 3. Pacman — менеджер пакетов Arch Linux
  29. 4. Zypper — пакетный менеджер OpenSUSE
  30. 5. Portage — пакетный менеджер Gentoo
  31. 6. Snap
  32. 7. Flatpack
  33. Выводы
  34. Эволюция менеджеров пакетов в Linux
  35. Как устанавливались программы в Linux до появления менеджеров пакетов?
  36. Что такое пакет?
  37. Что такое репозиторий программного обеспечения?
  38. Наиболее распространенные менеджеры пакетов.
  39. Менеджеры пакетов на основе RPM
  40. Работа с yum
  41. Работа с Zypper
  42. Менеджеры пакетов на базе Debian
  43. Менеджеры пакетов на базе Arch
  44. Работа с pacman и официальными репозиториями
  45. Работа с AUR
  46. Заключение

Инструкции

27 сентября 2021

Командная строка Linux: краткий курс для начинающих

27 сентября 2021

Перенаправление ввода/вывода в Linux

27 сентября 2021

Работа с файлами и каталогами в Linux

26 сентября 2021

Как сгенерировать SSH-ключ для доступа на сервер

23 сентября 2021

Как установить и настроить веб-сервер Apache

23 сентября 2021

Руководство по написанию скриптов в Linux Bash

21 сентября 2021

Введение в Git: настройка и основные команды

21 сентября 2021

Как установить MySQL на Windows

21 сентября 2021

Как установить и использовать MySQL Workbench

20 сентября 2021

Создание нового пользователя и настройка прав в MySQL

© ООО «Селектел», 2008—2021

Полностью изолированные физические серверы любой конфигурации с облачной готовностью

Виртуальные машины с моментальным масштабированием и поддержкой Infrastructure-as-code

В дата-центрах TIER III Москвы, Санкт‑Петербурга и ЛО

Инфраструктура на базе VMware для бизнес-критичных задач любой сложности

Готовые к работе управляемые базы данных PostgreSQL и MySQL™

Полностью готовый к работе кластер Kubernetes для управления контейнерами

Масштабируемое хранилище данных с гибким ценообразованием, поддержкой FTP и S3 API

Запуск кода по запросу или событию без создания и обслуживания сервера

Источник

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

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

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

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

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

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

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

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

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

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

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

RPM нельзя назвать образцовым пакетным менеджером, скорее это был кактус, который мыши употребляли в пищу со слезами на глазах. Затем появились более или менее вменяемые МП: yum , dnf , zypper и другие. Только что на сервере RHEL 7.4 yum за раз обновил более 700 пакетов и ничего при этом не сломал, неплохой результат я считаю.

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

Чтобы настроить репозитории Yum , откройте файл /etc/yum.repos.d/*.repo , или используйте команду yum-config-manager .

Zypper

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

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

Управление репозиториями производится командой zypper mr .

Pacman

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

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

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

Gentoo emerge

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

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

Источник

Обзор пакетных менеджеров Linux

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

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

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

1. DPKG — система управления пакетами Debian

Dpkg — это базовая система управления пакетами в Debian. Может использоваться для установки, удаления, хранения и получения информации о .deb пакетах.

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

APT (Advanced Packaging Tool)

Очень популярный, мощный инструмент командной строки с открытым исходным кодом для управления пакетами, который намного увеличивает возможности dpkg. Эта утилита используется в Debian и его производных, таких как Ubuntu, Linux Mint. Я уже писал про apt на этом сайте.

Aptitude Package Manager

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

Synaptic

Synaptic — это графический менеджер пакетов linux, написанный на GTK и использующий apt в качестве бэкенда. Он отлично подходит для пользователей, которые не хотят работать в командной строке. Здесь есть все те же необходимые функции что и в apt.

Gnome Software

Это центр приложений Gnome. Там есть далеко не все программы, которые есть в репозиториях и подход к установке немного другой. Вы устанавливаете не пакеты по отдельности, а саму нужную программу. Обо всём остальном центр приложений заботиться сам, скрывая от вас подробности. Gnome Software поддерживает не только Deb пакеты, но и Rpm в системах, основанных на RHEL, а также snap и flatpack, о которых мы поговорим ниже.

AppGrid

Простенькая альтернатива для центра приложений Ubuntu. Программе очень далеко до функциональности Synaptic. Она позволяет устанавливать приложения так же, как и центр приложений Gnome Software и выглядит очень похоже на Windows Store.

2. RPM (Red Hat Package Manager)

Это базовый формат и система управления пакетами, созданная в компании Red Hat. Так же как и dpkg, это низкоуровневый инструмент, для которого существует несколько утилит, это такие пакетные менеджеры Linux:

Читайте также:  Где находиться windows movie maker

YUM (Yellowdog Updater, Modified)

Это популярный менеджер пакетов linux с открытым исходным кодом для командной строки. Он используется для управления пакетами в дистрибутиве Red Hat. Если сравнивать с инструментом apt, то здесь есть все те же функциональные возможности, правда, работает немного медленнее. Написан на Python 2. Немного больше об отличиях формата пакетов rpm и deb можно прочитать в отдельной статье. А про сам Yum есть такая статья.

DNF – Улучшенный Yum

Это пакетный менеджер linux, используемый в дистрибутиве Fedora начиная с версии 18. Он представляет из себя следующее поколение YUM.

Сначала он был создан только для экспериментов, но начиная с Fedora 22 он используется как пакетный менеджер по умолчанию. Он работает почти также как и YUM, для разрешения зависимостей используется библиотека libsolv и hawkey, но отличие от YUM, написан на Python 3. Здесь можно наблюдать увеличение скорости работы, а также уменьшение потребления памяти.

3. Pacman — менеджер пакетов Arch Linux

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

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

Программа специально спроектирована для удобной работы с пакетами в Arch Linux. А поскольку это система с режимом выпуска в виде роллинг релизов, то этот пакетный менеджер подходит наилучшим образом. Pacman поддерживает систему в актуальном состоянии синхронизируя списки пакетов из основного сервера. Причем существует только одна версия системы — текущая.

Программа написана на Си, а в качестве пакетов используются файлы формата tar.xz, которые на самом деле являются обычными архивами, внутри которых находятся файлы программы и файл описания установки PKGBUILD. Читайте подробнее про установку пакетов в Arch Linux в отдельной статье.

4. Zypper — пакетный менеджер OpenSUSE

Это пакетный менеджер linux для командной строки в дистрибутиве OpenSUSE и SUSE Linux. Разработан специально для этого дистрибутива и использует библиотеку libzypp, в которой реализованы такие общие возможности, как доступ к репозиторию, установка пакетов, разрешение зависимостей, работа с репозториями и многое другое.

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

5. Portage — пакетный менеджер Gentoo

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

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

6. Snap

Универсальный менеджер пакетов разработанный в Canonical, который можно использовать как в Deb, так и в Rpm дистрибутиве. Здесь используется особый формат пакетов, в котором все зависимости программы упаковываются в пакет с ней, поэтому программа оказывается самодостаточной и может запускаться в любой системе, где установлен этот пакетный менеджер. Кроме того, менеджер пакетов snap добавляет безопасности, программам не разрешено использовать те функции, что им не нужны. Более подробно про snap можно почитать в этой статье.

7. Flatpack

Пакетный менеджер Flatpack разработан для Fedora в качестве конкурента для Snap. Он может практически всё то же самое. В пакет программы упаковываются всё её зависимости и она может работать в любой системе где установлено программное обеспечение Flatpack. Безопасность здесь тоже работает. Главное отличие в том, что Flatpack более открыт, чтобы добавить пакет в Snap Store надо подписать соглашение с Canonical, а Flatpack больше похож на формат PPA. Любой человек может создать свой репозиторий и размещать там всё, что ему надо.

Выводы

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

Источник

Эволюция менеджеров пакетов в Linux

Оригинал: The evolution of package managers
Автор: Steve Ovens
Дата публикации: 26 июля 2018 года
Перевод: А. Кривошей
Дата перевода: ноябрь 2018 г.

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

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

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

Как устанавливались программы в Linux до появления менеджеров пакетов?

Исторически программное обеспечение предоставлялось либо через FTP-серверы, либо в списках рассылки. Только несколько небольших файлов содержали инструкции по созданию двоичного файла (обычно в файле tarfile). Вы должны были распаковать файлы, прочитать readme, и если у вас есть GCC или какой-либо другой компилятор C, вы обычно запускаете скрипт ./configure с некоторым списком атрибутов, например, путями к библиотекам и т. д. Кроме того, процесс configure проверяет вашу систему на наличие зависимостей приложений. Если какие-либо основные требования не выполнены, скрипт configure завершит работу, и вы не сможете продолжить установку до тех пор, пока не будут выполнены все зависимости. Если скрипт configure успешно завершен, будет создан Makefile.

Как только файл Makefile создан, вы должны продолжить, запустив выполнение команды make (эта команда предоставляется любым компилятором, который вы используете). Команда make имеет несколько параметров, называемых make flags, которые помогают оптимизировать результирующие двоичные файлы для вашей системы. Раньше это было очень важно, потому что аппаратное обеспечение изо всех сил старалось не отставать от современных требований к программному обеспечению. Сегодня варианты компиляции могут быть гораздо более универсальными, поскольку большинство аппаратных средств более чем подходит для современного программного обеспечения.

Наконец, после того, как процесс make завершен, вам нужно будет выполнить make install (или sudo make install), чтобы фактически установить программное обеспечение. Как вы можете себе представить, делать это для каждой отдельной программы было трудоемким и утомительным процессом, не говоря уже о том, что обновление программного обеспечения было сложным и потенциально очень рискованным процессом.

Что такое пакет?

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

Читайте также:  Как установить procreate для windows

Несколько проектов Linux разработали свои собственные форматы пакетов. Некоторые из наиболее часто используемых форматов пакетов:

.deb: Этот формат пакета используется Debian, Ubuntu, Linux Mint и многими другими их производными. Это был первый разработанный тип пакета.
.rpm: Этот формат пакета первоначально назывался Red Hat Package Manager. Он используется Red Hat, Fedora, SUSE и другими меньшими дистрибутивами на их базе.
.tar.xz: это просто архив с файлами программы, это формат, который использует Arch Linux.

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

Что такое репозиторий программного обеспечения?

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

Arch Linux с использованием aurman

Ubuntu с использованием APT

Наиболее распространенные менеджеры пакетов.

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

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

Обновление систем на основе RPM, особенно тех, которые основаны на технологиях Red Hat, имеет очень интересную историю. Фактически, текущие версии yum (для корпоративных дистрибутивов) и DNF (для сообщества) для обеспечения их текущей функциональности объединяют несколько проектов с открытым исходным кодом.

Первоначально Red Hat использовал диспетчер пакетов RPM (Red Hat Package Manager), который по-прежнему используется и сегодня. Однако его основное назначение заключается в установке пакетов RPM, которые находятся локально на вашем компьютере, а не для поиска репозиториев программного обеспечения. Для информирования пользователей об обновлениях пакетов был создан менеджер пакетов с именем up2date, он позволяет искать удаленные репозитории и легко устанавливать зависимости. В то же время, некоторые члены сообщества считали, что у up2date были некоторые существенные недостатки.

Нынешняя реализация yum произошла из усилий различных частей сообщества. Yellowdog Updater (YUP) был разработан в 1999-2001 годах людьми из Terra Soft Solutions в качестве базового механизма для графического установщика Yellow Dog Linux. Людям из Duke University понравилась идея YUP и они решили улучшить его. Они создали Yellowdog Updater, Modified (yum), который в конечном итоге был адаптирован для управления системами Red Hat Linux в университете. Популярность Yum росла, и к 2005 году он, по различным оценкам, использовался более чем половиной рынка Linux. Сегодня почти во всех дистрибутивах Linux, использующих RPM, для управления пакетами используется yum (с несколькими заметными исключениями).

Работа с yum

Чтобы yum загружал и устанавливал пакеты из интернет-репозиториев, файлы должны быть расположены в /etc/yum.repos.d/, и они должны иметь расширение .repo. Вот пример файла repo:

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

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

Если вы уверены, что хотите выполнить любую команду без остановки ввода, вы можете поместить в команду флаг -y, например yum update -y.

Установка нового пакета так же проста. Сначала найдите имя пакета с помощью поиска yum:

После того, как у вас есть имя пакета, вы можете просто установить пакет с помощью команды: sudo yum install kate-devel -y. Если вы установили пакет, который вам больше не нужен, вы можете удалить его с помощью sudo yum remove kate-devel -y. По умолчанию yum удалит пакет и его зависимости.

Бывают случаи, когда вы не знаете имя пакета, но знаете имя утилиты. Например, предположим, что вы ищете утилиту updateb, которая создает/обновляет базу данных, используемую командой locate. Попытка установить updatedb возвращает следующие результаты:

Вы можете узнать, из какого пакета работает утилита:

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

Есть, конечно, еще много вариантов использования для yum. Я рекомендую вам просмотреть man-страницу yum для изучения дополнительных параметров.

Dandified Yum (DNF) — это новая итерация yum. Представленный в Fedora 18, он еще не принят в промышленных дистрибутивах, и преимущественно используется в Fedora (и ее производных). Его использование почти точно такое же, как у yum, но эта утилита была создана для решения проблем с низкой производительностью, недокументированными API, медленного/неработающего разрешения зависимостей и утечек памяти. DNF представляет собой замену yum, и поэтому я не буду повторять команды — везде, где вы будете использовать yum, просто замените его на dnf.

Работа с Zypper

Zypper — еще один менеджер пакетов, который помогает управлять RPM. Этот менеджер пакетов чаще всего связывают с SUSE (и openSUSE), но он также принят в MeeGo, Sailfish OS и Tizen. Он был первоначально представлен в 2006 году и с тех пор развивается. Zypper используется в качестве бэкенда для инструмента администрирования системы YaST, и некоторые пользователи считают, что он быстрее, чем yum.

Использование Zypper очень похоже на использование yum. Для поиска, обновления, установки или удаления пакета просто используйте следующие команды:

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

Аналогично вы можете удалять репозитории:

Используйте команду zypper repos, чтобы узнать статус репозиториев в вашей системе:

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

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

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

Один из старейших дистрибутивов Linux, Debian очень похож на системы на основе RPM. Дистрибутивы на его базе используют пакеты .deb, которыми может управлять инструмент dpkg. Сам dpkg очень похож на rpm, поскольку он предназначен для управления пакетами, доступными локально. Он не поддерживает разрешения зависимости (хотя и проверяет их) и не имеет надежного способа взаимодействия с удаленными репозиториями. Чтобы улучшить пользовательский интерфейс и простоту его использования, проект Debian начал разработку системы под кодовым названием Deity. Это кодовое имя в конечном итоге было заменено на Advanced Package Tool (APT).

Тестовая сборка была выпущена в 1998 году (релиз вышел в Debian 2.1 в 1999 году). Многие пользователи считают APT одной из определяющих особенностей систем на базе Debian. Он использует репозитории аналогично системам на основе RPM, но вместо отдельных файлов .repo, которые использует yum, apt исторически использовал файл /etc/apt/sources.list для управления репозиториями. С недавних пор он также использует файлы из /etc/apt/sources.d/. Следуя примерам в менеджерах пакетов на основе RPM, чтобы выполнить ту же задачу в дистрибутивах на базе Debian, у вас есть несколько вариантов. Вы можете редактировать/создавать файлы вручную в вышеупомянутых местах, или в некоторых случаях вы можете использовать графический интерфейс (например, Software & Updates, предоставляемый Ubuntu и др.). Чтобы обеспечить одинаковую работу системы во всех дистрибутивах, я расскажу только о вариантах командной строки. Чтобы добавить репозиторий без прямого редактирования файла, вы можете сделать что-то вроде этого:

Читайте также:  Как восстановить linux mint когда мигает одна черточка

Это создаст файл spideroakone.list в /etc/apt/sources.list.d. Очевидно, эти строки меняются в зависимости от добавляемого репозитория. Если вы добавляете Personal Package Archive (PPA), вы можете сделать это следующим образом:

Примечание: Debian не поддерживает PPA нативно.

После добавления репозитория система на базе Debian должна быть уведомлена о том, что существует новое место для поиска пакетов. Это делается с помощью команды apt-get update:

Теперь новый репозиторий добавлен и обновлен, вы можете искать в нем пакеты с помощью команды apt-cache:

Для установки kate просто запустите соответствующую команду установки:

Для удаления пакета используйте команду apt-get remove:

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

Проблема с поиском apt-file заключается в том, что он, в отличие от yum whatprovides, слишком многословный, если вы не знаете точного пути, и он автоматически добавляет поиск подходящих символов, чтобы вы получили результаты по всему со словом kate в нем:

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

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

Arch Linux использует диспетчер пакетов pacman. В отличие от файлов .deb или .rpm, pacman использует более традиционный tarball со сжатием LZMA2 (.tar.xz). Это позволяет пакетам Arch Linux быть намного меньше, чем другие форматы сжатых архивов (например, gzip). Первоначально выпущенный в 2002 году, pacman неуклонно развивался и улучшался. Одним из основных преимуществ pacman является то, что он поддерживает Arch Build System, систему для создания пакетов из исходного кода. Система сборки использует файл PKGBUILD, который содержит метаданные (такие как номера версий, ревизии, зависимости и т. д.), а также сценарий оболочки с необходимыми флагами для компиляции пакета, соответствующего требованиям Arch Linux. Полученные двоичные файлы затем упаковываются в вышеупомянутый файл .tz.xz для pacman.

Эта система привела к созданию Arch User Repository (AUR), который представляет собой репозиторий, основанный сообществом и содержащий файлы PKGBUILD и поддерживающий патчи или скрипты. Это позволяет использовать практически бесконечное количество программ в Arch. Очевидным преимуществом этой системы является то, что если пользователь (или майнтайнер) хочет сделать программное обеспечение доступным для общественности, им не нужно проходить официальные каналы, чтобы разместить его в основных репозиториях. Недостатком является то, что он зависит от сообщества, подобного Docker Hub, пакетам Canonical Snap или другим аналогичным механизмам. Существует множество AUR-специфичных менеджеров пакетов, которые можно использовать для загрузки, компиляции и установки из файлов PKGBUILD в AUR (мы рассмотрим их позже).

Работа с pacman и официальными репозиториями

Главный менеджер пакетов Arch, pacman, использует флаги вместо команд, таких как yum и apt. Например, чтобы найти пакет, вы должны использовать команду pacman -Ss. Как и в большинстве команд Linux, вы можете найти как man-страницу, так и встроенную справку. Большинство команд для pacman используют флаг синхронизации (-S).

Arch также использует репозитории, подобно другим менеджерам пакетов. В вышеприведенном выводе результаты поиска предваряются репозиторием, в котором они находятся (extra/ и community/ в этом случае). Подобно системам Red Hat и Debian, Arch полагается на пользователя, чтобы добавить информацию о репозитории в конкретный файл. Место хранения для этих репозиториев — /etc/pacman.conf. Пример ниже довольно близок реальной задаче. Я включил репозиторий [multilib] для поддержки Steam:

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

Подобно системам на базе Debian, Arch не обновляет информацию о локальном репозитории, пока вы не скажете ему об этом. Вы можете обновить базу данных пакета, выполнив следующую команду:

Как видно из вышесказанного, pacman считает, что база данных multilib пакета обновлена. Вы можете обновить ее принудительно, если считаете, что это неверно, запустив команду pacman -Syy. Если вы хотите обновить всю систему (исключая пакеты, установленные из AUR), вы можете запустить команду pacman -Syu:

В сценарии, упомянутом ранее относительно даунгрейда системы, вы можете принудительно выполнить даунгрейд, с помощью команды pacman -Syyuu. Важно отметить, что это не следует воспринимать легкомысленно. В большинстве случаев это не должно вызывать проблемы; однако есть вероятность того, что даунгрейд пакета или нескольких пакетов вызовет каскадный сбой и оставит систему в несогласованном состоянии. ИСПОЛЬЗУЙТЕ С ОСТОРОЖНОСТЬЮ!

Чтобы установить пакет, просто используйте команду pacman -S kate:

Чтобы удалить пакет, вы можете запустить команду pacman -R kate. Она удаляет только пакет, а не его зависимости:

Если вы хотите удалить зависимости, не требуемые другими пакетами, вы можете выполнить команду pacman -Rs:

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

Работа с AUR

Есть несколько популярных помощников менеджера пакетов AUR. Из них довольно популярны yaourt и pacaur. Однако в Arch Wiki оба проекта перечислены как остановленные или проблемные. По этой причине я обсужу aurman. Он работает почти так же, как pacman, за исключением того, что он ищет программы в AUR и включает некоторые полезные, хотя и потенциально опасные возможности. Установка пакета из AUR будет инициировать использование скриптов сборки стороннего разработчика. Вам будет предложено несколько раз сделать подтверждения для продолжения установки (я сократил вывод для краткости):

Иногда вам будет предложено ввести больше ввода, в зависимости от сложности устанавливаемого вами пакета. Чтобы избежать этой скуки, aurman позволяет вам передавать параметры —noconfirm и —noedit. Это эквивалентно утверждению «принимать все значения по умолчанию и доверять тому, что скрипты, поддерживающие пакет, не будут вредоносными». ИСПОЛЬЗУЙТЕ ЭТО ВАРИАНТ С ЭКСТРЕМАЛЬНОЙ ОСТОРОЖНОСТЬЮ! Хотя эти варианты вряд ли разрушат вашу систему сами по себе, вы никогда не должны слепо принимать чужие сценарии.

Заключение

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

Источник

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