Fedora 30から31へのアップグレード:モジュール「ant」に対して複数のストリームを有効にできません

Fedora 30から31へのアップグレード:モジュール「ant」に対して複数のストリームを有効にできません

Fedora 30から31にアップグレードしようとしましたが、次の2つの手順が正常に完了しました。

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

リストされているモジュールに対して同じことを行うだけです。

3つのモジュールを無効にした後は、問題なく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'モジュールで動作しました。同じエラー: 'libdnf::ModulePackageContainer::EnableMultipleStreamsException'() のインスタンスをスローした後、シャットダウン: '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 mavenresetこの部分の後は、上記の結果にリストされている内容のみを入力します)。

  2. コマンドを実行しdnf system-upgrade download --releasever=31、インストールするパッケージのリストが表示されるのを待ってから、「y(es)」を選択して...正常にインストールします。 :)

お役に立てば幸いです。

関連情報