Что такое пакет linux

Обновлено: 04.07.2024

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

Что такое диспетчер пакетов в Linux?

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

В прежние времена, программное обеспечение , использовалось и устанавливалось из исходного кода. Вы должны обратиться к файлу (обычно называемому readme) и посмотреть, какие программные компоненты ему нужны, расположение двоичных файлов. Сценарий настройки или зачастую включаемый make-файл. Вам придется скомпилировать программное обеспечение или самостоятельно или вместе со всеми зависимостями (для некоторых программ требуется установка другого программного обеспечения) самостоятельно.

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

Это как испечь торт, а не купить торт.

Примерно в середине 90-х Debian создал формат упаковки .deb или DEB, а Red Hat Linux создал систему упаковки .rpm или RPM (сокращение от Red Hat Package Manager). Компиляция исходного кода все еще существует, но теперь это необязательно.

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

Как работает менеджер пакетов?

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

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

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

В репозиториях также есть файлы метаданных, которые содержат информацию о пакетах, такую ​​как имя пакета, номер версии, описание пакета и имя репозитория и т. д. Это то, что вы увидите, если используете команду apt show в Ubuntu / Debian.

Менеджер пакетов вашей системы сначала взаимодействует с метаданными. Диспетчер пакетов создает локальный кеш метаданных в вашей системе. Когда вы запускаете параметр обновления диспетчера пакетов (например, apt update), он обновляет этот локальный кеш метаданных, ссылаясь на метаданные из репозитория.

Когда вы запускаете команду установки вашего менеджера пакетов (например, apt install package_name), менеджер пакетов обращается к этому кешу. Если он находит информацию о пакете в кэше, он использует подключение к Интернету для подключения к соответствующему репозиторию и сначала загружает пакет перед установкой в ​​вашу систему.

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

Диспетчер пакетов, обрабатывающий зависимости в Linux

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

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

Различные типы менеджеров пакетов

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

Например, в RPM есть менеджеры пакетов Yum и DNF . Для DEB у вас есть менеджеры пакетов на основе командной строки apt-get, aptitude.

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

Менеджеры пакетов не обязательно основаны на командной строке. У вас есть графические инструменты управления пакетами, такие как Synaptic . Программный центр вашего дистрибутива также является менеджером пакетов, даже если он запускает под ним apt-get или DNF.

Вывод

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

Я пока пропустил новые универсальные форматы упаковки, такие как Snap и Flatpak.

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Особенности

  • Поддерживает добавление архитектур из других дистрибутивов Linux.
  • DPKG выполняет работу только с локальными пакетами.
  • Под архитектуру DEB выпущено более 55000 пакетов.

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


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 доступен в нескольких вариантах интерфейса:

  • Графический интерфейс (GUI) на базе фреймворка GTK. Привычный для пользователя оконный интерфейс с возможностью управления мышью.
  • Текстовый пользовательский интерфейс. Оболочка, открывающаяся в консоли. Интерфейс снабжается минимальным количеством графических элементов и может запускаться через протокол SSH. Управление осуществляется с помощью одиночных или групповых нажатий клавиш клавиатуры. Например, для переключения строк чаще всего используются клавиши со стрелками.
  • Интерфейс командной строки. Подразумевает управление программой с помощью команд. Вариант позволяет полноценно пользоваться функционалом утилиты и подходит для продвинутых пользователей.

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

Synaptic


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

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


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

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

Особенности

  • Обновление программ производится в ускоренном режиме, благодаря замене только отредактированных разработчиком элементов пакета.
  • Для скачивания, обновления пакетов, а также разрешения зависимостей придётся использовать пакетные менеджеры более высокого уровня (YUM, DNF).
  • Начиная с 2010 года, пакеты подписываются с хешем MD5. Это исключает вероятность изменения файла RPM злоумышленником для внедрения вирусного кода.


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.


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

Pacman


