Amazon Linux 2 インスタンスのグループには、名前が異なる重複インスタンスがあります。同じオペレーティングシステムで実行
name=packages-microsoft-com-prod
さyum repositories
れる他のものを壊さずに、同じパッケージへの重複参照を削除する安全な方法は何ですか?
問題は 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
が、問題は解決しません。重複した名前をチェックし、重複がなくなるまでリポジトリを 1 つ削除する 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