Как настроить смартфоны и ПК. Информационный портал

Материал из База знаний проекта Russian Fedora. Вывод информации о всех доступных и установленных пакетах

|

Самые современные 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

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

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

Сегодня хотелось бы кратко описать команды менеджера пакетов yum - официальная сборка FreePBX основана на CentOS, в котором yum установлен по умолчанию. Он пригодится для установки, удаления, обновления пакетов.

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

К примеру, для установки пакета mc нужно ввести команду yum install mc . После ввода команды, система попросит подтверждение. Чтобы подтверждение было одобрено по умолчанию, нужно добавить ключ -y , к примеру yum –y install mc:

# yum install mc Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.corbina.net * epel: mirror.datacenter.by * extras: mirror.corbina.net * updates: mirror.corbina.net Resolving Dependencies --> Running transaction check ---> Package mc.x86_64 1:4.8.7-11.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: mc x86_64 1:4.8.7-11.el7 base 1.7 M Transaction Summary ================================================================================ Install 1 Package Total download size: 1.7 M Installed size: 5.6 M Is this ok : y Downloading packages: mc-4.8.7-11.el7.x86_64.rpm | 1.7 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing: 1:mc-4.8.7-11.el7.x86_64 1/1 Verifying: 1:mc-4.8.7-11.el7.x86_64 1/1 Installed: mc.x86_64 1:4.8.7-11.el7 Complete!

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

Для удаления пакета, соответственно, нужно ввести команду yum remove mc . Точно также можно использовать ключ для подтверждения -y:

# yum remove mc Loaded plugins: fastestmirror Resolving Dependencies --> Running transaction check ---> Package mc.x86_64 1:4.8.7-11.el7 will be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: mc x86_64 1:4.8.7-11.el7 @base 5.6 M Transaction Summary ================================================================================ Remove 1 Package Installed size: 5.6 M Is this ok : y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing: 1:mc-4.8.7-11.el7.x86_64 1/1 Verifying: 1:mc-4.8.7-11.el7.x86_64 1/1 Removed: mc.x86_64 1:4.8.7-11.el7 Complete!

Обновление пакета

Предположим – у вас старая версия mysql и вам необходимо ее обновить – тут используется команда update . Целиком команда будет выглядеть так: yum update mysql .

Поиск пакета

Если хотите проверить наличие установленного конкретного пакета на сервере и доступные для установки – используйте команду list . Целиком команда будет выглядеть так: yum list mysql . Также можно указать точную версию пакета, если вам требуется более скрупулезный поиск.

Вывод информации о пакете

Если хотите вывести информацию о пакете – используйте команду info . Целиком команда будет выглядеть так: yum info mc .

Вывод информации о всех доступных и установленных пакетах

Для этого используется команда list с модификаторами. Для вывода доступных пакетов: yum list | less , а для вывода всех установленных - yum list installed | less

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

Для проверки служит команда check-update , а для обновления - update . Ниже три примера использования команд:

  • yum check-update mysql - проверка обновлений пакета mysql;
  • yum list updates - вывод списка обновлений;
  • yum update mc - обновление Midnight Commander’а;
  • yum –y update - обновление всех установленных пакетов;
Групповые пакеты и операции с ними

В Линуксе некоторые пакеты собраны в так называемые групповые пакеты – к примеру, DNS Name Server , Editors , Java Development и так далее. С помощью yum можно устанавливать групповые пакеты с помощью команды groupinstall - пример далее yum groupinstall ‘Clustering . Коротко опишу остальные команды для манипуляций с групповыми пакетами:

  • yum grouplist - вывод всех доступных к установке групповых пакетов;
  • yum groupupdate ‘Base’ - обновление конкретного группового пакета, в данном случае – Base;
  • yum groupremove ‘Editors’ - удаление группового пакета;
Репозитории в yum

Поиск пакетов происходит в так называемых репозиториях, ниже приведу несколько команд для работы с ними – принцип тот же, что и с пакетами (команды list, к примеру). Вывод всех активных репозиториев производится с помощью команды yum repolist , вывод также и неактивных репозиториев – с помощью команды yum repolist all

Для установки пакета из конкретного репозитория, неважно, активного или неактивного, используется ключ --enablerepo . Как пример – установка phpmyadmin: yum –enablerepo=epel install phpmyadmin

Терминал в yum и история

Если Вы собираетесь проводить очень много операций с пакетами, то можно сразу зайти в оболочку yum с помощью команды yum shell и с помощью уже известных вам команд (только уже без первых трёх букв, соответственно), Вы можете устанавливать\удалять\обновлять\whatever пакеты. Также интересной фичей является возможность посмотреть историю установок в yum – с помощью команды yum history .

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Предназначение Yum

