Максимум веб информации Создать акаунт

Менеджер пакетов Linux что это такое и как это работает

26 окт 2024
Операционная система linux
58
0
Менеджер пакетов Linux  что это такое и как это работает

Вы когда-нибудь задумывались о том, как Linux управляет пакетами — загружает, устанавливает и удаляет их? Всё это входит в управление пакетами Linux.

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

Что такое Linux Package Manager?

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

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

Звучит запутанно? Давайте проясним ситуацию, изучив основные концепции менеджера пакетов ниже.

Знакомство с основными концепциями управления пакетами

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

1. Пакеты

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

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

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

Пользователь должен сначала перейти к файлу README, найти все зависимости, загрузить и установить их вручную.

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

Чтобы упростить процесс управления программным обеспечением или сервисами, в Linux была введена система управления пакетами.

2. Зависимости

Операционная система Linux сложна. Она состоит из множества программ, которые зависят друг от друга. Для работы любой программы требуется другая программа или пакет.

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

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

3. Репозитории

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

Преимущества использования системы управления пакетами

Использование системы управления пакетами имеет множество преимуществ. К ним относятся:

Управление пакетами-преимущества

Это позволяет вам легко устанавливать новые пакеты.

С помощью системы управления пакетами вы можете адекватно удалять старые приложения.

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

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

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

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

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

Менеджер пакетов лежит в основе операционной системы Linux. Однако он доступен и в Linux.

Менеджеры пакетов есть везде, в том числе в визуальных редакторах, таких как Atom и Visual Studio Code, у которых есть свои собственные менеджеры пакетов. К другим популярным менеджерам пакетов относятся PIP — менеджер пакетов Python; npm — менеджер пакетов jаvascript; и так далее.

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

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

При первоначальном взаимодействии системный менеджер пакетов создаёт локальный кэш метаданных, который впоследствии используется при выполнении таких действий, как «обновление», — при выполнении таких команд, как apt update.

Как работает package-manager

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

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

Затем он выполнит поиск зависимостей, необходимых для установки пакета. Если у пакета есть зависимости, он установит их автоматически без вмешательства пользователя.

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

Вкратце, мы можем суммировать функции менеджеров пакетов следующим образом:

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

Автоматизируйте объединение пакетов для удобства использования.

Обязательно установите все зависимости, чтобы избежать “ада зависимостей”.

Управление пакетами, включая загрузку, поиск и установку нового или существующего программного обеспечения.

Функции package-manager

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

Linux предлагает доступ ко многим хорошим менеджерам пакетов, включая APT, YUM, DNF, Pacman, Zypeer и Portage. Давайте рассмотрим их ниже.

1. Расширенный инструмент для создания пакетов (APT)

APT — один из самых популярных менеджеров пакетов Linux, который поставляется с Ubuntu и другими дистрибутивами на базе Debian.

Он использует инструмент управления пакетами dkpg и формат файлов пакетов .deb. Он создан на основе dkpg и выступает в качестве интерфейса для менеджера пакетов dkpg. С помощью APT вы можете устанавливать, искать, удалять и управлять пакетами .deb.

Некоторые команды APT включают apt, apt-cache и apt-get.

Давайте посмотрим некоторые из них в действии ниже.

#install package

$ sudo apt install package_name

#remove package

$ sudo apt remove package_name

#completely purge the package

$ sudo apt purge package_name

# Remove leftover dependencies

$ sudo apt autoremove

#upgrade

$ sudo apt upgrade

# upgrade a single package

$ sudo apt upgrade package_name

2. DPKG

DPKG — это система управления пакетами на основе Debian. Менеджер пакетов использует расширение .deb. В отличие от APT, он не может автоматически устанавливать пакеты и их зависимости.

Чтобы установить пакет с помощью dpkg, вам нужно выполнить следующую команду

$ dkpg -i package_name.deb

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

$ dkpg -r package_name

3. YUM

YUM расшифровывается как «Yellow Dog Updater, Modified». YUM имеет формат файла пакета .rpm и доступен в таких дистрибутивах, как Red Hat Enterprise Linux, CentOS и Fedora 21.

Как и APT, YUM является менеджером пакетов высокого уровня, но использует RPM (менеджер пакетов RPM) в качестве основного инструмента управления пакетами. Он предлагает простой в использовании интерфейс.

Чтобы установить пакет в YUM, вам нужно запустить:

$ yum install package_name

Аналогично, вы можете удалить пакет, запустив.

$ yum remove package_name

