Репозитории, пакеты, менеджеры пакетов и зависимости в linux

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

Менеджер пакетов PETget (ранее известный как PupGet) выбирается в меню ‘Setup’ (установки) в Puppy, или значок «install» (установка) на рабочем столе. Он очень прост в использовании. В левом окне пакеты доступные для установки представлены в виде списка, в правом уже установленные, вот так это выглядит:

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

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

И как же установить ‘неофициальные’ пакеты? Просто скачайте из интернета и запустите скачанный файл пакета.

Файл менеджер ROX-Filer может работать с файлами формата ‘.pet’ и если вы щёлкните мышкой на иконке пакета запуститься PETget. Некоторые PET-пакеты, как официальные так и нет, могут быть установлены так.

Кроме того, при использовании браузера SeaMonkey вы можете кликнуть на ссылке на какой-либо».pet» файл на любой веб странице и SeaMonkey предложит скачать пакет или же сразу открыть его в PETget. Последнее предложение означает что достаточно совершить одни клик, находясь в интернете, и пакет будет установлен!

Запуск и внешний вид

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

Для запуска Synaptic откройте Главное меню и наберите в поиске synaptic . Также Synaptic можно запустить введя в терминале команду:

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

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

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

Пакеты могут быть сгруппированы по функциональности (текстовые редакторы, документация, почтовые клиенты и т.д.). Для этого используется кнопка «Разделы». После нажатия на нее вы сможете выбирать пакеты из различных секций.

Для получения подробной информации о пакете, кликните по нему правой кнопкой мыши и в появившемся меню выберите Свойства
.

Обновление всех пакетов системе в Kali Linux

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

sudo apt update
sudo apt full-upgrade

Среди удаляемых пакетов могут быть конфликтующие (мешающие установке требуемых зависимостей).

Аналогичный результат можно получить командами (это одна из немногих команд, которая различается для apt и apt-get):

sudo apt update
sudo apt-get dist-upgrade
# или
sudo apt update
sudo aptitude full-upgrade

Для удобства можно объединить команду обновления кэша и команду запуска полного обновления системы в одну, опция -y используется для того, чтобы у нас не спрашивалось подтверждение, а сразу начался процесс установки новых пакетов:

sudo apt update && sudo apt full-upgrade -y

Краткая справка

Термин «пакет» широко используется в Linux для именования приложений и их файлов поддержки. Если вы используете ОС Windows, вы знаете, что можете скачать приложение, дважды кликнуть на нём левой кнопкой мыши и оно установится, или ваш веб-браузер может установить его сразу из интернета. Здесь тоже самое. «Пакеты» отличаются от фактически исполняемых файлов названием и тем, что в Puppy пакеты имеют имена, оканчивающиеся на ‘.pet’ (или ‘.pup’) для того чтобы нагляднее показать, что это пакеты.

Puppy начал жизнь в качестве набора программ на live-CD, и в нём не было опции добавления пакетов. Основной причиной этого было то, что все файлы каталога сохранялись в один файл с именем , он представлял собой изнутри файловую систему squashfs, которая в свою очередь является сжатой версией файловой системы, допускающей только чтение файлов. Таким образом отсутствовал способ записи в . Кроме того, , , , и всё остальное находилось в ram — по сути, они были на live-CD в файле , который загружался в ram при старте — то есть, всё записанное в вышеперечисленные директории, терялось после окончания сеанса.

Исключением являлся тот случай, если Puppy была установлена на жесткий диск, причем в полном варианте, в котором Puppy занимает весь раздел жесткого диска — в отличии от того, что мы называем «frugal» (легкая установка, самый минимум) или «coexist» (одновременное использование нескольких систем) установкой — в этом случае все директории позволяют сохранять изменения, как и в любой нормальной установке Linux.

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

Впрочем, с выходом версии 1.0.1, стал поддерживать запись, благодаря использованию техники под названием unionfs. Вдруг ворота открылись, и вместе с двумя пакетными менеджерами, PupGet и DotPup, на нас обрушился поток новых пакетов. Многие из пакетов DotPup устанавливались в , но это было несущественно — сейчас также пакеты можно устанавливать в .

Затем, в Puppy версии 2.00 мы сделали запись доступной для всего, что начинается на »/». То есть, всё, первым символом чего был »/» сохранялось и, как следствие, мы ничего не теряли при перезагрузке или выключении системы.

Поскольку мы имели два разных пакетных менеджера, имела место некоторая путаница. В действительности, существует четкое различие между ними: PupGet имеет статус ‘официально’, то есть он использовался в процессе создания live-CD, в то время как DotPups именуется ‘не официальным’, то есть он используется энтузиастами для создания пакетов для Puppy.

