/etc/yum.repos.d
使用からそのファイルを削除してリポジトリを削除しましたrm -rf
。その後、同じリポジトリをインストールしようとしましたが、dnf install
表示されませ/etc/yum.repos.d
んdnf 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をインストールするときは、dnf
URLyum
を認識せず、ローカルHDDのファイルを介して実行するように指示したRPMをインストールするだけです。
この場合の唯一の方法は、問題のRPMを再ダウンロードして使用するdnf
か、yum
手動で再インストールすることですrpm
。