Как использовать Fedora / RHEL 8 Модульный репозиторий

Fedora 29,28 / RHEL 8 поставляется с функцией модульного репозитория, которая позволяет устанавливать дополнительные версии программного обеспечения в независимых жизненных циклах через поток приложений, также называемый AppStream. Это позволяет вам поддерживать свою операционную систему в актуальном состоянии, имея правильную версию приложения, подходящую для вашего варианта использования.

Подкоманда dnf moduleиспользуется для управления модульным репозиторием в системе Fedora, которая поддерживает эту функцию. Ниже приведены примеры использования модульного репозитория Fedora.

Список доступных модулей

Чтобы вывести список всех потоков модулей, их профили и состояния (включено, отключено, по умолчанию), выполните команды:

# dnf module list

Вы получите вывод, похожий на приведенный ниже:

Fedora Modular 29 - x86_64
Name               Stream           Profiles                                          Summary                                                         
ant                1.10             default [d]                                       Java build tool                                                 
avocado            latest           minimal, default                                  Framework with tools and libraries for Automated Testing        
avocado            stable           minimal, default                                  Framework with tools and libraries for Automated Testing        
container-tools    2017.0           default                                           Common tools and dependencies for container runtimes            
container-tools    2018.0           default                                           Common tools and dependencies for container runtimes            
cri-o              1.11             default                                           Kubernetes Container Runtime Interface for OCI-based containers 
cri-o              2017.0           default                                           Kubernetes Container Runtime Interface for OCI-based containers 
cri-o              2018.0           default                                           Kubernetes Container Runtime Interface for OCI-based containers 
django             1.6              python2_development, default [d]                  A high-level Python Web framework                               
docker             2017.0           default                                           Module for docker runtime and docker-distribution               
dwm                6.0              user, default [d]                                 Dynamic window manager for X                                    
dwm                6.1 [d]          user, default [d]                                 Dynamic window manager for X                                    
dwm                latest           user, default [d]                                 Dynamic window manager for X                                    
eog                master           default                                           Eye of GNOME Application Module                                 
flatpak-runtime    f29              sdk-base, buildroot, sdk, runtime, runtime-base   Flatpak Runtime                                                 
gcsf               master           default                                           FUSE file system based on Google Drive                          
gimp               2.10             devel, default                                    GIMP                                                            
golang             1.10             default                                           The Go Programming Language                                     
golang-ecosystem   2017.0           default                                           The ecosystem of packages for the Go programming language       
golang-ecosystem   2018.0           default                                           The ecosystem of packages for the Go programming language       
hub                pre-release      default                                           A command-line wrapper for git with github shortcuts            
kubernetes         1.10             default                                           Container cluster management                                    
kubernetes         openshift-3.10   default                                           OpenShift Container Management                                  
libgit2            0.26                                                               Library implementation of Git                                   
libgit2            0.27                                                               Library implementation of Git                                   
lizardfs           devel                                                              Distributed, fault tolerant file system                         
mariadb            10.1             client, server, default                           MariaDB Module                                                  
maven              3.5              default [d]                                       Java project management and project comprehension tool          
meson              master           default                                           The Meson Build system                                          
mongodb            3.4              client, server, default                           MongoDB Module                                                  
mongodb            3.6              client, server, default                           MongoDB Module                                                  
mysql              5.7              client, server, default                           MySQL Module                                                    
ninja              master           default                                           Small build system with a focus on speed                        
nodejs             10               development, minimal, default                     Javascript runtime                                              
nodejs             8                development, minimal, default [d]                 Javascript runtime                                              
perl               5.24             minimal, default                                  Practical Extraction and Report Language                        
perl               5.26             minimal, default                                  Practical Extraction and Report Language                        
perl-bootstrap     5.24                                                               Perl bootstrap module for bootrapping Perl module               
perl-bootstrap     5.26                                                               Perl bootstrap module for bootrapping Perl module               
pki                10.6             default                                           Dogtag PKI                                                      
postgresql         9.6              client, server, default                           PostgreSQL module                                               
reviewboard        2.5              server, default [d]                               A web-based code review tool                                    
reviewboard        3.0              server, default [d]                               A web-based code review tool                                    
ripgrep            master           default                                           Line oriented search tool using Rust's regex library            
scala              2.10             default                                           A hybrid functional/object-oriented language for the JVM        
stratis            1 [d]            default [d]                                       Stratis Storage                                                 
stratis            master           default                                           Stratis Storage                                                 
testmodule         master           default                                           A test module in all its beautiful beauty          
........