В Puppy версии 2.14 был сделан важный шаг на пути к объединению двух пакетных менеджеров в один, в последствии названный ‘PET’ формат. Абривеатура ‘PET’ появилась из слов «Puppy’s Extra Treats» или «Puppy’s Enhanced Tarballs» (то есть расширение исходников Puppy). PET вобрал в себя все преимущества своих прародителей и не перенял их недостатков.

Управление ПО

Установка

Щелкните по кнопке Обновить

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

Для установки, нажмите кнопку Применить

Удаление

Правый клик на нужном пакете и выберите в появившемся меню выберите Отметить для удаления
.

Появиться диалоговое окно с изменениями которые будут сделаны, если вы действительно хотите продолжить удаление, то щелкните по клавише «Применить» или нажмите Ctrl + P .

Для удаления, нажмите кнопку «Применить» на главной панели Менеджера пакетов Synaptic.

Если вы отметите пакет маркером «Отметить для полного удаления» то удалится не только выбранный вами пакет, но и все зависимости.

Обновление

Щелкните по кнопке Обновить
или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.

Правий клик на нужном пакете и выберите в появившемся меню Отметить для обновления
.

Применить
на главной панели Менеджера пакетов Synaptic.

Обновление всей системы

Synaptic предоставляет два варианта обновления системы

Умное обновление попытается разрешить конфликты пакетов перед обновлением системы. Действие умного обновления аналогично действию команды apt-get dist-upgrade .

Стандартное обновление

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

По умолчанию ynaptic использует умное обновление. Для того чтобы изменить метод обновления системы откройте Настройки→Параметры→Основные
и выберите требуемый способ в Обновление системы
.

Щелкните по кнопке Обновить
или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.

Нажмите на кнопку Отметить для обновления
или нажмите Ctrl + G для того, чтобы Synaptic отметил для обновления все пакеты.

Для обновления, нажмите кнопку Применить
на главной панели Менеджера пакетов Synaptic.

Deepin

Еще одна разновидность системы Linux, которая визуально напоминает macOS — Deepin. Его создателями являются китайские разработчики, постаравшиеся сделать максимально функциональную систему с интуитивно понятным интерфейсом. Для удобства в нижней части экрана дистрибутива находится док-станция.

Если же пользователь перешел с системы Windows на Linux, то и это не будет проблемой, так-как Deepin имеет еще один вид графической оболочки, схожий с Windows 10.

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

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

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

Поскольку в этой статье основное внимание уделяется 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.

Технические детали PETget

Когда PET пакет установлен, PETget сохранит записку о установке (лог). На рисунке файл packages.txt:

То есть, /root/.директория содержит файлы как показано выше. Каждый установленный пакет будет, как правило, иметь один файл здесь. Например Xbubble пакету соответствует файл xbubble-0.2.4.files. Это используется PETget для удаления пакетов.

Файл packages.txt — это перечень всех установленных пакетов входящих в поставку версии Unleashed, а «livepackages.txt» это перечень пакетов формата отличного от pup_xxx.sfs (то есть не входящих в live-CD) и кандидатов на установку PETget – именно этото файл читается для представления списка доступных пакетов в PETget (правое окно).

Файл alienpackages.txt — это перечень пакетов, которые были установлены, но не входят в состав Unleashed сборки. PETget имеет свойство любые произвольные PET пакеты находящиеся на вашем компьютере и если этот пакет не входит в состав Unleashed, то он получает маркировку «alien» (чужой) или «unofficial» (неофициальный).

Самый простой способ изучить что находится в этих файлах это открыть и посмотреть, но здесь типичное вступление в livepackages.txt:

"xchat-1.8.11" "xchat-1.8.11: IRC chat client" on "GTK1APPS +gtk+ 520K" \

Первое поле – имя пакета, второе – информация которая появляется в панели PETget, третье поле содержит «on», «off» или «unavailable»: «on» означает что пакет установлен, «off» – не установлен. Последнее поле – текст всплывающей подсказки в PETget.

Файлы «.files» всего лишь список установленных файлов. Ниже приведен тест файла «xchat-1.8.11.files»:

/usr/local/bin/xchat
/usr/share/doc/xchat/xchat.html
/usr/share/doc/xchat/xchat.sgml
/usr/share/doc/xchat/xchat-1.html
/usr/share/doc/xchat/xchat-10.html
/usr/share/doc/xchat/xchat-2.html
/usr/share/doc/xchat/xchat-3.html
/usr/share/doc/xchat/xchat-4.html
/usr/share/doc/xchat/xchat-5.html
/usr/share/doc/xchat/xchat-6.html
/usr/share/doc/xchat/xchat-7.html
/usr/share/doc/xchat/xchat-8.html
/usr/share/doc/xchat/xchat-9.html
/usr/local/lib/X11/mini-icons/xchat.xpm
/usr/local/lib/X11/mini-icons/xchat_mini.xpm

