Yum: история и логи установки/удаления пакетов
Вы можете вывести информацию об истории установки пакетов yum (списка транзакций) с помощью команды:
yum history list
Вывод состоит из 5 столбцов, в первом выводится ID транзакции по которому можно посмотреть всю информацию (установленные пакеты, зависимости):
Например:
yum history info 10
Более того, можно отменить данную транзакцию командой:
yum history undo 10
В моем случае удалилось бы 4 пакета:
Так же всю информацию об истории установки/удаления пакетов менеджером yum можно посмотреть в логе :
cat /var/log/yum.log
Jun 15 05:34:39 Installed: perl-Getopt-Long-2.40-3.el7.noarch Jun 15 05:34:41 Installed: 4:perl-5.16.3-295.el7.x86_64 Jun 15 05:34:41 Installed: 2:vim-filesystem-7.4.629-6.el7.x86_64 Jun 15 05:34:43 Installed: 2:vim-common-7.4.629-6.el7.x86_64 Jun 15 05:34:44 Installed: 2:vim-enhanced-7.4.629-6.el7.x86_64 Jun 15 05:34:44 Installed: 1:mc-4.8.7-11.el7.x86_64 Jun 15 05:34:44 Installed: htop-2.2.0-3.el7.x86_64 Jun 15 05:34:44 Installed: tree-1.6.0-10.el7.x86_64 Jun 15 05:35:04 Installed: net-tools-2.0-0.25.20131004git.el7.x86_64 Jun 15 06:46:19 Installed: apr-1.4.8-5.el7.x86_64 Jun 15 06:46:19 Installed: apr-util-1.5.2-6.el7.x86_64 Jun 15 06:46:19 Installed: httpd-tools-2.4.6-93.el7.centos.x86_64 Jun 15 06:46:19 Installed: mailcap-2.1.41-2.el7.noarch Jun 15 06:46:20 Installed: httpd-2.4.6-93.el7.centos.x86_64
Использование yum через прокси
Yum для работы с репозиториями программ использует протокол HTTP/1.1. Если ваш Linux сервер имеет доступ в интернет только через HTTP прокси сервер, вы можете указать имя прокси сервера в конфигурационном файле в секции :
proxy=http://proxyservername:3128
Если прокси-сервер требует авторизацию, добавьте строки:
proxy_proxy_username=user proxy_password=pass
Для проверки работы yum через прокси сервер воспользуйтесь командой:
yum clean all && yum search nginx
Для проверки я указал публичный прокси сервер с Германии и при установке, сработал плагин , нашел зеркала с которых скорость будет выше:
Найти пакет по имени или описанию:
С помощью опции provides вы можете найти пакеты, содержавшие определенный файл, например:
Выполнить обновление всех установленных пакетов можно с помощью команды:
Вы можете обновить только определенный пакет, указав его имя:
Проверить если доступные обновления для системы можно командой:
Получить информацию о доступных обновлениях безопасности:
Бывают случаи, когда после обновления какого-либо пакета или сервиса, возникают проблемы. Например, после обновления php, перестал работать ваш сайт. Вы можете вернуть предыдущую версию пакета, откатив установленный пакет через yum:
Так же хотел обратить ваше внимание, на групповую установку пакетов через grouplist. В репозитории существуют предопределенные группы пакетов с различными наборами программ
Вы можете вывести список имеющихся групп:
Рассмотрим на примере группового листа «Basic Web Server». Получить информацию группе и пакетах в ней:
При проверке мы видим, что будут установлены набор пакеты и сервисы, для веб-сервера.
И еще один полезный групповой лист «System Administration Tools»:
Как видим в данном листе содержатся пакеты, которые будут полезны для мониторинга и отладки.
Установить групповой лист можно командой:
Установленные пакеты будут в отдельном блоке «Installed Groups»:
Использование 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/
В обоих случаях логин и пароль могут быть заданы как в примере выше.
Подключение rpmforge repo в CentOS
Полное название rpmforge репозитория — RepoForge. По информации с сайта wiki.centos.org этот архив больше не поддерживается и не рекомендуется к установке. Но лично я нигде больше не нашел об этом информацию, в том числе и на официальном сайте repoforge.org. Данный репозиторий содержит следующие наборы совместимых RHEL пакетов:
- Servers (eg. monitoring, troubleshooting, management)
- Desktops (eg. office, leisure, multi-media)
- Development (eg. perl, python, ruby libraries)
Установка rpmforge на centos:
- Устанавливаем GPG ключ:# rpm – import http://apt.sw.be/RPM-GPG-KEY.dag.txt
- Идем на страницу загрузки и копируем ссылку rpm пакета под нужную нам архитектуру.
- Устанавливаем скопированный rpm пакет:# yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
В настоящее время приведенная выше ссылка не работает по неизвестным причинам, я надеюсь, что это временные проблемы с сайтом. Пока можно использовать альтернативную:
По последним данным, репозиторий rpmforge закрыт и больше не поддерживается https://github.com/repoforge/rpms/issues/375 https://wiki.centos.org/AdditionalResources/Repositories/RPMForge
Проверяем директорию /etc/yum.repos.d:
Все в порядке rpmforge репозиторий установлен.
Как добавить репозиторий в CentOS вручную
Все файлы репозиториев в системе CentOS или Red Hat хранятся в каталоге /etc/yum.repos.d/, вы можете посмотреть их список с помощью такой команды:
Для каждого репозитория обычно создаётся отдельный файл, но в одном файле могут находиться несколько репозиториев, которые связаны между собой. Синтаксис файла такой:
name=описание_репозиторияmirrorlist=ссылка_на_список зеркалbaseurl=ссылка_на_зеркало с пакетамиenabled=1gpgcheck=1gpgkey=файл_ключа_подписи
А теперь разберём подробнее, что за что отвечает:
- Название репозитория будет выводиться при обновлении списка пакетов через YUM, а также может использоваться для управления настройками репозитория через yum-config-manager, о котором мы поговорим ниже.
- Атрибутиы mirrorlist и baseurl взаимозаменяемы, если используется один из них, то другой не нужен. Например, мы можем сразу указать ссылку на архив пакетов с помощью baseurl или указать URL, по которому можно скачать список таких ссылок. Конечно, второе предпочтительнее.
- Параметр enabled позволяет включить или отключить репозиторий.
- Параметр gpgcheck включает проверку цифровой подписи пакетов, а gpgkey — указывает адрес ключа, с которым надо сверять подпись. Эти параметры не обязательны.
Таким образом, чтобы подключить репозитории CentOS, необходимо просто добавить в эту папку файл настроек репозитория.
Например, вы хотите установить пакеты из репозитория, которые доступны по URL: http://vault.centos.org/centos/7.4.1708/extras/x86_64/Packages/. Тогда конфигурация репозитория будет выглядеть вот так:
Если вы хотите использовать для репозитория проверку подписи по GPG-ключу, то надо передать URL, по которому этот ключ можно получить с помощью параметра gpgkey.
Но обычно вам не придётся этого всего делать. Большинство популярных репозиториев уже позаботились обо всём этом и создали свой rpm-пакет, который устанавливает все нужные им настройки и ключи. Обычно эти пакеты и саму команду для их установки можно найти на официальном сайте репозитория. Установка репозитория CentOS 7 NUX выполняется такой командой:
Утилита yum скачает и установит все необходимые конфигурационные файлы. И при следующем обращении к YUM будет загружен список пакетов этого репозитория.
Дальше вы можете устанавливать из него пакеты. Также можно проверить конфигурацию репозитория:
Как видите, здесь есть два репозитория: nux-desktop и nux-desktop-testing. Первый включён по умолчанию, а второй отключён. Вы можете включить его, поставив в параметре enabled значение 1.
Возможные ошибки
Рассмотрим примеры ошибок, с которыми мы можем столкнуться и способы их решения.
1. Curl error (60): SSL peer certificate or SSH remote key was not OK
Ошибка появляется при попытке выполнить операцию обновления или установки пакетов.
Причина: сертификат подключенного репозитория не проходит проверку. Возможно, он просрочен или выдан не доверенным центром сертификации.
Решение: проблему можно решить на стороне сервера (если мы являемся его администратором), например, получив правильный сертификат у Let’s Encrypt. На стороне клиента можно отключить проверку SSL для репозитория командой:
yum-config-manager —save —setopt=<имя репозитория>.sslverify=0
Или в конфигурационном файле репозитория добавить или изменить строку с sslverify:
sslverify=0
* данная опция задает необходимость проверки SSL для репозитория.
2. Error: GPG validation FAILED
Ошибка появляется при попытке установить пакет.
Причина: система не может загрузить и импортировать gpg-ключ. Это возможно в разных сценариях, например, в настройках репозитория не указан путь до него, но при этом указано, что проверка подписи необходима или ключ не удалось загрузить и импортировать.
Решение: для некоторых пакетов идет отдельная инструкция по настройке репозитория, в частности, установки ключа GPG. Или мы можем отключить проверку gpg командой:
yum-config-manager —save —setopt=<имя репозитория>.gpgcheck=0
Или через конфигурационный файл:
gpgcheck=0
Репозитории в CentOS
Для начала давайте поясним, что такое репозитории и для чего они нужны. Вот что говорит wikipedia на этот счет:
Некоторое время назад Linux приложения выходили в виде исходного кода, который потом компилировали на сервере и получали готовые программы. На сегодняшний день большинство приложений выходят в виде так называемых пакетов. Это уже собранные приложения, которые можно сразу установить и пользоваться.
В нашем случае репозиторий — хранилище пакетов для операционной системы CentOS. Существуют repository от разработчика системы, их называют официальные. Набор rpm пакетов там обычно ограничен и версии не самые свежие. Для установки дополнительного софта используют сторонние репозитории. Их поддерживать могут как другие компании, так и группы энтузиастов.
Управлением пакетами и репозиториями в CentOS занимается утилита yum. Ее конфигурационный файл находится в /etc/yum.conf. Этот файл содержит секцию , в которой указываются глобальные настройки программы. Так же он может содержать одну или несколько секций , в которой хранятся настройки репозиториев. Тем не менее, рекомендуется информацию о репозиториях хранить в каталоге /etc/yum.repos.d/ в специальных файлах .repo.
Минимальное содержание файла .repo следующее:
name=repository_name baseurl=repository_url
name | имя, описывающее репозиторий, может быть любым |
baseurl | ссылка на расположение репозитория, может быть в виде http, ftp или file ссылки |
Другие ползные параметры, которые могут быть указаны в repo файле:
enabled | принимает значение 1 или 0, 1 — репозиторий подключен, 0 — отключен |
async | управляет загрузкой пакетов, auto — использует при возможности параллельную загрузку, on — использует только параллельную загрузку, off — параллельная загрузка отключена |
mirrorlist | вместо ссылки на конкретный адрес репозитория может быть указана ссылка на список адресов, из которых при установке будет выбран наиболее подходящий |
gpgcheck | принимает значение 1 или 0, 1- осуществлять проверку GPG подписи пакета из репозитория, 0 — не проверять |
gpgkey | ссылка на GPG ключ репозитория |
Вот содержание стандартного файла с репозиториями CentOS /etc/yum.repos.d/CentOS-Base.repo:
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Удаление и отключение репозиториев
Если вам больше не нужен тот или иной репозиторий, то вы можете его отключить или полностью удалить. Например, вы можете отключить репозиторий на время выполнения команды:
yum update –disablerepo=remi
Если нужно отключить репозиторий навсегда, то вам придется редактировать файл репозитория. Все файлы репозиториев находятся в папке /etc/yum.repos.d/. Например, чтобы отключить EPEL найдите его файл и замените строчку enabled=1 на enabled=0:
sudo vi /etc/yum.repos.d/epel.repo
Теперь, если вывести список репозиториев CentOS, то вы увидите что один из них отключен:
Чтобы включить обратно, вам достаточно вернуть значение на место. Также вы можете полностью удалить репозиторий. Для этого достаточно удалить его файл с помощью yum:
sudo yum remove epel-release
Важно заметить, что при удалении репозитория пакеты, которые были из него установлены не удалятся, возможно, только будет снижена их версия, до версии из официальных репозиториев
Как подключить стандартные репозитории CentOS 6
Шаг 1. В каталоге /etc/yum.repos.d создадим CentOS-Base.repo с содержимым
- CentOS-Base.repo
-
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # base name=CentOS-6 - Base mirrorlist=http://mirrorlist.centos.org?release=6&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/6/os/$basearch/ gpgcheck=1 enabled=1 gpgkey=file:///etcpkirpm-gpgRPM-GPG-KEY-CentOS-6 #released updates updates name=CentOS-6 - Updates mirrorlist=http://mirrorlist.centos.org?release=6&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/6/updates/$basearch/ gpgcheck=1 gpgkey=file:///etcpkirpm-gpgRPM-GPG-KEY-CentOS-6 #additional packages that may be useful extras name=CentOS-6 - Extras mirrorlist=http://mirrorlist.centos.org?release=6&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/6/extras/$basearch/ gpgcheck=1 gpgkey=file:///etcpkirpm-gpgRPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages centosplus name=CentOS-6 - Plus mirrorlist=http://mirrorlist.centos.org?release=6&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/6/centosplus/$basearch/ gpgcheck=1 enabled= gpgkey=file:///etcpkirpm-gpgRPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users contrib name=CentOS-6 - Contrib mirrorlist=http://mirrorlist.centos.org?release=6&arch=$basearch&repo=contrib #baseurl=http://mirror.centos.org/centos/6/contrib/$basearch/ gpgcheck=1 enabled= gpgkey=file:///etcpkirpm-gpgRPM-GPG-KEY-CentOS-6
Шаг 2. Загрузим в систему GPG-ключ, которым подписаны пакеты врепозитории с сайта CentOS
http://mirror.centos.org/centos/ и скопируем его в каталог /etc/pki/rpm-gpg/
# wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 -P /etc/pki/rpm-gpg/
После этого можно будет устанавливать пакеты из подключённого репозитория.
Автор первичной редакции:Алексей Максимов
Время публикации: 02.03.2017 23:17
Добавление репозитория REMI
Установка репозитория REMI происходит в несколько этапов. Для выполнения команды, у вас должна быть установлена утилита wget.
yum install wget -y
# Скачиваем rpm-пакет, при помощи утилиты wget wget http://remi.mirror.ate.info/enterprise/remi-release-7.rpm 2016-09-22 04:48:28 (5.43 MB/s) - ‘remi-release-7.rpm’ saved [8147/8147] # файл пакета, ‘remi-release-7.rpm’ будет сохранен в ту директорию # в которой вы находитесь в данный момент, если вы root, то /root/remi-release-7.rpm # Устанавливаем репозиторий: rpm -Uvh remi-release-7.rpm
Существуют и другие репозитории, процесс их установки будет таким же. Все нужные ссылки, как правило, указываются на страничке проектов, так же как и инструкции по установке.
To enable or disable repositories in CentOS
This tutorial describes how to enable or disable a single or group of YUM repositories while installing software on CentOS. Sometimes, having them already enabled in your system will help you save a lot of time. This tutorial tests the same process on CentOS 7 server.
Enabling or disabling repositories
First, you need to check the repo list which you can do by making use of the following command.
~]# yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.vinahost.vn . updates/7/x86_64 CentOS-7 - Updates 1,676 repolist: 21,883 We can enable or disable repositories in two ways. Temporarily enable or disable repositories while installing packages using ‘ yum’ command Permanently Enable/Disable repositories using repository configuration file
To disable multiple repository, just include the repository separated by comma
~]# yum --disablerepo=remi-safe,updates update ~]# yum --disablerepo=remi-safe,updates update Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile . Complete!
You can use method to install a package too.
~]# yum --disablerepo=remi-safe,updates install httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile . Installed: httpd.x86_64 0:2.4.6-67.el7.centos Complete!
Similarly, you can both enable and disable a particular repositories at a time with ‘ yum’ command.
~]# yum --disablerepo=* --enablerepo=epel Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * epel: mirror.pregi.net No packages marked for update You can also permanently enable or disable a repository. Usually, the repository configuration files will be saved in the /etc/yum.repos.d/ directory.
Let us see the available repositories using the following command.
~]# ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo remi-php54.repo remi-php72.repo CentOS-CR.repo CentOS-Media.repo epel.repo remi-php70.repo remi.repo CentOS-Debuginfo.repo CentOS-Sources.repo epel-testing.repo remi-php71.repo remi-safe.repo
To do so, edit EPEL repository file:
~]# vi /etc/yum.repos.d/epel.repo Change the value enabled=1 to 0 (zero). epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7& arch=$basearch failovermethod=priority enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Save and close the file. Update the repository lists to take effect the changes.
~]# yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile .
With this, the tutorial comes to an end.
Как вывести список установленных пакетов
Установленные пакеты могут показать команды
yum list installed
или
rpm -qa
Пример, порлучить список установленных пакетов из репозитория IUS:
# yum list installed | grep ius php71u-cli.x86_64 7.1.17-1.ius.el6 @ius php71u-common.x86_64 7.1.17-1.ius.el6 @ius php71u-embedded.x86_64 7.1.17-1.ius.el6 @ius php71u-fpm.x86_64 7.1.17-1.ius.el6 @ius 7.1.17-1.ius.el6 @ius php71u-gd.x86_64 7.1.17-1.ius.el6 @ius php71u-intl.x86_64 7.1.17-1.ius.el6 @ius php71u-json.x86_64 7.1.17-1.ius.el6 @ius php71u-mbstring.x86_64 7.1.17-1.ius.el6 @ius php71u-pdo.x86_64 7.1.17-1.ius.el6 @ius 3.4.3-2.ius.el6 @ius php71u-pgsql.x86_64 7.1.17-1.ius.el6 @ius php71u-xml.x86_64 7.1.17-1.ius.el6 @ius php71u-xmlrpc.x86_64 7.1.17-1.ius.el6 @ius
Резюме
Использование репозитория CentOSPlus считается более опасным, чем при использовании других репозиториев CentOS, так как он рассчитан на обновление пакетов и не предназначен быть полностью включенным.
Вы можете использовать все пакеты из CentOSPlus, но обычно берутся необходимые пакеты и используется строка exclude= и includepkgs= (или exclude= и плагин yum-plugin-priorities (yum-priorities)) чтобы использовать только необходимые пакеты из репозитория CentOSPlus.
Пожалуйста, убедитесь, что вы понимаете все эти конепциии, прежде чем использовать репозиторий CentOSPlus.