Чтобы отобразить информацию о конкретном модуле, укажите имя в качестве аргумента предыдущей команды:

# dnf module list kubernetes
Last metadata expiration check: 0:33:58 ago on Sat 03 Nov 2018 02:02:06 PM UTC.
Fedora Modular 29 - x86_64
Name                             Stream                              Profiles                      Summary                                            
kubernetes                       1.10                                default                       Container cluster management                       
kubernetes                       openshift-3.10                      default                       OpenShift Container Management                     

Fedora Modular 29 - x86_64 - Updates
Name                             Stream                              Profiles                      Summary                                            
kubernetes                       1.10                                default                       Container cluster management                       
kubernetes                       openshift-3.10                      default                       OpenShift Container Management                     

Hint: [d]efault [e]nabled, [x]disabled, [i]nstalled

Установить профили модулей

Синтаксис для установки модуля:

# dnf [options] module install <module_spec>...

Сначала получите модуль потока, например:

# dnf module list mongodb
Last metadata expiration check: 0:39:49 ago on Sat 03 Nov 2018 02:02:06 PM UTC.
Fedora Modular 29 - x86_64
Name                             Stream                         Profiles                                        Summary                               
mongodb                          3.4                            client, server, default                         MongoDB Module                        
mongodb                          3.6                            client, server, default                         MongoDB Module                        

Fedora Modular 29 - x86_64 - Updates
Name                             Stream                         Profiles                                        Summary                               
mongodb                          3.4                            client, server, default                         MongoDB Module                        
mongodb                          3.6                            client, server, default                         MongoDB Module

Вы можете видеть, что модуль mongodbимеет два потока: один для MongoDB 3.4, а другой для 3.6. Чтобы установить MongoDB, 3.6 запустите:

# dnf module install mongodb:3.6/default 
Last metadata expiration check: 0:42:02 ago on Sat 03 Nov 2018 02:02:06 PM UTC.
Dependencies resolved.
======================================================================================================================================================
 Package                                Arch                    Version                                         Repository                       Size
======================================================================================================================================================
Installing group/module packages:
 mongodb                                x86_64                  3.6.4-2.module_1831+e8c1cdcd                    fedora-modular                   26 M
 mongodb-server                         x86_64                  3.6.4-2.module_1831+e8c1cdcd                    fedora-modular                   22 M
Installing dependencies:
 boost-filesystem                       x86_64                  1.66.0-14.fc29                                  fedora                           52 k
 boost-iostreams                        x86_64                  1.66.0-14.fc29                                  fedora                           43 k
 boost-program-options                  x86_64                  1.66.0-14.fc29                                  fedora                          145 k
 boost-system                           x86_64                  1.66.0-14.fc29                                  fedora                           22 k
 gperftools-libs                        x86_64                  2.7-3.fc29                                      fedora                          304 k
 libstemmer                             x86_64                  0-11.585svn.fc29                                fedora                           72 k
 libunwind                              x86_64                  1.2.1-6.fc29                                    fedora                           61 k
 pcre-cpp                               x86_64                  8.42-4.fc29                                     fedora                           27 k
 snappy                                 x86_64                  1.1.7-6.fc29                                    fedora                           33 k
 yaml-cpp                               x86_64                  0.6.1-4.fc29                                    fedora                          163 k
Installing module profiles:
 mongodb/default                                                                                                                                     
Enabling module streams:
 mongodb                                                        3.6                                                                                  

Transaction Summary
======================================================================================================================================================
Install  12 Packages

Total download size: 48 M
Installed size: 146 M
Is this ok [y/N]: y

Подтвердите установку, набрав  y . После установки вы можете подтвердить версию пакета командой rpm.