Достаточно просто, обычный список файлов.

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

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

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

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. Здесь можно наблюдать увеличение скорости работы, а также уменьшение потребления памяти.

Определения

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

Менеджер пакетов позволяет выполнять различные операции с доступными пакетами:

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

Поиск пакетов только по названию

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

apt list ПАКЕТ

Вы также можете указать подстановочные символы, например для поиска по названию, начинающемуся на слово ПАКЕТ:

apt list ПАКЕТ*

Для поиска по названию, оканчивающемуся на слово ПАКЕТ:

apt list *ПАКЕТ

Для поиска по названию, в котором присутствует слово ПАКЕТ:

apt list *ПАКЕТ*

Ещё более удобной, на мой взгляд, командой для поиска пакетов является:

apt-cache search ПАКЕТ

Последняя команда ищет в именах по слову ПАКЕТ и выводит список всех пакетов, где оно встречается. Использовать подстановочные символы не нужно.

Менеджеры пакетов RedHat Enterprise Linux (RHEL)

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

RedHat и CentOS — одна из наиболее широко используемых серверных операционных систем, найденных сегодня на серверах. Основным программным обеспечением управления пакетами, установленным в этих системах, является RPM, что сокращает работу Red Hat Package Manager. Этот менеджер пакетов также выполняет основные операции, такие как установка и удаление пакетов, и, как и dpkg, также не может управлять пакетами или устанавливать их непосредственно из Интернета.

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

Как и операционные системы на базе Debian, операционные системы RHEL также имеют собственное программное обеспечение для управления пакетами. YUM, сокращение от Yellow Dog Updater, является самым популярным выбором в качестве интерфейса RPM. Он открывает намного больше возможностей для файлов RPM через репозитории, отслеживает, что установлено в системе, упрощает обновление и многое другое. Это эквивалент менеджера пакетов APT на основе RHEL.

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

Есть несколько других инструментов управления пакетами, доступных для систем на основе RPM, таких как up2date, urpmi и ZYpp. Однако они не так широко используются как YUM или DNF.

Обновление

Программное обеспечение в мире Linux (и не только) постоянно обновляется: исправляются ошибки, расширяются возможности. Разработчики каждого дистрибутива по мере выхода новых версий программ готовят новые версии соответствующих пакетов и делают их доступными в своём репозитории (репозитории, отражающие наиболее современное состояние программного обеспечения, доступны через Интернет). Пользователю имеет смысл не отставать от обновлений программного обеспечения, потому что новые версии программ — это и большая надёжность работы системы, и новые возможности.

Менеджеры пакетов позволяют делать комплексные обновления всей системы. В APT эту процедуру можно выполнить одной командой: «». Эта процедура сначала исследует содержимое всех доступных репозиториев и находит там все пакеты более поздних версий, чем соответствующие пакеты, установленные в системе. После этого вычисляется объём обновления: должна быть удалена связаная область зависящих друг от друга устаревших пакетов и заменена соответствующей областью более новых версий. Сложные ситуации могут возникать в том случае, если изменилось распределение ресурсов по пакетам: пакеты были разделены или объединены — здесь может потребоваться ручное вмешательство пользователя. Тот род обновлений системы, который нужно делать регуляно и обязательно — это обновления, связанные с безопасностью (security updates). Когда в программе обнаруживают и исправляют серьёзные ошибки, угрожающие безопасности всей системы, разработчики дистрибутивов обычно заботятся о том, чтобы соответствующие обновления достигли пользователя. Обычно присутствует отдельный репозиторий с обновлениями, существенными для безопасности.

Как узнать, в каком пакете содержится файл

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

С помощью программы apt-file можно искать по именам файлов в пакетах (как установленных, так и нет). Также она может показать все файлы в пакете.

Установка программы:

sudo apt install apt-file

Сразу после установки кэш данных о программах пуст. Чтобы его обновить нужно выполнить команду:

sudo apt-file update

Когда всё готово, то поиск осуществляется так:

apt-file search ИМЯ-ФАЙЛА

К примеру поиск файла ffi.h:

apt-file search ffi.h

У программы apt-file есть альтернативы, подробности смотрите в статье «Как в Linux узнать, в каком пакете содержится файл».

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

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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: