Linux: использование rpm/yum/dnf в CentOS (обновление, установка, удаление приложений)

  • Аналог статьи про Ubuntu, Gentoo
  • (Centos, Ubuntu) PackageKit — открытый и свободный набор приложений для обеспечения высокоуровнего интерфейса для различных пакетных менеджеров. Он используется RHEL в качестве графического интерфейса (по факту нескольких интерфейсов/утилит – add/remove software, package updater, settings) управления пакетами.
    • Включаем в себя ряд приложений
      • gpk-application: Добавить/удалить приложение
      • gpk-update-viewer: Обновление системы
      • gpk-prefs: Настройка параметров обновления приложений
      • gpk-repo: Включение/выключение источников приложений
      • gpk-log: Журнал установки, удаления и обновления приложений
      • gpk-install-file: Устанавливает локальный пакет приложения
      • gpk-update-icon: Когда PackageKit установлен, автоматически запускает значок сеанса при входе в систему
      • gpk-backend-status: Показывает техническое состояние поддержки пакетным менеджером
    • Поддерживает работу с:
      • APT
      • yum
      • Conary
      • Pacman
      • Portage
      • Zypper
      • urpmi
  • База пакетов находится по пути /var/lib/rpm , с ней могут работать разные утилиты
    • rpm (redhat package manager) – аналог dpkg (только локальная работа без репо, не устраняет проблемы с зависимостями)
    • yum (yellowdog update manager) – аналог apt-get
    • dnf (dandified yum) – аналог apt, рекомендуется использовать dnf (причем так же как с apt-get yum в актуальных версиях rhel 8 и старше это просто ссылка на dnf), он так же как и apt лучше работает с зависимостями, при этом использует команды на входе и конфигурационные файлы yum в /etc/yum.repos.d/*   Например для rhel по умолчанию redhat.repo , причем в одном файле может быть прописано много репозиториев и часть из них могут быть с аутентификацией по ключам ssl (например, платные redhat).

  • При установке софта weak dependencies – это необязательные для работы пакета зависимости, но чаще всего устанавливаемые/нужные

  • Установка из repo в среднем предпочтительнее установки из файла т.к. (одна из причин) в репо будут обновления как основного софта, так и зависимого, при этом RHEL в целом рекомендует крайне аккуратно относится к апдейтам софта т.к. это может повлиять на стабильность, по умолчанию при установке dnf-automatic автоматически устанавливаются только security updates, а не все апдейты софта
  • Поиск драйверов для ядра (напр. bnx2)
  • CentOS работает с .rpm пакетами (так же как и RHEL, Fedora, Suse, Mandriva).
  • Вот тут есть очень хорошая шапаргалка. Ниже только самое используемое, остальное проще взять оттуда.

 

Базовая/типовая работа

Проверка обновлений по всем репозиториям.

yum check-update

Обновление всех приложений (сразу и обновляем данные из репозиториев о пакетах и ставим эти пакеты) и ядра системы, можно отключать конкретные репозитории или наоборот:

    • -disablerepo=[repo/mask] – отключаем поиск в определенном репозитории для операции (например, list, install, info, update, repolist, etc).
    • -enablerepo=[repot/mask] – можно использовать в связке с предварительным отключением всех репозиториев для любой операции в рамках одного или нескольких включенных репозиториев. Без предварительного отключения толку нет т.к. по умолчанию все репозитории включены.
sudo yum/dnf update
sudo yum/dnf update --disablerepo=epel
sudoyum/dnf update --disablerepo "*" --enablerepo=mariadb

Проверка обновлений в конкретном репозитории mariadb, без установки.

sudo yum/dnf check-update --disablerepo "*" --enablerepo=mariadb

Если в списке обновлений было ядро – без перезагрузки не обойтись (если нужно проверить что код нового ядра запустится корректно прямо сейчас).

(37/37): kernel-3.10.0-957.10.1.el7.x86_64.rpm

uname -a

Приложения из репозиториев ставятся через команду install.

sudo yum/dnf install python36

Обновление конкретного приложения

sudo yum/dnf update certbot

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

sudo yum/dnf list <name>
sudo yum/dnf repo-pkgs epel list <name>

Список установленных приложений с краткой информацией по ним

sudo yum/dnf list installed

Поиск приложения (не только по имени)

yum/dnf search python36

Просмотр информации о приложении

yum/dnf info python36u-pip

Удаление ненужных приложений

sudo yum/dnf autoremove

Удаление конкретного приложения remove только удаляет, erase так же счищает cache копию пакета, которая остается по умолчанию в системе после удаления (на случай необходимости быстрого rollback).

sudo yum/dnf -y remove vsftpd
sudo yum/dnf -y erase vsftpd
Смотрим список доступных модулей (доступных версий модуля). d – default версия для установки.
yum/dnf module list mariadb

Module install после module enable установит ту версию, которая ранее была добавлена в enable, независимо от default (d в выводе module list). Разрешить или запретить конкретный модуль – первая команда включит модуль nodejs версии 12, вторая, соответственно, запрещает использование модуля nodejs версии 14.

dnf module enable nodejs:12
dnf module disable nodejs:14

Смотрим доступный список репозиториев, количество пакетов в каждом и общее количество. Для просмотра детальной информации (обновление репозитория, размер, URL, имя файла в папке /etc/yum-repos.d/) можно использовать опцию -v.
dnf/yum [-v] repolist [packet]

[root@localhost ~]# yum repolist
...
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9,007
extras/7/x86_64 CentOS-7 - Extras 390
updates/7/x86_64 CentOS-7 - Updates 2,507
repolist: 11,904

[root@localhost ~]# yum repolist -v
Loading "fastestmirror" plugin
Loading "langpacks" plugin
Adding en_US.UTF-8 to language list
Adding ru_RU.UTF-8 to language list
Config time: 0.086
Yum version: 3.4.3
Loading mirror speeds from cached hostfile
 * base: centos-mirror.rbc.ru
 * extras: mirror.h1host.ru
 * updates: mirror.h1host.ru
Setting up Package Sacks
pkgsack time: 0.062
Repo-id : base/7/x86_64
Repo-name : CentOS-7 - Base
Repo-revision: 1449700451
Repo-updated : Thu Dec 10 01:35:45 2015
Repo-pkgs : 9,007
Repo-size : 6.5 G
Repo-mirrors : http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock
Repo-baseurl : http://centos-mirror.rbc.ru/pub/centos/7.2.1511/os/x86_64/ (9 more)
Repo-expire : 21,600 second(s) (last: Tue Oct 4 15:20:27 2016)
Repo-filename: /etc/yum.repos.d/CentOS-Base.repo
Repo-id : extras/7/x86_64
Repo-name : CentOS-7 - Extras
Repo-revision: 1474301938
Repo-updated : Mon Sep 19 19:21:08 2016
Repo-pkgs : 390
Repo-size : 1.1 G
Repo-mirrors : http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock
Repo-baseurl : http://mirror.h1host.ru/centos/7.2.1511/extras/x86_64/ (9 more)
Repo-expire : 21,600 second(s) (last: Tue Oct 4 15:20:27 2016)
Repo-filename: /etc/yum.repos.d/CentOS-Base.repo
Repo-id : updates/7/x86_64
Repo-name : CentOS-7 - Updates
Repo-revision: 1475525745
Repo-updated : Mon Oct 3 23:20:22 2016
Repo-pkgs : 2,507
Repo-size : 7.0 G
Repo-mirrors : http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock
Repo-baseurl : http://mirror.h1host.ru/centos/7.2.1511/updates/x86_64/ (9 more)
Repo-expire : 21,600 second(s) (last: Tue Oct 4 15:20:27 2016)
Repo-filename: /etc/yum.repos.d/CentOS-Base.repo
repolist: 11,904
Пример обновления ядра centos
1. Run the uname command and check the version of the running kernel
[root@localhost ~]# uname -r
3.10.0-327.el7.x86_64
2. Run the yum command to install the latest available kernel from the subscription management service using either the update or the install subcommand:
[root@localhost ~]# yum -y update kernel
3. Confirm that the kernel package has been updated. The output indicates that a higher kernel version 3.10.0-123.8.1.el7 has been installed. It also shows the presence of the previous kernel.
[root@localhost ~]# yum list installed kernel
Installed Packages
kernel.x86_64 3.10.0-327.el7 @anaconda
kernel.x86_64 3.10.0-327.36.2.el7 @updates
4. The /boot/grub2/grub.cfg file gets the newest kernel menuentry added to it as well. Reboot the system and you will see the new kernel menu entry shows up in the GRUB boot list. The system will boot with this kernel as the install process has marked it as the default kernel
[root@localhost ~]# cat /boot/grub2/grub.cfg | grep menuentry | grep el7
menuentry 'CentOS Linux (3.10.0-327.36.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-9de934e4-f41b-4169-ab46-d4d8e9e43664' {
menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-9de934e4-f41b-4169-ab46-d4d8e9e43664' {
5. Reboot the system and you will see the new kernel menu entry shows up in the GRUB boot list. The system will boot with this kernel as the install process has marked it as the default kernel. Run the uname command again after the reboot to confirm the loading of the new kernel. You can also view the contents of either of the following files to verify the new kernel.
[user1@localhost ~]$ uname -r
3.10.0-327.36.2.el7.x86_64
YUM/DNf
  • yumdownloader позволяет выкачать как отдельные пакеты, так и все необходимые зависимости без установки
    • yumdownloader mc
    • yumdownloader samba –destdir ~/samba –resolve
  • можно работать с группами пакетов, например обновить или удалить группу:
    • sudo yum group update “Стандартный веб-сервер”
    • sudo yum group remove “Стандартный веб-сервер”

 

YUM GROUP commands
  • yum grouplist Lists installed groups and groups that are available for installation.
    yum groupinfo groupname Displays detailed information about a group.
    yum groupinstall groupname Installs all the packages in a group.
    yum groupupdate groupname Updates all the packages in a group.
    yum groupremove groupname Removes all the packages in a group.
yum group list – смотрим доступные группы пакетов
yum group info |group| – показываем информацию по группе пакетов
yum group remove [packet-group-name] – удаляем группу пакетов
yum [-y] group install |group| – устанавливаем указанную группу пакетов
yum [-y] group update |group| – обновляем все группы или конкретную
[root@localhost ~]# yum -y group install "Smart Card Support"
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirror.logol.ru
 * extras: mirror.logol.ru
 * updates: mirror.logol.ru
Resolving Dependencies
--> Running transaction check
---> Package coolkey.x86_64 0:1.1.0-33.el7 will be installed
--> Processing Dependency: pcsc-lite-libs for package: coolkey-1.1.0-33.el7.x86_64
--> Processing Dependency: pcsc-lite for package: coolkey-1.1.0-33.el7.x86_64
---> Package esc.x86_64 0:1.1.0-36.el7 will be installed
--> Processing Dependency: xulrunner for package: esc-1.1.0-36.el7.x86_64
---> Package pam_pkcs11.x86_64 0:0.6.2-24.el7 will be installed
---> Package pcsc-lite-ccid.x86_64 0:1.4.10-10.el7 will be installed
--> Running transaction check
---> Package pcsc-lite.x86_64 0:1.8.8-6.el7 will be installed
---> Package pcsc-lite-libs.x86_64 0:1.8.8-6.el7 will be installed
---> Package xulrunner.x86_64 0:31.6.0-2.el7.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================================================================
 Package Arch Version Repository Size
===============================================================================================================================================================================================================
Installing for group install "Smart Card Support":
 coolkey x86_64 1.1.0-33.el7 base 113 k
 esc x86_64 1.1.0-36.el7 base 382 k
 pam_pkcs11 x86_64 0.6.2-24.el7 base 211 k
 pcsc-lite-ccid x86_64 1.4.10-10.el7 base 157 k
Installing for dependencies:
 pcsc-lite x86_64 1.8.8-6.el7 base 190 k
 pcsc-lite-libs x86_64 1.8.8-6.el7 base 34 k
 xulrunner x86_64 31.6.0-2.el7.centos base 26 M
Transaction Summary
===============================================================================================================================================================================================================
Install 4 Packages (+3 Dependent packages)
Total download size: 27 M
Installed size: 66 M
Downloading packages:
(1/7): esc-1.1.0-36.el7.x86_64.rpm | 382 kB 00:00:00
(2/7): pam_pkcs11-0.6.2-24.el7.x86_64.rpm | 211 kB 00:00:00
(3/7): pcsc-lite-1.8.8-6.el7.x86_64.rpm | 190 kB 00:00:00
(4/7): pcsc-lite-ccid-1.4.10-10.el7.x86_64.rpm | 157 kB 00:00:00
(5/7): pcsc-lite-libs-1.8.8-6.el7.x86_64.rpm | 34 kB 00:00:00
(6/7): coolkey-1.1.0-33.el7.x86_64.rpm | 113 kB 00:00:01
(7/7): xulrunner-31.6.0-2.el7.centos.x86_64.rpm | 26 MB 00:00:02
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 7.3 MB/s | 27 MB 00:00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pcsc-lite-libs-1.8.8-6.el7.x86_64 1/7
  Installing : pcsc-lite-1.8.8-6.el7.x86_64 2/7
  Installing : pcsc-lite-ccid-1.4.10-10.el7.x86_64 3/7
  Installing : coolkey-1.1.0-33.el7.x86_64 4/7
  Installing : xulrunner-31.6.0-2.el7.centos.x86_64 5/7
  Installing : esc-1.1.0-36.el7.x86_64 6/7
  Installing : pam_pkcs11-0.6.2-24.el7.x86_64 7/7
  Verifying : esc-1.1.0-36.el7.x86_64 1/7
  Verifying : pcsc-lite-ccid-1.4.10-10.el7.x86_64 2/7
  Verifying : coolkey-1.1.0-33.el7.x86_64 3/7
  Verifying : pam_pkcs11-0.6.2-24.el7.x86_64 4/7
  Verifying : xulrunner-31.6.0-2.el7.centos.x86_64 5/7
  Verifying : pcsc-lite-1.8.8-6.el7.x86_64 6/7
  Verifying : pcsc-lite-libs-1.8.8-6.el7.x86_64 7/7
Installed:
  coolkey.x86_64 0:1.1.0-33.el7 esc.x86_64 0:1.1.0-36.el7 pam_pkcs11.x86_64 0:0.6.2-24.el7 pcsc-lite-ccid.x86_64 0:1.4.10-10.el7
Dependency Installed:
  pcsc-lite.x86_64 0:1.8.8-6.el7 pcsc-lite-libs.x86_64 0:1.8.8-6.el7 xulrunner.x86_64 0:31.6.0-2.el7.centos
Complete!


[user1@localhost ~]$ yum group list
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirror.h1host.ru
 * extras: mirror.logol.ru
 * updates: mirror.h1host.ru
Available Environment Groups:
  Minimal Install
  Compute Node
  Infrastructure Server
  File and Print Server
  Basic Web Server
  Virtualization Host
  Server with GUI
  GNOME Desktop
  KDE Plasma Workspaces
  Development and Creative Workstation
Available Groups:
  Compatibility Libraries
  Console Internet Tools
  Development Tools
  Graphical Administration Tools
  Legacy UNIX Compatibility
  Scientific Support
  Security Tools
  Smart Card Support
  System Administration Tools
  System Management
Done



[user1@localhost ~]$ yum group info "Minimal Install"
...
Environment Group: Minimal Install
 Environment-Id: minimal
 Description: Basic functionality.
 Mandatory Groups:
  +core
 Optional Groups:
  +debugging
[user1@localhost ~]$ yum group info "Server with GUI"
...
Environment Group: Server with GUI
 Environment-Id: graphical-server-environment
 Description: Server for operating network infrastructure services, with a GUI.
 Mandatory Groups:
  +base
  +core
  +desktop-debugging
  +dial-up
  +fonts
  +gnome-desktop
  +guest-agents
  +guest-desktop-agents
  +input-methods
  +internet-browser
  +multimedia
  +print-client
  +x11
 Optional Groups:
  +backup-server
  +directory-server
  +dns-server
  +file-server
  +ftp-server
  +ha
  +hardware-monitoring
  +identity-management-server
  +infiniband
  +java-platform
  +kde-desktop
  +large-systems
  +load-balancer
  +mail-server
  +mainframe-access
  +mariadb
  +network-file-system-client
  +performance
  +postgresql
  +print-server
  +remote-desktop-clients
  +remote-system-management
  +resilient-storage
  +virtualization-client
  +virtualization-hypervisor
  +virtualization-tools

 

rpm
    • извлечение файлов пакета
      • rpm2cpio – старый способ (до 4ГБ), извлекает из cpio архив
        • rpm2cpio php-5.1.4-1.esp1.x86_64.rpm | cpio -idmv
          Из RPM-пакета (например с диска установки) можно извлечь конкретные файлы, используя утилиту rpm2cpio. Полезно это может быть в случае если нужно по какой-то причине восстановить файл (попортили конфиг/файл, удалили).
          
          К примеру нам нужно восстановить файл /etc/ntp.conf. Узнаем в каком пакете он находится.
          
          ~$ rpm -qf /etc/ntp.conf
          ntp-4.2.6p5-22.el7.centos.2.x86_64
          
          Извлекаем все файлы из пакета rpm (-i) и создаем директории (-d). Далее находим в распакованном пакете нужный файл (стандартно через ls) и копируем куда нужно.
          
          # rpm2cpio /mnt/Packages/ntp-4.2.6p5-18.el7.x86_64.rpm | cpio –id
          2795 blocks
      • rpm2archive – более новый
    • опции
      • -q – query – просмотреть информации, не установка
        • (-qa) -a (all) – все пакеты, просмотр всех установленных пакетов
        • (-ql) -l (list) – вывести список файлов в пакете
      • -F – freshing vs upgrading package – fresh не устанавливает пакет если в системе не было старой его версии в отличии от upgrade
      • -ivh
        • -i – установка файла
        • -v (verbose) – более подробная информация при установке
        • -h – статус бар
rpm -Fvh foo-2.0-1.el6.x86_64.rpm
RPM's freshen option checks the versions of the packages specified on the command line against the versions of packages that have already been installed on your system. When a newer version of an already-installed package is processed by RPM's freshen option, it is upgraded to the newer version. However, RPM's freshen option does not install a package if no previously-installed package of the same name exists. This differs from RPM's upgrade option, as an upgrade does install packages whether or not an older version of the package was already installed.

Установка приложения из .rpm пакета делается с помощью утилиты rpm, но можно rpm пакет указать и на вход yum/dnf. Можно отключить проверку на зависимостей, в случае с tcpdump работает. Если не использовать этот подход, то можно получить dependency hell (tcpdump -> libpcap -> glibc…).

sudo rpm --force --nodeps -i tcpdump-4.9.2-3.el7.x86_64.rpm

sudo yum install ./tcpdump-4.9.2-3.el7.x86_64.rpm
ПОДПИСКА red hat
  • subscription-manager register -auto-attach – регистрация системы в RedHat Network (RHN) / Red Hat Subscription Management (RHSM)
  • rhnsd – демон обеспечивающий работу RHN
rhnsd - a program for quering the Red Hat Network for updates and information

 

настройка/добавление репозитория

Для установки разных утилит зачастую требуется установка репозиториев – например для python может понадобиться добавление репозитория epel (оффициальный репо fedora).

Включение репозитория на CentOS7 (проверено, работает) – или/или

- vim /etc/yum.repos.d/Rocky-PowerTools.repo enabled=1
- sudo dnf config-manager --set-enabled powertools
- sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Установка репозитория

в самом простом случае просто добавляем репозиторий через установку пакета этого репозитория (yum/dnf install) – такой способ поддерживается epel (extra packages for enterprise linux), очень популярным репозиторием RHEL-based систем

sudo yum/dnf install epel-release

в чуть более сложном первой командой (rpm import) добавляем публичные ключи, которые будут использоваться для проверки подписанных приватным ключем файлов из репо, второй (yum install) добавляем уже сам репо

The following command installs the Red Hat Enterprise Linux 8 EPEL repo package

sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8

sudo yum install http://dl.fedoraproject.org/pub/epel/8/x86_64/e/epel-release-8-2.noarch.rpm

 

ручная настройка

Создаем файл в директории репозиториев /etc/yum.repos.d/mariadb.repo , задаем настройки (enabled позволяет управлять включением/отключением репо, gpgcheck проверяет подпись пакетов)

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1

(Необязательно) После этого, нужно сбросить кэш в yum и пересоздать его заново:

yum clean all
yum makecache

Для удаления репозиториев используется утилита yum-config-manager, которая входит в набор yum-utils. Удалите репозиторий, например remi:

yum -y install yum-utils
yum-config-manager --disable remi

Для полного удаления репозиторий нужно удалить его конфигурационные файлы и обновить кэш yum.

 

Создание своего репозитория
  • createrepo – основная утилита для создания

 

Проблемы

Если ни одно из приложений при обновлении не устанавливается с ошибкой невозможности аллоцировать память – скорей всего память утекла, поможет перезагрузка. Так же имеет смысл в будущем:

    1. разобраться с тем, какое приложение послужило проблемой (напр. sql, apache)
    2. нарастить память RAM или
    3. как минимум создать SWAP файл, чтобы система могла в случае необходимости использовать память на ЖД как RAM
[Errno 5] [Errno 12] Невозможно выделить память

Пример OOM из-за mysql (сервис mysql падает в activating до перезагрузки)
~$ dmesg
[Fri Mar 27 11:16:03 2020] Out of memory: Kill process 20533 (mysqld) score 62 or sacrifice child
[Fri Mar 27 11:16:03 2020] Killed process 20533 (mysqld), UID 27, total-vm:1433124kB, anon-rss:116248kB, file-rss:0kB, shmem-rss:0kB
[Fri Mar 27 11:16:03 2020] httpd invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0 ~$ sudo service mysql status ● mysqld.service - MySQL Community Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: activating (start-post) since Пт 2020-03-27 11:16:06 MSK; 6min ago

Если жалуется на недостаток места в разделе /boot – удаляем старые ядра через утилиту package-cleanup из пакета yum-utils.

Transaction check error:
installing package kernel-3.10.0-957.5.1.el7.x86_64 needs 15MB on the /boot filesystem

Error Summary
-------------
Disk Requirements:
At least 15MB more space needed on the /boot filesystem.
~$ df -h /boot
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 240M 206M 18M 93% /boot

~$ rpm -q kernel
kernel-3.10.0-327.28.2.el7.x86_64
kernel-3.10.0-327.28.3.el7.x86_64
kernel-3.10.0-862.14.4.el7.x86_64
kernel-3.10.0-957.1.3.el7.x86_64

~$ sudo yum install yum-utils
~$ sudo package-cleanup --oldkernels --count=2

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

sudo vi /etc/yum.conf
installonly_limit=2 # меняем с 5 до 1 или 2

Если возникли проблемы с совместимостью пакетов и в целом работе пакетного менеджера yum, то возможно поможет чистка кеша пакетов.

sudo yum/dnf clean all

Если Centos 7 не обновляются репозитории с ошибкой резолва mirrorlist.centos.org – меняем его на vault.centos.org. mirrorlist.centos.org вывели из эксплуатации т. к. CentOS EOL.

-bash-4.2$ sudo yum update
Loaded plugins: elrepo, fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

-bash-4.2$ ping mirrorlist.centos.org
ping: mirrorlist.centos.org: Name or service not known

-bash-4.2$ sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
-bash-4.2$ sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

 

questions

Which of the following commands updates the already installed RPM package rpmname?

A. rpm –update rpmname

B. rpm –U rpmname

C. rpm –q rpmname

D. rpm –force rpmname

E. rpm –u rpmname

Answer: B
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
       This upgrades or installs the package currently installed to a newer version.  This is the same as install, except all other version(s) of the package are removed after the new package is installed.

Which of the following commands lists the dependencies of the RPM package file foo.rpm?

A. rpm –qpR foo.rpm

B. rpm –dep foo

C. rpm –ld foo.rpm

D. rpm –R foo.rpm

E. rpm –pD foo

Answer: A

The command that lists the dependencies of the RPM package file foo.rpm is rpm -qpR foo.rpm. The rpm command is the low-level tool for managing RPM packages on Linux systems.
The -q or --query option is used to query information about installed or uninstalled packages. 
The -p or --package option is used to specify a package file instead of an installed package name. 
The -R or --requires option is used to list the capabilities that the package requires. The capabilities are usually the names of other packages, libraries, or files that the package depends on. The rpm command is part of the 101.1 Determine and configure hardware settings topic of the LPI Linux Essentials certification program .
The other options are either invalid or do not perform the desired task. 
The rpm -dep foo command does not exist, as -dep is not a valid option for rpm. 
The rpm -ld foo.rpm command does not list the dependencies of the package file, but the files in the package. 
The rpm -R foo.rpm command does not list the dependencies of the package file, but the capabilities that the package provides. 
The rpm -pD foo command does not exist, as -pD is not a valid option for rpm.

Which option to the yum command will update the entire system? (Specify ONLY the option name without any additional parameters.)

update/upgrade
The yum command is a tool for managing software packages on Red Hat Enterprise Linux and other RPM-based systems. The yum update option will update the entire system by checking the versions of the installed packages and installing the latest available versions from the repositories. The yum upgrade option will do the same, but it will also remove any obsolete packages that are no longer needed by the system. Both options will prompt the user to confirm before proceeding with the update or upgrade process.

How can the list of files that would be installed by the RPM package file apache-xml.rpm be previewed?

A. rpm –qp apache-xml.rpm

B. rpm –qv apache-xml.rpm

C. rpm –ql apache-xml.rpm

D. rpm –qpl apache-xml.rpm

Answer: D

https://stackoverflow.com/questions/5616668/view-rpm-scripts-with-rpm-scripts-qp
When I run rpm -qlp I get the file contents of the RPM $ rpm -qlp CS0.0.0_10.0.i386.rpm
/home/thy_diff/rt
/home/thy_diff/rt/Cerse-zip
/home/thy_diff/rt/Configure_rht.properties
/home/thy_diff/rt/UFE_Install.sh
/home/thy_diff/M_client
/home/thy_diff/M_client/Crse-CLIENT.zip
/home/thy_diff/M_client/Configure_client.properties
/home/thy_diff/M_client/UF_Install.sh

Leave a Reply