# rpm -qi mongodb-server
Name        : mongodb-server
Version     : 3.6.4
Release     : 2.module_1831+e8c1cdcd
Architecture: x86_64
Install Date: Sat 03 Nov 2018 02:46:49 PM UTC
Group       : Applications/Databases
Size        : 69489417
License     : AGPLv3 and zlib and ASL 2.0
Signature   : RSA/SHA256, Fri 01 Jun 2018 03:01:17 PM UTC, Key ID a20aa56b429476b4
Source RPM  : mongodb-3.6.4-2.module_1831+e8c1cdcd.src.rpm
Build Date  : Fri 01 Jun 2018 10:41:49 AM UTC
Build Host  : buildvm-21.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.mongodb.org
Bug URL     : https://bugz.fedoraproject.org/mongodb
Summary     : MongoDB server, sharding server and support scripts
Description :
This package provides the mongo server software, mongo sharding server
software, default configuration files, and init scripts.

Чтобы перейти на MongoDB 3.4, вы установите  модуль 3.4 

#  dnf module install mongodb:3.4/default 
Last metadata expiration check: 0:52:06 ago on Sat 03 Nov 2018 02:02:06 PM UTC.
Dependencies resolved.
======================================================================================================================================================
 Package                           Arch                      Version                                          Repository                         Size
======================================================================================================================================================
Installing dependencies:
 boost-chrono                      x86_64                    1.66.0-14.fc29                                   fedora                             27 k
 boost-regex                       x86_64                    1.66.0-14.fc29                                   fedora                            286 k
 boost-thread                      x86_64                    1.66.0-14.fc29                                   fedora                             62 k
Downgrading:
 mongodb                           x86_64                    3.4.11-3.module_1829+95924ba0                    fedora-modular                     23 M
 mongodb-server                    x86_64                    3.4.11-3.module_1829+95924ba0                    fedora-modular                     20 M
Switching module streams:
 mongodb                                                     3.6 -> 3.4                                                                              

Transaction Summary
======================================================================================================================================================
Install    3 Packages
Downgrade  2 Packages

Total download size: 43 M
Is this ok [y/N]: y

Вы должны увидеть указатель, 3.6 -> 3.4указывающий, что это понижение рейтинга.

Включить поток модуля

Если у вас есть другая версия, которая была установлена ​​через другие внешние репозитории, сначала удалите ее, затем включите модуль

sudo dnf remove mongodb-server
sudo dnf module enable mongodb:3.6

Это активирует поток модулей и сделает RPM потоков доступными в наборе пакетов. Модульные зависимости разрешаются и проверяются во время включения, но не включаются автоматически. Команда enable также может использоваться для переключения потоков модулей.

Включить поток модуля

Чтобы отключить модуль и сделать все связанные потоки модулей недоступными, используйте:

$ dnf module disable <module-name>

Список включенных потоков модулей

Чтобы вывести список потоков модулей, которые включены, выполните

# dnf module list --enabled 
Last metadata expiration check: 1:05:33 ago on Sat 03 Nov 2018 02:02:06 PM UTC.
Fedora Modular 29 - x86_64
Name                           Stream                         Profiles                                           Summary                              
mongodb                        3.6 [e]                        client, server, default [i]                        MongoDB Module                       

Fedora Modular 29 - x86_64 - Updates
Name                           Stream                         Profiles                                           Summary                              
mongodb                        3.6 [e]                        client, server, default [i]                        MongoDB Module                       

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Получить модуль потока подробной информации

Синтаксис для распечатки подробной информации о данном модульном потоке:

# dnf module info <module_spec>

Пример:

# dnf  module info mongodb:3.6

Сбросить состояние модуля

Вы также можете сбросить состояние модуля, чтобы он больше не был включен или отключен.

# dnf module reset <module_spec>

Пример:

# dnf module reset mongodb:3.6
Last metadata expiration check: 1:11:26 ago on Sat 03 Nov 2018 02:02:06 PM UTC.
Dependencies resolved.
======================================================================================================================================================
 Package                             Arch                               Version                             Repository                           Size
======================================================================================================================================================
Removing module profiles:
 mongodb/default                                                                                                                                     
Resetting module streams:
 mongodb                                                                3.6                                                                          

Transaction Summary
======================================================================================================================================================

Is this ok [y/N]: y
Complete!

Один комментарий

Комментарии закрыты.