エマージはパッケージ名が見つからないため、インストールを防ぐことはできません。

エマージはパッケージ名が見つからないため、インストールを防ぐことはできません。

dev-python/setuptools-53.0.0Gentooemergeは、インストールの失敗を防ぐためにパッケージ名を見つけることができません。

emerge: error: Invalid Atom(s) in --exclude parameter: 'dev-python/setuptools-53.0.0' (only package names and slot atoms (with wildcards) allowed)

どこがエラーなのか、正しい方法を指摘してください。

ベストアンサー1

質問に含まれるエラーメッセージは次のとおりです。

パッケージ名とスロットAtomのみを許可(ワイルドカードを使用)

提供された内容はdev-python/setuptools-53.0.0Gentooの誤ったパッケージ仕様(atom)です。に書き込むことができる最も近い範囲/等価原子です=dev-python/setuptools-53.0.0

ただし、エラーメッセージによると、このパラメータには正確なバージョン設定は許可されていません--excludesetuptoolsこの単一の呼び出しにどのバージョンも含まれないようにするには、emergeそのバージョンを指定できます--exclude dev-python/setuptoolsdev-python/setuptools「グルーブ」ではないので、これより正確ではありません。

特定のパッケージバージョンのインストールを防ぐ

そのインストールを明示的に無効にする必要がある場合は=dev-python/setuptools-53.0.0使用できますpackage.mask。システムによっては、次のいずれかの場所でこのファイルを見つけて編集(または作成)できます。

  • /etc/portage/package.mask/package.mask(ここに名前の付いたフォルダがあり、/etc/portage/package.maskそのフォルダ内のすべてのファイルはPortageによってマスクアイテムとしてロードされます。私は通常package.maskそのフォルダに名前を付けたファイルを生成しますが、それはあなた次第です。)
  • /etc/portage/package.mask(ここにはフォルダがなく、ファイルが1つしかありません。)

このファイルを編集して、ブロックするパッケージのバージョンを表示できます。これにより、Portageはそのパッケージを考慮対象から除外します。ただし、これにより特定のパッケージがインストールされないことがあります。

この方法を使用してパッケージをブロックする場合は、そのパッケージをブロックファイルに配置した理由を説明するコメントをブロックの前に追加する必要があります。ブロックによってコールが失敗した場合は、パッケージがブロックされたemerge理由を知らせ、その時点でブロックを解除するかどうかを判断するのに役立つメモが表示されます。

package.maskすべての53.0バージョン(53.0.0、53.0.1などを含む)をブロックするアイテムの例:

# Mask dev-python/setuptools-53.0* because it has some bug which isn’t present
# in setuptools-51* and which should be fixed in setuptools-53.1*.
=dev-python/setuptools-53.0*

もう1つの例は53.0.0の正確な一致です(53.0.1が表示されたら許可され始めます)。

# Mask dev-python/setuptools-53.0.0 because it has a bug which breaks things for me
# which should be fixed in dev-python/setuptools-53.0.1 when that’s released.
=dev-python/setuptools-53.0.0

原子構文のより包括的な説明については、以下を参照してください。eビル(5)。詳細については、package.mask次を参照してください。交通(5)package.maskセクションで検索してください/etc/portage/

おすすめ記事