- Формат пакетов
- Читайте также
- 4.10.1. Фильтрация пакетов
- 14.12.1. Дефрагментация пакетов
- 1.7.7. Структура пакетов IP и TCP
- 14.3.2. Фрагментация пакетов
- 19.5. Создание RPM-пакетов
- 4.4. Извлечение данных из пакетов
- Передача пакетов
- 17.3.1. Первый способ: из пакетов RPM
- 27.1.2. Структура пакетов IP и TCP
- 1.1.3.8. Выбор пакетов и их установка
- 3.1. Менеджер пакетов yum
- 3.3.3.1. Установка пакетов
- 3.3.3.2. Удаление пакетов
- 16.9. Форматы пакетов RPC
- Конвертеры пакетов
- Популярные пакетные менеджеры Linux
- Теоретические основы
- Категории пакетных менеджеров
- Распространенные форматы пакетов
- Разрешение зависимостей
- Популярные пакетные менеджеры
- Особенности
- Оболочки APT
- Особенности
- Yum Extender
- Pacman
- Особенности
- Оболочки Pacman
- Portage
- Особенности
- Интерфейсы Portage
- Заключение
Формат пакетов
Формат пакетов
Как уже было сказано, в дистрибутиве Mint принят deb-формат пакетов. Будучи разработан ещё в прошлом тысячелетии для дистрибутива Debian, формат этот был унаследован от него Ubuntu, во многом предопределив успех последней. А вслед за ней — и удачливость нашего главного героя. Почему deb-формату и следует уделить некоторое внимание.
Пакет deb-формата — архивный файл (собранный утилитой ar, о которой недавно шла речь), включающий три компонента. Первый — это файлик debian-binary, не содержащий ничего, кроме номера версии deb-формата (в данный момент — 2.0).
Второй файл носит имя data.tar.xz и, как легко догадаться, представляет собой tar-архив, сжатый утилитой xz. Содержимое архива — скомпилированные исполняемые бинарники и необходимые им для работы компоненты (библиотеки, конфиги, документация и так далее). Иными словами, все компоненты, которые при установке пакета будут инкорпорированы в файловую иерархию целевой системы. Например, для пакета cinnamon_2.4.1+rebecca_amd64.deb в этом архиве обнаруживается каталог /usr с подкаталогами /usr/bin, /usr/lib, /usr/share, содержащими исполняемые бинарники, библиотеки и разделяемые компоененты, соответственно.
Третий файл именуется control.tar.gz и представляет собой архив файлов, содержащих всякого рода метаинформацию — описание пакета, его зависимости, классификационную принадлежность, приоритет и так далее (файл control), контрольные суммы всех исполняемых бинаников (файл md5sums), сценарии, выполняемые при установке и удалении пакета (preinst, postinst, prerm и postrm).
Зависимости в терминах deb-пакетов имеют несколько градаций: обязательные (depends), рекомендуемые (recommends), предлагаемые (suggests), конфликтующие (conflicts). Первая градация — это обычные «жёсткие» зависимости, без удовлетворения которых пакет либо не будет работать, либо вообще не установится. С градацией последней тоже понятно — это, так сказать, анти-зависимости: например, Opera текущей, 26-й, версии конфликтует с пакетом opera-12.16.
Ну а зависимости рекомендуемые и предлагаемые — это две разновидности «мягких» зависимостей. Разница между ними в том, что рекомендуемые пакеты обеспечивают «зависимому» пакету дополнительные функции (например, поддержку мыши в консольных приложениях), а пакеты предлагаемые предоставляют дополнительные возможности, вполне вероятно, полезные, но не жизненно необходимые (например, документацию, в том числе на не-английских языках). То есть первая категория как бы более нужная, нежели вторая. Впрочем, таково субъективное мнение майнтайнера конкретного пакета — вполне возможно, что у применителя будет своё мнение по этому поводу. И потому и пакетный менеджер apt, и его графическая «морда» Synaptic, устанавливающие зависимости автоматически, в Mint по умолчанию не делают этого ни для рекомендуемых, ни, тем более, для предлагаемых пакетов, а лишь выводят их список, дабы применитель сам принял решение по данному вопросу.
Кроме того, спецификой deb-пакетов является ещё и существование так называех пред-зависимостей (pre-depends) — при их нарушении установка пакета даже не может начаться, ибо их наличия требует пре-инсталляционный сценарий «зависящего» пакета. Впрочем, с точки зрения пользователя они немногим отличаются от обычных зависимостей типа depends.
Кроме зависимостей, для пакетов deb-формата важно также понятие их приоритета. Оно отражает степень необходимости пакета для функционирования системы, например: обязательный (required), без которого работа системы невозможна, основной (base) и важный (important), также оказывающиеся практически необходимыми, стандартный, то есть имеющийся практически в любой полнофункциональной Linux-системе, дополнительный (optional) — тут уж степень важности каждый должен решать для себя.
Как это принято в мире Open Source, все бинарные пакеты Mint (а также, конечно, Ubuntu и сородичей) сопровождаются исходными текстами, доступными из соответствующего репозитория дистрибутива. И здесь deb-формат проявляет свою специфику: каждый пакет в исходниках обычно включает три файла — packagename.orig.tar.gz, packagename.dsc и packagename.diff.gz.
Первый — самый обычный тарбалл исходных текстов авторского пакета, что подчеркивается словом orig в его имени: формат архива, имя и система нумерации версий также совпадают с таковыми авторского пакета. Файл packagename.dsc содержит в себе всю метаинформацию, необходимую для правильного построения из него бинарного deb-пакета. А packagename.diff.gz — это те изменения исходного кода, которые вносятся для адаптации пакета непосредственно к данному дистрибутиву. Если таких изменений не потребовалось (или если пакет писался именно для Ubuntu или Mint), он может и отсутствовать.
Читайте также
4.10.1. Фильтрация пакетов
4.10.1. Фильтрация пакетов Итак, основной, но не единственной задачей сетевого экрана является фильтрация пакетов. В Linux уже встроен Firewall, и вам его не надо устанавливать отдельно. Точнее сказать, их даже два: iptables и ipchains. Они позволяют контролировать трафик, который проходит
14.12.1. Дефрагментация пакетов
14.12.1. Дефрагментация пакетов С помощью фрагментированных пакетов хакеры производят очень много атак на серверы. В Linux можно сделать так, чтобы ОС объединяла приходящие пакеты. Если у вас монолитное ядро (без поддержки модулей), то необходимо прописать 1 в файл
1.7.7. Структура пакетов IP и TCP
1.7.7. Структура пакетов IP и TCP Вот теперь можно смело перейти к рассмотрению структуры пакетов IP и TCP. Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено в табл. 1.6, представляют собой IP-заголовки и
14.3.2. Фрагментация пакетов
14.3.2. Фрагментация пакетов Иногда передаваемый пакет слишком большой, чтобы его можно было бы передавать за один раз. Если такое происходит, то пакет делится на фрагменты, и эти фрагменты пересылаются. Компьютер, которому этот пакет предназначен, собирает эти фрагменты в
19.5. Создание RPM-пакетов
19.5. Создание RPM-пакетов Программа RPM предназначена для произведения всех видов операций с программным обеспечением, в том числе и для создания пакетов для установки (RPM-пакетов).Прежде, чем описать много сухих фактов, взятых из документации, рассмотрим простой пример
4.4. Извлечение данных из пакетов
4.4. Извлечение данных из пакетов В соревнованиях по многоборью спортсмены сначала преодолевают один из участков вплавь, далее пересаживаются на велосипед и т.д. Протокол IP работает подобным же образом: датаграмма перемещается из одной среды передачи в другую (из одного
Передача пакетов
Передача пакетов Следующий этап – это передача пакетов. Транспортировка цифрового трафика осуществляется через Интернет с помощью технологии TCP/IP. Термин TCP/IP обозначает целый набор технологий и прикладных программ, связанных с передачей данных через Интернет. Сюда
17.3.1. Первый способ: из пакетов RPM
17.3.1. Первый способ: из пакетов RPM Первую часть связки в дистрибутивах Red Hat выше 7.2 и Mandrake выше 8.1 настраивать не нужно: все настраивается во время установки системы. Поэтому вы можете сразу приступить к тестированию связки Apache+PHP (листинг 17.1).Убедитесь, что сервер Apache
27.1.2. Структура пакетов IP и TCP
27.1.2. Структура пакетов IP и TCP Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено в таблице 27.4, представляют собой IP-заголовок и добавляются к пакету при его получении с транспортного
1.1.3.8. Выбор пакетов и их установка
1.1.3.8. Выбор пакетов и их установка Мы подошли к самому интересному — к выбору пакетов. Можете оставить все как есть (по умолчанию выбраны только приложения для офиса), а можете установить переключатель в нижнюю часть окна (рис. 1.19) в положение Настроить сейчас, и у вас
3.1. Менеджер пакетов yum
3.1. Менеджер пакетов yum 3.1.1. Основные понятие о пакетах Давайте сначала рассмотрим процесс установки программ в Windows. Как правило, дистрибутив Windows-программы состоит та установочного файла (обычно называется setup.exe или install.exe) и нескольких вспомогательных файлов (например,
3.3.3.1. Установка пакетов
3.3.3.1. Установка пакетов Для установки пакета (или пакетов — в командной строке можно указать несколько пакетов) используется опция -i:rpm — i пакетЕсли вы хотите наблюдать за процессом установки (это очень полезно, если устанавливается большой пакет или же производится
3.3.3.2. Удаление пакетов
3.3.3.2. Удаление пакетов Для удаления пакета используется опция -е. При удалении не нужно задавать полное имя файла пакета, достаточно названия самой программы. Например, если изначально пакет назывался program-base-0.94-2.i386.rpm, то для его удаления достаточно ввести команду: rpm -e
16.9. Форматы пакетов RPC
16.9. Форматы пакетов RPC На рис. 16.5 приведен формат запроса RPC в пакете TCP.Поскольку TCP передает поток байтов и не предусматривает границ сообщений, приложение должно предусматривать способ разграничения сообщений. Sun RPC определяет запись как запрос или ответ, и каждая запись
Конвертеры пакетов
Конвертеры пакетов Отдельно хотелось бы отметить наличие утилит, позволяющих конвертировать пакеты из одного формата в другой. Их возможности применения ограничены, так как из пакета одного типа получить полноценный другой тип пакета невозможно. Кроме того, приложения,
Источник
Популярные пакетные менеджеры Linux
Содержание:
На заре разработки Linux установить приложение можно было только путем скачивания и компиляции исходников программы. Из-за использования сразу нескольких утилит и ошибок, возникавших в процессе сборки, установка одной программы отнимала много времени.
Чтобы сделать систему дружелюбней к пользователю, были разработаны пакетные менеджеры, которые полностью автоматизировали установку программ. Инсталляция приложений в них производится из пакетов – архивов с файлами скомпилированной программы. Исключение — система Gentoo, где менеджер компилирует программы по подготовленным скриптам.
Большинство популярных дистрибутивов на базе Unix/Linux уже оснащены пакетными менеджерами, способными устанавливать любое программное обеспечение. Будь то внешнее приложение или компоненты ОС. В этом заключается основное различие между пакетным менеджером и инсталлятором. Последний нужен для установки только одной специфической программы, тогда как система управления пакетами — универсальный установщик ПО.
Все пакетные менеджеры Linux имеют свой список репозиториев – серверов с базой пакетов. Во время установки алгоритм менеджера находит необходимый пакет в базе и производит автоматическое скачивание, установку и настройку.
О типах пакетных менеджеров и наиболее популярных вариантах реализации данного ПО расскажем в этой статье.
Теоретические основы
Категории пакетных менеджеров
- Высокоуровневые менеджеры. Применяются для поиска и скачивания пакетов из репозиториев. В процессе работы могут задействовать низкоуровневые менеджеры для инсталляции загруженных программ.
- Низкоуровневые менеджеры. Используются для установки локальных пакетов, загруженных вручную пользователем, или высокоуровневым пакетным менеджером.
Распространенные форматы пакетов
- DEB (.deb). Самый популярный формат пакетов дистрибутива Debian и его ближайших родственников — Ubuntu, MX Linux, Pop!_OS, elementary OS и других.
- RPM (.rpm). Разработан компанией Red Hat и внедрен в дистрибутив RHEL. Также применяется в таких системах как Fedora и CentOS.
- TAR.XZ. Стандартный тип пакетов для дистрибутива ArchLinux и его производных — Manjaro, ARCOLINUX и других.
- Ebuild (.ebuild). Скрипт bash-сценария для компиляции программ в дистрибутивах Gentoo и Calculate 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 — это утилита, выполняющая роль «надстройки» для APT. Разработчики программы добавили полезные функции, оптимизирующие систему поиска пакетов, а также исправили ошибки, касающиеся разрешения зависимостей.
APTITUDE доступен в нескольких вариантах интерфейса:
- Графический интерфейс (GUI) на базе фреймворка GTK. Привычный для пользователя оконный интерфейс с возможностью управления мышью.
- Текстовый пользовательский интерфейс. Оболочка, открывающаяся в консоли. Интерфейс снабжается минимальным количеством графических элементов и может запускаться через протокол SSH. Управление осуществляется с помощью одиночных или групповых нажатий клавиш клавиатуры. Например, для переключения строк чаще всего используются клавиши со стрелками.
- Интерфейс командной строки. Подразумевает управление программой с помощью команд. Вариант позволяет полноценно пользоваться функционалом утилиты и подходит для продвинутых пользователей.
Если в дистрибутиве APTITUDE отсутствует по умолчанию, то выполнить установку можно следующими командами:
Synaptic
Synaptic — графический менеджер пакетов, работающий на основе APT. Программа пригодится новичкам, плохо знакомым с командной строкой. Несмотря на простоту интерфейса, утилита предоставляет весь необходимый функционал пакетного менеджера APT (установка, удаление, обновление и поиск пакетов).
Установить 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 – высокоуровневый пакетный менеджер системы Arch Linux и его родственных дистрибутивов (Manjaro, EndeavourOS и др.). Программа написана на языке C# и совмещает высокую функциональность, легкость и производительность. В качестве пакетов используются архивы pkg.tar.xz.
Особенности
- В 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.
Источник