Особенности

  • В Pacman совмещены функции работы с репозиториями и установка пакетов в систему, в отличие от систем Debian или Red Hat.
  • В систему устанавливается новейшее ПО, благодаря модели обновлений «плавающий релиз» (rolling-release).
  • В репозиториях Pacman располагаются заранее собранные пакеты, что значительно ускоряет процесс инсталляции программ.
  • Поддержка работы с репозиторием AUR.

Компиляция программы производится только в том случае, если пакет взят из репозитория 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


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

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

Portage


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

Особенности

  • Программы собираются под пользовательскую систему и железо, что обеспечивает стабильную работу ОС.
  • По сравнению с распаковкой программ у других пакетных менеджеров, компиляция в Portage занимает много времени. Например, полный пакет LibreOffice компилируется от 4 часов и более.
  • Пользователь может гибко настроить параметры компиляции и полностью управлять процессом сборки. Например, поставить операцию на паузу и продолжить позже.
  • Для обновления установленного ПО используется система rolling-release, благодаря которой в репозитории дистрибутива поставляются пакеты последней версии, опубликованные разработчиком в течение 1-2 дней.

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

Интерфейсы Portage

Emerge

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

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

Kuroo

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


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

Заключение

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

  • DPKG и RPM больше подойдут пользователям, ожидающим от системы лёгкой настройки и стабильной работы.
  • Pacman оперативно обеспечивает систему новейшим ПО, благодаря системе rolling-release.
  • Portage совмещает преимущества предыдущих пакетных менеджеров, но требует от пользователя внимательности и желания глубоко осваивать систему.

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

Например если прописать в терминале apt-get install chrome, установится google chrome, а откуда ос качает эти файлы? Если она качает их из интернета, то с официального сайта или с какого-то своего? А может ли ос подобным образом, случайно через терминал установить вредоносное ПО? Во общем интересен сам процесс.

P.S. Прошу извинения за тупой вопрос, просто я лох в linuxe xD

DevMan

Тут все отвечавшие упустили каталог /etc/apt/sources.list.d/

Sanes

sim3x

Sanes,
для тех кто понимает, что такое репа

А вот для тех кто не в состоянии загуглить - лучше уточнить

Sanes

sim3x

Sanes,
Лучше пересказать
Но у кого ж столько времени найдется

SagePtr

С серверов, которые прописаны в файле /etc/apt/sources.list (это касается тех систем, где в качестве менеджера пакетов используется apt или производные от него, у других - другой файл с конфигурацией)

Vlatqa

из репозиториев, в дебиан-подобных системах они прописаны в /etc/apt/sources.list

Sanes

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

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

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

Favorite

Добавить в избранное

Главное меню » Linux » Управление пакетами Linux и как применять пакеты

Управление пакетами Linux и как применять пакеты

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

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

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

Читать Онлайн-игры, в которые можно играть с друзьями через Интернет в 2021 году

Как правило, пользователи Linux имеют дело либо с распространением пакетов на основе Debian, либо с распространением на основе Red Hat. Хотя форматы этих двух программ установки пакетов различаются, они являются инструментами распространения Linux, которые упрощают управление пакетами.

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

Поскольку пакеты являются базами метаданных, пакеты на основе Debian содержат только три файла: двоичный файл Debian, файл данных и управляющий файл. Управляющий файл представляет собой ZIP-файл tar, что означает, что остальные данные пакета свернуты и запечатаны в управляющий файл. После установки этого пакета управляющий файл позволяет значительно расширить функции метаданных, которые в противном случае пришлось бы настраивать отдельно. Некоторые поставщики программного обеспечения, такие как Ubuntu, Debian, Mint и другие, предлагают двоичные пакеты Debian, которые вы можете применить к своей системе Linux, чтобы удовлетворить ваши конкретные потребности в упаковке.

Читать Как заменить все после шаблона с помощью команды `sed`

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

Как применять пакеты в Linux?

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

После того, как вы нашли свой пакет в соответствующем репозитории, вы можете использовать команды dpkg (для управления на основе Debian) или команды RPM для установки пакета в вашу систему. Каждый из этих поставщиков оснащен диспетчером архивов, который позволяет MSP визуализировать содержимое командного файла перед применением пакета в системе.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: