Application Streams используются для разделения пользовательских пакетов от пакетов для ядра
Application Streams позволяют работать с различными версиями пакетов
Base пакеты предоставляются через BaseOS репозиторий, AppStream предоставляется как отдельный репозиторий
Application Streams разделены на два формата:
Традиционные RPM
Новые модули
Модули содержат потоки для того, чтобы предоставить возможность использовать несколько версий приложения
Активация модульного потока (module stream) предоставляет доступ к RPM в этом потоке
У модулей также могут быть профили
Профиль - список пакетов, который характерен для конкретного набора решаемых задач
Список пакетов в модуле может содержать пакеты за пределами потока модуля
yum module используется для управления модулями
Управление пакетами через yum
yum search - поиск нужного пакета
yum install - установка нужного пакета
[admin@centos8 ~]$ yum search nmap
Last metadata expiration check: 0:00:09 ago on Sun 01 Mar 2020 01:08:38 PM MSK.
========================== Name Exactly Matched: nmap ==========================
nmap.x86_64 : Network exploration tool and security scanner
========================= Name & Summary Matched: nmap =========================
nmap-ncat.x86_64 : Nmap's Netcat replacement
[admin@centos8 ~]$ sudo yum install nmap
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
nmap x86_64 2:7.70-5.el8 AppStream 5.8 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 5.8 M
Installed size: 24 M
Is this ok [y/N]: y
Downloading Packages:
nmap-7.70-5.el8.x86_64.rpm 3.1 MB/s | 5.8 MB 00:01
--------------------------------------------------------------------------------
Total 2.4 MB/s | 5.8 MB 00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : nmap-2:7.70-5.el8.x86_64 1/1
Running scriptlet: nmap-2:7.70-5.el8.x86_64 1/1
Verifying : nmap-2:7.70-5.el8.x86_64 1/1
Installed:
nmap-2:7.70-5.el8.x86_64
Complete!
yum remove - удаление пакетов
yum update - обновление ПО через репозиторий
yum provides - глубокий поиск по пакетам, включая их содержимое
yum info - информация о пакете
yum list - отображение списка пакетов
yum list all
yum list installed
Управление модулями и потоками
Для управления модулями используется yum module
yum module list - отображает список модулей
[root@centos8 ~]# yum module list
Last metadata expiration check: 0:02:42 ago on Sun 01 Mar 2020 08:25:03 PM MSK.
CentOS-8 - AppStream
Name Stream Profiles Summary
389-ds 1.4 389 Directory Server (base)
ant 1.10 [d] common [d] Java build tool
container-tools rhel8 [d][e] common [d] Common tools and dependencies for container runtimes
python27 2.7 [d] common [d] Python programming language, version 2.7
python36 3.6 [d][e] build, common [d] Python programming language, version 3.6
redis 5 [d] common [d] Redis persistent key-value database
rhn-tools 1.0 [d] common [d] Red Hat Satellite 5 tools for RHEL
ruby 2.5 [d] common [d] An interpreter of object-oriented scripting language
ruby 2.6 common An interpreter of object-oriented scripting language
rust-toolset rhel8 [d] common [d] Rust
satellite-5-client 1.0 [d][e] common [d], gui Red Hat Satellite 5 client packages
scala 2.10 [d] common [d] A hybrid functional/object-oriented language for the JV
M
squid 4 [d] common [d] Squid - Optimising Web Delivery
rhel [d][e] common [d] Virtualization module
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
yum module provides <package_name> - позволяет найти модуль, который содержит необходимый пакет
[root@centos8 ~]# yum module provides python36
Last metadata expiration check: 0:04:04 ago on Sun 01 Mar 2020 08:25:03 PM MSK.
python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64
Module : python36:3.6:8010020191115015851:a920e634:x86_64
Profiles : build common
Repo : AppStream
Summary : Python programming language, version 3.6
python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64
Module : python36:3.6:8010020191115015851:a920e634:x86_64
Profiles : build common
Repo : Stream-AppStream
Summary : Python programming language, version 3.6
yum module info <module_name> - информация о модуле
[root@centos8 ~]# yum module info python36
Last metadata expiration check: 0:04:44 ago on Sun 01 Mar 2020 08:25:03 PM MSK.
Name : python36
Stream : 3.6 [d][e]
Version : 8010020191115015851
Context : a920e634
Architecture : x86_64
Profiles : build, common [d]
Default profiles : common
Repo : Stream-AppStream
Summary : Python programming language, version 3.6
Description : This module gives users access to the internal Python 3.6 in RHEL8, as
: well as provides some additional Python packages the users might need.
: In addition to these you can install any python3-* package available
: in RHEL and use it with Python from this module.
Requires : platform:[el8]
Artifacts : python-PyMySQL-0:0.8.0-10.module_el8.1.0+245+c39af44f.src
: python-distro-0:1.4.0-2.module_el8.1.0+245+c39af44f.src
<...>
: python36-devel-0:3.6.8-2.module_el8.1.0+245+c39af44f.x86_64
: python36-rpm-macros-0:3.6.8-2.module_el8.1.0+245+c39af44f.noarch
: scipy-0:1.0.0-20.module_el8.1.0+245+c39af44f.src
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive
yum module info --profile <module_name> - профили, к которым относится модуль
yum module list <module_name> - отобразить доступные потоки
yum module install php:7.1 или yum install @php:7.1 - установка из необходимого модуля
при последующем вводе другой версии стрима, старый будет деактивирован
yum module install php:7.1/devel - установка конкретного профиля
yum install <package_name> - позволяет yum автоматически активировать модульный поток, в котором содержится данный пакет, перед установкой этого пакета
yum module enable php:7.1 - активация модуля, но без установки чего-либо
Для отката пакета из другого модульного стрима, отсутствующего в профилях, необходимо использовать yum distro-sync
Работа с yum группами
you groups определяют доступ к определенным категориям ПО
yum group list отобразит список наиболее доступных групп
yum groups list hidden - для отображения всех групп
[root@centos8 ~]# yum groups list
Available Environment Groups:
Server with GUI
Server
Minimal Install
Virtualization Host
Custom Operating System
Installed Environment Groups:
Workstation
Available Groups:
Container Management
.NET Core Development
RPM Development Tools
Development Tools
Graphical Administration Tools
Headless Management
Legacy UNIX Compatibility
Network Servers
Scientific Support
Security Tools
Smart Card Support
System Tools
yum groups info <groupname> - установит заданную группу
[root@centos8 ~]# yum groups info Workstation
Last metadata expiration check: 0:00:47 ago on Sun 01 Mar 2020 08:35:01 PM MSK.
Environment Group: Workstation
Description: Workstation is a user-friendly desktop system for laptops and PCs.
Mandatory Groups:
Common NetworkManager submodules
Core
Fonts
GNOME
Guest Desktop Agents
Hardware Support
Internet Browser
Multimedia
Printing Client
Standard
Workstation product core
base-x
Optional Groups:
Backup Client
GNOME Applications
Headless Management
Internet Applications
Office Suite and Productivity
Remote Desktop Clients
Smart Card Support
Обновления yum и история
yum history - отобразит список недавно выполненных команд
[root@centos8 ~]# yum history
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
8 | update --skip-broken --n | 2020-03-01 13:26 | I, U | 13
7 | install nmap | 2020-03-01 13:10 | Install | 1
6 | install -y yum-utils | 2020-02-29 21:36 | Install | 1
5 | install -y nodejs | 2020-02-29 20:59 | Install | 2 <
4 | install dhcp-server.x86_ | 2020-02-28 23:07 | Install | 1 >E
3 | install docker-ce --nobe | 2020-02-17 23:22 | Install | 5
2 | update | 2020-02-17 23:17 | I, U | 178 EE
1 | | 2020-01-07 12:23 | Install | 1403 EE
yum history info - позволяет откатить заданную команду, основанную на ID в истории
yum update - обновит все пакеты в системе
yum update <packagename> - обновит пакет и его зависимости
yumdownloader - скачать пакет с репозитория
RPM запросы
rpm - устаревшая команда для установки пакетов RPM
rpm не учитывает зависимости и не рекомендуется для установки пакетов
Однако rpm используется для выполнения запросов по пакетам
По-умолчанию запросы обрабатываются по базе установленных пакетов, флаг "-p" создаст запрос по файлам пакетов
rpm -qf /any/file - отобразит пакет, с которым был файл создан