Чтобы обновить пакет, запустите:

$ yum update package_name

YUM способен разрешать любые зависимости и извлекать любые обновления во время установки.

4. DNF

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

 5. RPM

Менеджер пакетов Red Hat (RPM) используется в операционных системах Linux на базе Red Hat. Например, RPM можно найти в CentOS и Fedora. RPM использует расширение .rpm.

Для установки с использованием RPM вам необходимо запустить:

$ rpm -i package_name_rpm

Чтобы удалить пакет, запустите:

$ rpm -e package_name.rpm

И, чтобы обновить пакет, запустите:

$ rpm -e package_name

6. Pacman

Pacman — это менеджер пакетов для операционных систем Linux на базе Arch, таких как Arch и Manjaro. Он использует формат файлов .tar.xz.

Здесь пакеты хранятся и распространяются в сжатых архивах. Это позволяет уменьшить размер пакетов и, следовательно, упростить их распространение и установку. Pacman использует Arch Build System (ABS) для установки пакетов.

В Pacman вы можете установить его с помощью следующей команды:

$ pacman -S package_name

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

$ pacman -Syu

Затем, чтобы удалить пакет в Pacman, используйте следующую команду:

$ pacman -Rs package_name

7. Zypper

Zypper — это менеджер пакетов для openSUSE. Это инструмент командной строки, который управляет пакетами в дистрибутиве openSUSE Linux.

Он использует формат файла пакета .rpm, аналогичный YUM и DNF. Однако здесь вы будете полагаться на интерфейс Zypper, который использует библиотеку ZYpp libzypp. Это делает Zypper быстрее по сравнению с другими менеджерами пакетов.

8. Portage

Portage — это менеджер пакетов для дистрибутива Gentoo. Формат файлов пакетов в Portage — .tbz2, сжатый архив tar или сценарий оболочки e-build.

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

Пакеты распространяются с помощью e-build — типичного сценария оболочки. Здесь вы также получаете инструмент Emerge CLI, который обрабатывает все сценарии оболочки для установки, обновления или удаления пакетов.

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

Большинство менеджеров пакетов самодостаточны. В большинстве случаев вы привязаны к используемому вами дистрибутиву Linux. Если вы только начинаете, вам, скорее всего, придётся использовать APT.

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

Советы по эффективному управлению программным обеспечением с помощью менеджеров пакетов

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

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

Самое важное преимущество заключается в том, что вам не придётся беспокоиться о «зависимости от ада» — ситуации, когда у программного обеспечения нет доступа к пакетам, необходимым для его работы.

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

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

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

Однако перед обновлением пакетов запустите тестовую среду, чтобы проверить, не нарушают ли что-нибудь новые пакеты. Лучше всего автоматизировать этот процесс.

Создавайте виртуальные среды для дальнейшего улучшения управления пакетами и их зависимостями.

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

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

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

Как использовать менеджер пакетов?

В этом разделе мы рассмотрим примеры использования менеджера пакетов. Для упрощения задачи мы будем использовать Advanced Package Tool (APT). Вы также, скорее всего, будете использовать APT в качестве своего первого менеджера пакетов.

Установка пакетов

Чтобы установить пакет, вам нужно будет использовать следующую команду.

$ sudo apt install package-name

Давайте установим gimp с помощью команды.

$ sudo apt install gimp

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

Если вы не уверены в наличии пакета, вы можете поискать его в онлайн-репозитории.

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

$ sudo apt search “video image”

#output

Sorting... Done

Full Text Search... Done

libgavl-dev/jammy 2.0.0~svn6298-1 amd64

low level audio and video library - development files

libgavl-doc/jammy 2.0.0~svn6298-1 all

low level audio and video library - documentation files

libgavl-ocaml/jammy 0.1.6-1build3 amd64

OCaml interface to the gavl library

libgavl-ocaml-dev/jammy 0.1.6-1build3 amd64

OCaml interface to the gavl library

libgavl2/jammy 2.0.0~svn6298-1 amd64

low level audio and video library - runtime files

The syntax for it as below.

$ sudo apt search “search-term‘

Finding Package Dependencies

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

$ sudo apt depends package-name

Давайте посмотрим, от каких пакетов зависит программное обеспечение gimp.

$ sudo apt depends gimp

#output

gimp

Depends: libgimp2.0 (>= 2.10.30)

Depends: libgimp2.0 (<= 2.10.30-z)

Depends: gimp-data (>= 2.10.30)

Depends: gimp-data (<= 2.10.30-z)

