Обновление с Fedora 30 до 31: невозможно включить несколько потоков для модуля «ant»

Обновление с Fedora 30 до 31: невозможно включить несколько потоков для модуля «ant»

Я пытаюсь обновиться с Fedora 30 до 31 и успешно выполнил следующие два шага:

dnf upgrade --refresh
dnf install dnf-plugin-system-upgrade

Однако, когда я делаю следующее:

dnf system-upgrade download --releasever=31

... я понимаю это:

Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
Adobe Systems Incorporated                      35 kB/s | 2.9 kB     00:00    
Fedora Modular 31 - x86_64                      23 kB/s |  25 kB     00:01    
Fedora Modular 31 - x86_64 - Updates            19 kB/s |  16 kB     00:00    
Fedora 31 - x86_64 - Updates                    17 kB/s |  18 kB     00:01    
Fedora 31 - x86_64                              37 kB/s |  25 kB     00:00    
google-chrome                                   18 kB/s | 1.3 kB     00:00    
MariaDB                                        9.7 kB/s | 2.9 kB     00:00    
packages-microsoft-com-prod                     16 kB/s | 3.0 kB     00:00    
PostgreSQL common RPMs for Fedora 31 - x86_64   11 kB/s | 3.0 kB     00:00    
PostgreSQL 12 for Fedora 31 - x86_64           3.3 kB/s | 3.8 kB     00:01    
RPM Fusion for Fedora 31 - Free - Updates       29 kB/s | 9.1 kB     00:00    
RPM Fusion for Fedora 31 - Free                 26 kB/s | 9.9 kB     00:00    
RPM Fusion for Fedora 31 - Nonfree - Updates    11 kB/s | 9.4 kB     00:00    
RPM Fusion for Fedora 31 - Nonfree              21 kB/s |  10 kB     00:00    
skype (stable)                                 6.6 kB/s | 2.9 kB     00:00    
teams                                          4.9 kB/s | 3.0 kB     00:00    
Fedora 31 - x86_64 - VirtualBox                247  B/s | 181  B     00:00    
Visual Studio Code                              19 kB/s | 3.0 kB     00:00    
Yarn Repository                                 25 kB/s | 2.9 kB     00:00    
terminate called after throwing an instance of 'libdnf::ModulePackageContainer::EnableMultipleStreamsException'
  what():  Cannot enable multiple streams for module 'ant'
Aborted (core dumped)

Есть ли способ обойти эту проблему? Любые идеи приветствуются. Я не против, если мне придется отключить/удалить некоторые из моих дополнительных репозиториев пакетов, если это то, что нужно...

решение1

Руководство для чайников по отключению модульных репозиториев

Я не был уверен, что именно этокомментарий от dbdemonимел в виду:

Похоже, мне пришлось отключить репозитории «Fedora Modular».

Итак, небольшой поиск приводит нас к этой статьеКак использовать модульный репозиторий Fedora / RHEL 8.

Вы можете просмотреть список установленных вами модульных репозиториев следующим образом:

dnf module list --enabled

Я получил такой результат:

Docker CE Stable - x86_64                        12 kB/s | 9.8 kB     00:00    
...
Fedora Modular 30 - x86_64
Name    Stream         Profiles    Summary                                      
gimp    2.10 [d][e]    default [d] GIMP                                         
                       , devel     
ripgrep latest [d][e]  default [d] Line oriented search tool using Rust's regex 
                                   library

Fedora Modular 30 - x86_64 - Updates
Name    Stream         Profiles    Summary                                      
fd-find rolling [d][e] default [d] Simple, fast and user-friendly alternative to
                                    find
gimp    2.10 [d][e]    default [d] GIMP                                         
                       , devel     
ripgrep latest [d][e]  default [d] Line oriented search tool using Rust's regex 
                                   library

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

Примечание: биты в конце говорят вам, какие модули вы установили. Однако я почти уверен, что я этого не сделалнамеренноустановите эти модульные репозитории, просто так получилось, что некоторые разработчики включили их. Я просто запустил sudo dnf install ripgrepи он установил модульный репозиторий.

Итак, из этого списка у меня есть, fd-findи ripgrepустановлены gimpкак модули.

Затем я могу отключить их, например, для ripgrep:

sudo dnf module disable ripgrep

Вам просто нужно сделать то же самое для всех перечисленных вами модулей.

После того, как я отключил все три модуля, я смог без проблем запустить обновление Fedora:

sudo dnf system-upgrade download --releasever=31

решение2

В соответствии сhttps://bugzilla.redhat.com/show_bug.cgi?id=1811234, отключение проблемных модулей работает, но вам нужно будет не забыть включить их снова после обновления. Возможно, более простое решение, упомянутое там, это:

sudo dnf module reset '*'

Затем во время установки будет написано что-то вроде:

Enabling module streams:
 gimp                                          2.10                                                     
 maven                                         3.5                                                      
 meson                                         latest                                                   
 ninja                                         latest                                                   
 ripgrep                                       latest                                                   

Я не совсем понимаю, как это работает, но изhttps://docs.fedoraproject.org/en-US/modularity/using-modules-switching-streams/похоже, что модуль может иметь максимум 1 выбранный «поток» и resetснимает этот выбор, позволяя выбрать другой поток?

решение3

Если у вас возникла проблема с каким-либо модулем, например, «ant» или «maven», и удаление модуля не помогло, попробуйте сбросить настройки модуля с помощью команды:

"сброс модуля dnf", пример: сброс модуля dnf maven

У меня это сработало с модулем «maven», та же ошибка: terminate вызвано после создания экземпляра «libdnf::ModulePackageContainer::EnableMultipleStreamsException» what(): Невозможно включить несколько потоков для модуля «maven»

решение4

Вам необходимо выполнить следующие шаги:

1)Как сказал @icc97, выполните dnf module list --enabledкоманду и получите что-то вроде:

Fedora Modular 30 - x86_64 - Updates
Name                           Stream                               Profiles                                    Summary                                                                          
ant                            1.10 [d][e]                          default [d]                                 Java build tool                                                                  
fish                           3 [d][e]                             default [d]                                 Friendly interactive shell                                                       
gimp                           2.10 [d][e]                          default [d], devel                          GIMP                                                                             
maven                          3.5 [d][e]                           default [d]                                 Java project management and project comprehension tool 
  1. Затем выполните sudo dnf module reset gimp ant fish maven(после resetчасти вы вводите только те, которые перечислены в результатах выше).

  2. Запустите dnf system-upgrade download --releasever=31команду и дождитесь отображения списка пакетов для установки, выберите «да(ы)», а затем... продолжите установку в обычном режиме. :)

Надеюсь, поможет.

Связанный контент