- Основы управления пакетами: apt, yum, dnf, pkg
- Системы управления пакетами: краткий обзор
- Обновление списка пакетов
- Обновление установленных пакетов
- Поиск пакетов
- Информация о пакетах
- Установка пакетов из репозиториев
- Установка пакета из локальной файловой системы
- Удаление пакетов
- Получение справки
- Дополнительные ссылки
- Как устанавливать pkg linux
- Начало работы с pkgng
- Важно:
- Примечание:
- Настройка окружения pkgng
- Основные операции pkgng
- Получение информации об установленных пакетах при помощи pkgng
- Установка и удаление пакетов при помощи pkgng
- Обновление установленных пакетов при помощи pkgng
- Аудит безопасности пакетов при помощи pkgng
- Сложные вопросы работы с pkgng
- Автоматическое удаление неиспользуемых зависимостей при помощи pkgng
- Резервное копирование базы данных установленных пакетов pkgng
- Примечание:
- Подсказка:
- Удаление копий устаревших пакетов в системе pkgng
- Изменение метаданных пакетов pkgng
- Примечание:
Основы управления пакетами: 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-подобных системах. Более подробную информацию по этой довольно сложной теме можно найти по следующим ссылкам:
Источник
Как устанавливать pkg linux
pkgng — это усовершенствованный инструмент, пришедший на смену традиционным утилитам управления пакетами FreeBSD. Он обладает множеством функциональных возможностей, ускоряющих и облегчающих работу с бинарными пакетами. Первый релиз pkgng состоялся в августе 2012 года.
pkgng не является заменой для утилит управления портами, таких как ports-mgmt/portmaster или ports-mgmt/portupgrade. В то время, как ports-mgmt/portmaster и ports-mgmt/portupgrade позволяют устанавливать приложения сторонних разработчиков как из бинарных пакетов, так и из Коллекции Портов, утилита pkgng дает возможность устанавливать приложения исключительно из бинарных пакетов.
Начало работы с pkgng
Во FreeBSD 9.1 и более поздние включена программа «самонастройки» («bootstrap») pkgng. Она скачивает и устанавливает основную утилиту pkgng.
Для запуска самонастройки, выполните:
Для более ранних версий FreeBSD утилиту pkgng необходимо установить из Коллекции Портов или из бинарных пакетов.
Для установки pkgng из порта, запустите следующее:
Для установки из бинарного пакета, выполните:
Действующие инсталляции FreeBSD требуют преобразования базы данных установленных пакетов утилиты pkg_install к новому формату. Для выполнения конвертирования, запустите:
Вышеприведенный шаг не требуется для новых инсталляций, в которых не было установлено программ сторонних разработчиков.
Важно:
Этот шаг необратим. После перевода базы данных установленных пакетов к формату pkgng утилитами pkg_install более пользоваться не следует.
Примечание:
В процессе конвертирования базы данных установленных пакетов могут возникать сообщения об ошибках. На данном этапе их можно игнорировать, так как перечень программ сторонних разработчиков, информация о которых не была преобразована, будет перечислен по завершении работы pkg2ng. Над этим перечнем придется поработать вручную.
Чтобы убедиться, что Коллекция Портов FreeBSD регистрирует новые программы при помощи pkgng, а не pkg_install, для версий FreeBSD, предшествующих 10. X, в файл /etc/make.conf необходимо внести следующую запись:
Настройка окружения pkgng
Система управления пакетами pkgng при выполнении большинства операций обращается к пакетному репозиторию. Адрес используемого по умолчанию репозитория указан в /usr/local/etc/pkg.conf или в переменной окружения PACKAGESITE. Последняя переопределяет адрес, указанный в конфигурационном файле.
Дополнительные опции конфигурации pkgng описаны в pkg.conf(5).
Основные операции pkgng
Информацию по работе с pkgng можно найти на странице справочника pkg(8), или в выводе утилиты pkg, запущенной без аргументов.
Каждый аргумент команды pkgng описан на соответствующей странице справочника. Например, чтобы ознакомиться со страницей справочника для pkg install, запустите любую из двух нижеследующих команд:
Получение информации об установленных пакетах при помощи pkgng
Информация об установленных в системе пакетах может быть отображена при помощи команды pkg info. Подобно до pkg_info (1) , в выводе перечисляются версии и описания всех установленных пакетов.
Если необходима информация о конкретном пакете, выполните:
Например, для получения версии pkgng, который установлен в системе, запустите:
Установка и удаление пакетов при помощи pkgng
В общем, бинарные пакеты устанавливаются при помощи:
Команда pkg install обращается к пакетному репозиторию, это упоминалось в Раздел 5.5.2, >. Команда pkg-add(8), напротив, не выполняет обращений к пакетному репозиторию, а также игнорирует переменную PACKAGESITE. Как следствие — зависимости не отслеживаются, и необходимые зависимые компоненты не скачиваются с удаленного источника. В этом разделе описана работа с pkg install. За подробностями работы с pkg add обратитесь к справочной странице по pkg-add(8). Утилита pkg install может устанавливать дополнительные бинарные пакеты. Например, для установки curl, выполните:
Новый пакет, как и любые дополнительные пакеты, которые были установлены как зависимости, перечисляются в списке установленных пакетов:
Пакеты, в которых более нет необходимости, могут быть удалены при помощи pkg delete. Например, если выяснится, что curl не нужен:
Обновление установленных пакетов при помощи pkgng
Пакеты, версии которых устарели, можно найти при помощи команды pkg version. Версии установленных пакетов сравниваются с версиями приложений из локального дерева портов, а в случае отсутствия портов pkg-version(8) обращается к удаленному репозиторию пакетов.
При помощи pkgng можно обновлять пакеты до новых версий. Предположим, вышла новая версия curl. Установленный пакет можно обновить к новой версии, выполнив:
Аудит безопасности пакетов при помощи pkgng
Изредка в приложениях из Коллекции Портов обнаруживаются уязвимости. В pkgng встроена возможность выполнять аудит безопасности, действующая подобно приложению из ports-mgmt/portaudit. Для выполнения аудита установленных в систему программ, выполните:
Сложные вопросы работы с pkgng
Автоматическое удаление неиспользуемых зависимостей при помощи pkgng
После удаления пакета в системе могут остаться неиспользуемые зависимости, наподобие security/ca_root_nss из примера выше. Такие пакеты остаются установленными, несмотря на то, что они более не требуются другим пакетам. Определить и удалить неиспользуемые пакеты, которые были установлены как зависимости, можно при помощи:
Резервное копирование базы данных установленных пакетов pkgng
В отличие от традиционной системы управления пакетами, pkgng располагает своим собственным механизмом резервного копирования базы данных. Для ручного создания резервной копии базы данных установленных пакетов, выполните:
Примечание:
Замените имя файла pkgng.db на более подходящее.
В дополнение, pkgng содержит скрипт periodic (8) , позволяющий выполнять ежедневное автоматическое копирование базы данных установленных пакетов. Для активации данной возможности задайте переменной daily_backup_pkgng_enable значение YES в файле periodic.conf (5) .
Подсказка:
Для предотвращения периодического запуска аналогичного скрипта системы pkg_install, также выполняющего резервное копирование базы данных установленных пакетов, задайте переменной daily_backup_pkgdb_enable значение NO в файле periodic.conf (5) .
Для восстановления содержимого базы данных установленных пакетов из резервной копии, выполните:
Удаление копий устаревших пакетов в системе pkgng
По умолчанию, pkgng сохраняет копии установленных бинарных пакетов в каталог, указанный переменной PKG_CACHEDIR в pkg.conf(5). При обновлении пакетов командой pkg upgrade старые версии обновленных пакетов автоматически не удаляются.
Для удаления устаревших версий бинарных пакетов из кеш-каталога, выполните:
Изменение метаданных пакетов pkgng
Со временем программы из Коллекции Портов могут претерпевать изменения старшего (major) номера версии. В отличие от pkg_install, pkgng располагает встроенной командой для обновления информации о происхождении (origin) пакета. Например, изначально порт lang/php5 был версии 5.3. Позже этот порт был переименован в lang/php53, а под именем lang/php5 был создан порт версии 5.4. Утилитам системы pkg_install для обновления информации о происхождении (origin) пакета в собственной базе данных установленных пакетов потребовалась бы помощь дополнительного программного обеспечения, такого как ports-mgmt/portmaster.
В отличие от ports-mgmt/portmaster и ports-mgmt/portupgrade для портов, порядок перечисления новой и старой версий отличаются. Для pkgng необходим следующий порядок:
Например, в вышеприведенном случае для замены информации о происхождении пакета, выполните:
Еще один пример: для изменения информации о происхождении пакета с lang/ruby18 на lang/ruby19, выполните:
И последний пример: для замены информации о происхождении пакета разделяемой библиотеки libglut с graphics/libglut на graphics/freeglut, запустите:
Примечание:
Выполняя замену информации о происхождении пакетов, в большинстве случаев также требуется переустановить пакеты, которые зависят от изменившегося пакета. Для принудительной переустановки зависящих пакетов, выполните:
Источник