Перейти к содержимому

Как установить пакетный менеджер в linux

  • автор:

Менеджеры пакетов в системах linux

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

Обзор пакетных менеджеров 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:

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, познакомить пользователей с лучшими пакетными менеджерами, а также показать отличия между ними. Конечно, пользователям определенного дистрибутива придется изучать свой менеджер пакетов более детально. Если я упустил важный момент, об одной из программ, напишите в комментариях!

Основы управления пакетами: apt, yum, dnf, pkg

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

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

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

Управление пакетами является жизненно важным навыком для системных администраторов и разработчиков.

Это руководство охватывает основы управления пакетами: поиск, установку и обновление пакетов для различных дистрибутивов.

Системы управления пакетами: краткий обзор

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

Операционная система Формат
Debian .deb
Ubuntu .deb
CentOS .rpm
Fedora .rpm
FreeBSD порты, .txz

CentOS, Fedora и другие системы Red Hat используют файлы RPM. В CentOS для взаимодействия с пакетами и репозиториями используется менеджер yum. В последних версиях Fedora yum был заменён модернизированным менеджером dnf.В системе Debian и основанных на ней системах (Ubuntu, Linux Mint, Raspbian) используется формат .deb. Пакетный менеджер APT (Advanced Packaging Tool) предоставляет команды, используемые для наиболее распространенных операций: поиска репозиториев, управления обновлениями, установки набора пакетов и их зависимостей. Команды APT работают как фронтэнд утилиты нижнего уровня dpkg, которая обрабатывает установку индивидуальных пакетов .deb на локальную систему; при необходимости эту утилиту можно вызывать явно.

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

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

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

Операционная система Команда
Debian / Ubuntu sudo apt-get update
CentOS yum check-update
Fedora dnf check-update
FreeBSD Packages sudo pkg update
FreeBSD Ports sudo portsnap fetch update

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

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

В системе FreeBSD обновление установленных портов может потребовать ручной настройки. Прежде чем обновлять portmaster, рекомендуется ознакомиться с /usr/ports/UPDATING.

Система Команда
Debian / Ubuntu sudo apt-get upgrade
sudo apt-get dist-upgrade
CentOS sudo yum update
Fedora sudo dnf upgrade
FreeBSD Packages sudo pkg upgrade
FreeBSD Ports less /usr/ports/UPDATING
cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a

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

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

Система Команда
Debian / Ubuntu apt-cache search search_string
CentOS yum search search_string
yum search all search_string
Fedora dnf search search_string
dnf search all search_string
FreeBSD (пакеты) pkg search search_string
pkg search -f search_string
pkg search -D search_string
FreeBSD (порты) cd /usr/ports && make search name=package
cd /usr/ports && make search key=search_string

Информация о пакетах

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

Система Команда
Debian / Ubuntu apt-cache show package
dpkg -s package
CentOS yum info package
yum deplist package
Fedora dnf info package
dnf repoquery –requires package
FreeBSD (пакеты) pkg info package
FreeBSD (порты) cd /usr/ports/category/port && cat pkg-descr

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

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

Система Команда
Debian / Ubuntu sudo apt-get install package
sudo apt-get install package1 package2 …
sudo apt-get install -y package
CentOS sudo yum install package
sudo yum install package1 package2 …
sudo yum install -y package
Fedora sudo dnf install package
sudo dnf install package1 package2 …
sudo dnf install -y package
FreeBSD (пакеты) sudo pkg install package
sudo pkg install package1 package2 …
FreeBSD (порты) cd /usr/ports/category/port && sudo make install

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

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

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

В Debian-подобных системах индивидуальными файлами пакетов управляет dpkg. Если пакет имеет зависимости, которых не установлены в системе, gdebi может загрузить их из официального репозитория.

В системах CentOS и Fedora для установки отдельных файлов и обработки необходимых зависимостей используется yum и dnf.

Система Команда
Debian / Ubuntu sudo dpkg -i package.deb
sudo apt-get install -y gdebi&& sudo gdebi package.deb
CentOS sudo yum install package.rpm
Fedora sudo dnf install package.rpm
FreeBSD (пакеты) sudo pkg add package.txz
sudo pkg add -f package.txz

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

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

Система Команда
Debian / Ubuntu sudo apt-get remove package
sudo apt-get autoremove
CentOS sudo yum remove package
Fedora sudo dnf erase package
FreeBSD (пакеты) sudo pkg delete package
sudo pkg autoremove
FreeBSD (порты) sudo pkg delete package
cd /usr/ports/path_to_port && make deinstall

Получение справки

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

В справочнике можно перемещаться при помощи кнопок со стрелками. Нажмите /, чтобы искать по тексту страницы, и q, чтобы выйти.

Система Команда Примечания
Debian / Ubuntu man apt-get Обновление локальной базы данных пакетов и работа с пакетами.
man apt-cache Запрос локальной базы данных пакетов.
man dpkg Управление индивидуальными файлами пакетов и запрос установленных пакетов.
CentOS man yum
Fedora man dnf
FreeBSD пакеты man pkg Управление предварительно скомпилированными файлами пакетов.
FreeBSD порты man ports Управление коллекцией портов.

Дополнительные ссылки

Данное руководство знакомит с основами управления пакетами в Unix-подобных системах. Более подробную информацию по этой довольно сложной теме можно найти по следующим ссылкам:

Альманах пакетных менеджеров 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 . Тем не менее, без этого альманах был бы неполным.

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

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

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

https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara11.ru/