Depends: graphviz

Depends: xdg-utils

Depends: libaa1 (>= 1.4p5)

Depends: libbabl-0.1-0 (>= 1:0.1.78)

Depends: libbz2-1.0

Depends: libc6 (>= 2.34)

Depends: libcairo2 (>= 1.12.2)

Depends: libfontconfig1 (>= 2.12.6)

Depends: libfreetype6 (>= 2.2.1)

Depends: libgcc-s1 (>= 3.3.1)

Depends: libgdk-pixbuf-2.0-0 (>= 2.30.8)

Depends: libgegl-0.4-0 (>= 1:0.4.34)

Depends: libgexiv2-2 (>= 0.10.6)

Depends: libglib2.0-0 (>= 2.56.2)

Depends: libgs9 (>= 9.10~dfsg)

Depends: libgtk2.0-0 (>= 2.24.10)

Depends: libgudev-1.0-0 (>= 167)

Depends: libharfbuzz0b (>= 0.6.0)

Depends: libheif1 (>= 1.8.0)

Depends: libilmbase25 (>= 2.5.7)

Depends: libjpeg8 (>= 8c)

Depends: libjson-glib-1.0-0 (>= 1.5.2)

Depends: liblcms2-2 (>= 2.9)

Depends: liblzma5 (>= 5.1.1alpha+20120614)

Depends: libmng2 (>= 2.0.2)

Depends: libmypaint-1.5-1 (>= 1.5.0)

Depends: libopenexr25 (>= 2.5.7)

Depends: libopenjp2-7 (>= 2.0.0)

Depends: libpango-1.0-0 (>= 1.29.4)

Depends: libpangocairo-1.0-0 (>= 1.29.4)

Depends: libpangoft2-1.0-0 (>= 1.29.4)

Depends: libpng16-16 (>= 1.6.2-1)

Depends: libpoppler-glib8 (>= 0.44.0)

Depends: librsvg2-2 (>= 2.32.0)

Depends: libstdc++6 (>= 5.2)

Depends: libtiff5 (>= 4.0.3)

Depends: libwebp7

Depends: libwebpdemux2

Depends: libwebpmux3

Depends: libwmf0.2-7 (>= 0.2.8.4)

Depends: libx11-6

Depends: libxcursor1 (>> 1.1.2)

Depends: libxext6

Depends: libxfixes3

Depends: libxmu6

Depends: libxpm4

Depends: zlib1g (>= 1:1.1.4)

Breaks: gimp-plugin-registry (<< 7.20140602+nmu1~)

Recommends: ghostscript

|Suggests: gimp-help-en

Suggests: <gimp-help>

gimp-help-ca

gimp-help-de

gimp-help-el

gimp-help-en

gimp-help-es

gimp-help-fr

gimp-help-it

gimp-help-ja

gimp-help-ko

gimp-help-nl

gimp-help-nn

gimp-help-pt

gimp-help-ru

gimp-help-sl

gimp-help-sv

Suggests: gimp-data-extras

Suggests: gvfs-backends

Suggests: libasound2

liboss4-salsa-asound2

Replaces: gimp-plugin-registry (<< 7.20140602+nmu1~)

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

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

$ sudo apt remove package-name

Итак, если вы хотите удалить пакет gimp, вам нужно выполнить следующую команду.

$ sudo apt remove gimp

Однако это не удаляет зависимости или конфигурацию пакета. Чтобы полностью удалить его, вам нужно будет использовать параметр –purge.

$ sudo apt remove package-name --purge
$ sudo apt remove gimp --purge
Обновление системных пакетов

Чтобы обновить системные пакеты, вы можете выполнить следующую команду.

$ sudo apt update && sudo apt upgrade -y

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

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

Подписка на публикацию новости
Поблагодарили: 0
Пока никто не поблагодарил
Комментарии
Минимальная длина комментария — 50 знаков. Комментарии модерируются.

Смотрите также в категории: Операционная система linux

Мы используем файлы cookie
Сайт (WEB-MAXS.RU) использует файлы cookies и сервисы сбора технических данных посетителей (данные об IP-адресе, местоположении и др.) для обеспечения работоспособности и улучшения качества обслуживания. Продолжая использовать наш сайт, вы автоматически соглашаетесь с использованием данных технологий.
Лучшие предложения для Вашего Wordpress сайта!

Может быть интересно!

Лучшие предложения для Вашего Wordpress сайта!

Выбирайте то,
что действительно нужно!