名前=packages-microsoft-com-prodの複数のyumリポジトリ

名前=packages-microsoft-com-prodの複数のyumリポジトリ

名前の異なるname=packages-microsoft-com-prod重複インスタンスを持つ Amazon Linux 2 インスタンスのセット。yum repositories同じOSで実行されている他のエントリを中断せずに同じパッケージへの重複参照を削除する安全な方法はありますか?

grepを使用して問題を説明する方法は次のとおりです。

[user-name@host-name ~]$ sudo grep name=packages-microsoft-com-prod /etc/yum.repos.d/*
/etc/yum.repos.d/microsoft-prod.repo:name=packages-microsoft-com-prod
/etc/yum.repos.d/msprod.repo:name=packages-microsoft-com-prod

このパッケージの 2 つのインスタンスが原因で、そのインスタンスの他のプログラムで同じ名前の 2 つのパッケージのうちどのパッケージを使用するかが不明であることを示すエラーが返されます。

試してみましたが、yum update問題はまだ存在します。重複した名前を解決し、重複しなくなるまでリポジトリを削除するbashスクリプトを作成できます。ただし、リポジトリを削除するとハックになり、システムの他の場所で偶発的な損傷を引き起こす可能性があることを心配しています。


ユーザーリクエスト:

@JeffSchallerのコメントに基づいて、状況を詳しく説明するために、次のターミナル出力を追加しています。

[user-name@host-name ~]$ grep -c ^name= /etc/yum.repos.d/microsoft-prod.repo /etc/yum.repos.d/msprod.repo
/etc/yum.repos.d/microsoft-prod.repo:1
/etc/yum.repos.d/msprod.repo:1

[user-name@host-name ~]$ rpm -qf /etc/yum.repos.d/microsoft-prod.repo /etc/yum.repos.d/msprod.repo
packages-microsoft-prod-1.0-1.el7.noarch
file /etc/yum.repos.d/msprod.repo is not owned by any package

[user-name@host-name ~]$ sudo cat /etc/yum.repos.d/microsoft-prod.repo
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

[user-name@host-name ~]$ sudo cat /etc/yum.repos.d/msprod.repo
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

答え1

rm /etc/yum.repos.d/msprod.repoあなたが実証した状況を考えると、/etc/yum.repos.d/microsoft-prod.repoのコピーであり、どのパッケージにも属さないため、これを行います。

ファイルがパッケージによって所有されているかどうかをプログラムで確認するには、次の戻りコードを確認してくださいrpm

if rpm -qf /the/file > /dev/null 2>&1
then
  : the file is owned by an RPM
else
  : the file is not owned by an RPM
fi

関連情報