/etc/yum.repos.dからリポジトリを削除した後に再インストールできないのはなぜですか?

/etc/yum.repos.dからリポジトリを削除した後に再インストールできないのはなぜですか?

/etc/yum.repos.d使用からそのファイルを削除してリポジトリを削除しましたrm -rf。その後、同じリポジトリをインストールしようとしましたが、dnf install表示されませ/etc/yum.repos.ddnf repolist

dnfパッケージがまだキャッシュに記憶されている可能性があると思い、次のように入力してキャッシュを消去しました。

dnf clean expire-cache--refreshオプションを渡しましたが、リポジトリdnf installはまだ表示されません。

リポジトリを手動で削除した後、どのようにインストールしますか?

答え1

どのリポジトリを削除し、コマンドを使用して再インストールしようとしているかはわかりませんが、次のdnf install ...操作を試みたと仮定できます。

$ sudo dnf install -y http://download1.rpmfusion.org/free/fedora/releases/28/Everything/x86_64/os/Packages/r/rpmfusion-free-release-28-1.noarch.rpm
Fedora 28 - x86_64                                                                                                                               411 kB/s |  60 MB     02:30
Last metadata expiration check: 0:00:00 ago on Mon 23 Jul 2018 02:06:48 AM UTC.
rpmfusion-free-release-28-1.noarch.rpm                                                                                                            40 kB/s |  20 kB     00:00
Dependencies resolved.
...
...
  Preparing        :                                                                                                                                                         1/1
  Installing       : rpmfusion-free-release-28-1.noarch                                                                                                                      1/1
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      1/1

Installed:
  rpmfusion-free-release.noarch 28-1

Complete!

次に、次のように.repoファイルを削除します。

$ sudo rm /etc/yum.repos.d/rpmfusion-free-updates.repo

その後、再インストールしてみてください。

$ sudo dnf install -y http://download1.rpmfusion.org/free/fedora/releases/28/Everything/x86_64/os/Packages/r/rpmfusion-free-release-28-1.noarch.rpm
RPM Fusion for Fedora 28 - Free                                                                                                                  1.3 MB/s | 754 kB     00:00
Last metadata expiration check: 0:00:00 ago on Mon 23 Jul 2018 02:11:12 AM UTC.
rpmfusion-free-release-28-1.noarch.rpm                                                                                                            57 kB/s |  20 kB     00:00
Package rpmfusion-free-release-28-1.noarch is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!

解決策

状況を正常に戻すには、reinstall代わりにこのRPMを実行する必要がありますinstall

$ sudo dnf reinstall -y http://download1.rpmfusion.org/free/fedora/releases/28/Everything/x86_64/os/Packages/r/rpmfusion-free-release-28-1.noarch.rpm
Last metadata expiration check: 0:03:11 ago on Mon 23 Jul 2018 02:11:12 AM UTC.
rpmfusion-free-release-28-1.noarch.rpm                                                                                                            44 kB/s |  20 kB     00:00
Dependencies resolved.
...
...
  Preparing        :                                                                                                                                                         1/1
  Reinstalling     : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Erasing          : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2

Reinstalled:
  rpmfusion-free-release.noarch 28-1

Complete!

確認してみると、削除済み.repoファイルが戻りました:

$ ls -l /etc/yum.repos.d/rpmfusion-free-updates.repo
-rw-r--r--. 1 root root 1264 Apr 24 11:27 /etc/yum.repos.d/rpmfusion-free-updates.repo

URLがありませんか?

必要に応じて、このリポジトリの設定/インストールに使用された元のRPMのURLがわからなくても、これを行うことができます。

RPMの名前を確認してください。

$ rpm -qa|grep rpmfus
rpmfusion-free-release-28-1.noarch

dnf reinstall ...その後、RPM名のみを使用してこれを行います。

$ sudo dnf reinstall -y rpmfusion-free-release
Last metadata expiration check: 0:10:00 ago on Mon 23 Jul 2018 02:11:12 AM UTC.
Dependencies resolved.    
...
...
  Preparing        :                                                                                                                                                         1/1
  Reinstalling     : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Erasing          : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2

Reinstalled:
  rpmfusion-free-release.noarch 28-1

Complete!

そして、ファイルが修復されたことを確認してください。

$ ls -l /etc/yum.repos.d/rpmfusion-free-updates.repo
-rw-r--r--. 1 root root 1264 Apr 24 11:27 /etc/yum.repos.d/rpmfusion-free-updates.repo

RPMの名前がわからない場合はどうなりますか?

再インストールに使用するRPMを把握したり、覚えていない不思議な状況にあったとしても、完全に運がないわけではありません。

コマンドから削除されたファイルを確認しhistoryたら、このrpmコマンドを実行してRPMが提供するファイルを確認できます。

$ rpm -qf /etc/yum.repos.d/rpmfusion-free-updates.repo
rpmfusion-free-release-28-1.noarch

次に、上記のようにRPM名を使用して再インストールします。

RPMがDNFまたはYUMを介してインストールされていない場合はどうなりますか?

特定のケースで述べたRPMは次のとおりです。geogebra-classic-6.0.477.0-201807062103.i386.rpmはYUM .repoファイルを含むRPMではありません。

$ rpm -qpl geogebra-classic-6.0.477.0-201807062103.i386.rpm  | grep yum
$

この場合、どちらもこのRPMを再インストール/ダウンロードするURLがわからないため、役に立ちませdnfん。yumこれは、最初はRPMを直接ダウンロードしてインストールできるためです。

この方法でRPMをインストールするときは、dnfURLyumを認識せず、ローカルHDDのファイルを介して実行するように指示したRPMをインストールするだけです。

この場合の唯一の方法は、問題のRPMを再ダウンロードして使用するdnfか、yum手動で再インストールすることですrpm

引用する

関連情報