Yum создан для решения следующих задач:

  • Поиск пакетов в репозитариях
  • Установка пакетов из репозиториев
  • Установка пакетов из.rpm файлов, с разрешением зависимостей с помощью репозитариев
  • Обновление системы
  • Удаление не нужных пакетов
  • Фактически, yum представляет собой оболочку для rpm обеспечивающую работу с репозиториями.

Основные операции над пакетами

Поиск в репозиториях

Для поиска в репозиториях с помощью yum используются три команды: list , search и provides .

Самый простой способ поиска - использование команды list . Команда list просматривает названия пакетов и их версии в поисках совпадений. Например, для просмотра пакетов с названием tsclient используйте:

Yum list tsclient

Команда search ищет в названии пакета и его описании указанную строку. Например, для поиска пакетов связанных с PalmPilot введите:

Yum search PalmPilot

Команда provides позволяет производить поиск пакетов содержащих указанный файл. Например, для поиска пакетов содержащих libneon введите:

Yum provides libneon

Все команды поиска поддерживают групповые символы? и * (экранируйте их символом \ для корректной обработки bash). К примеру, при для поиска пакетов начинающихся на tsc введите:

Yum list tsc\*

для поиска пакетов, содержащих файлы в директории /etc/httpd

Yum provides /etc/httpd\*

или для поиска определённых команд/программ, например для поиска mc(midnight commander)

Yum provides \*/mc

в результате получим следующий вывод

1:mc-4.7.4-1.fc14.i686: User-friendly text console file manager and visual shell Репозиторий: base Совпадения с: Имя файла: /usr/share/mc Имя файла: /usr/libexec/mc Имя файла: /etc/mc Имя файла: /usr/bin/mc

Установка пакетов с помощью Yum

Для установки пакетов с помощью yum используется параметр install

Для установки tsclient введите:

Yum install tsclient

Yum автоматически разрешит (если сможет) зависимости, и предложит установить их:

============================================================================= Package Arch Version Repository Size ============================================================================= Installing: tsclient i386 0.132-6 base 247 k Installing for dependencies: rdesktop i386 1.4.0-2 base 107 k Transaction Summary ============================================================================= Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 355 k Is this ok :

Установка пакетов из.rpm файлов

Для установки.rpm пакета с автоматическим разрешением зависимостей раньше использовалась команда localinstall . Теперь можно использовать обычный install . Так команда:

Yum install foo.rpm

автоматически найдет зависимости пакета foo.rpm в репозиториях (если сможет) и предложит их установить.
Может возникнуть проблема в отсутствии или неизвестной GPG подписи у RPM пакета, результатом чего будет отказ в установке и как следствие следующая ошибка

Публичный ключ для foo.rpm не установлен

Для того чтобы обойти это (в случае если Вы доверяете источнику предоставляющему пакет) необходимо выключить проверку GPG ключей, добавив в конце команды параметр --nogpgcheck

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

Обновление системы осуществляется с помощью одной команды - update . Таким образом:

Yum update

обновит всю вашу систему. А команда

Yum update foo

При использовании обоих методов работоспособность сохраняется.

Использование Yum с прокси-сервером

Для того чтобы заставить Yum работать через прокси-сервер необходимо добавить следующий параметр в /etc/yum.conf:

Proxy=http://yourproxy:8080/

где - yourproxy это имя прокси-сервера, а 8080 это порт прокси-сервера. Если сервер требует аутентификации, вы можете указать логин как:

Proxy=http://username:password@yourproxy:8080/

RPM Package Manager позволяет использовать прокси-переменные среды. Это может быть задано в /etc/profile или специфизированно для конкретного пользователя в файле ~/.bash_profile::

Export http_proxy=http://yourproxy:8080/
export ftp_proxy=http://yourproxy:8080/

Для использования wget через прокси-сервер, добавте следующие строки в /etc/wgetrc

Http_proxy = http://yourproxy:8080/
ftp_proxy = http://yourproxy:8080/

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

Использование Yum для установки локального пакета, автоматически проверяя и удовлетворяя зависимости

yum --nogpgcheck localinstall packagename.arch.rpm

Отображение приоритетов для всех установленных репозиториев

Вы можете получить список всех установленных у вас репозиториев - yum repolist all . Однако, он не показывает индекс приоритета. Вот строка необходимая для этого. Если номер не определен, по умолчанию, это самый низкий приоритет (99).

Cat /etc/yum.repos.d/*.repo | sed -n -e "/^\}

Лучшие статьи по теме