Fedora展開アップグレード(27 - > 28)を実行した後、dnf
パッケージバージョン間の競合を手動で解決しました(以前のOSバージョンの機能を維持するために必要です。起動時にGRUB2メニューから有効なOSバージョンを選択)。
dnf
セキュリティチェックは、以前にrpm -e xxx --force
行ったようにクラッシュしたパッケージの削除を防ぎます。私は誤ってglibcを削除しましたが、私のPCにすぐに問題が発生しました。
次の理由で、コンピュータを最初から再構築したくありません。
- 数年前にインストールしたアプリはすべて覚えていません(dnfシステムのアップグレードを通じて自動的にアップグレードされました)。
- マイネットワーク環境とマイコンピュータのサーバーのカスタム設定を復元するには、/ etcに多くの構成タスクが必要です。
リカバリディスクを使用して起動し、ハードドライブを確認できました。すべてが比較的「きれい」に見えます。 glibcパッケージのファイルが完全に欠落しています。
欠落しているルートを開始しようとしたため、以前のルートを完了できませんでしたchroot
(実行するため)。rpm -i glibc
chroot
/bin/bash
/mnt/hard_disk/
rpmに一般的なタスクを実行し、代わりにファイルをインストールするように指示する方法はありますか/
?
その後、私はパッケージデータベースの一貫性と整合性を担当します。
答え1
chroot
次のコマンドを実行すると機能します。
chroot /mnt/hard_disk rpm -i glibc*.rpm
また、オプションがrpm
あるので--root
、ここに別のオプションがあります。
rpm -i --root /mnt/hard_disk glibc*.rpm
答え2
コマンドを使用しなくてもこれを行う方法がありますrpm
。rpm2cpio
利用可能なバイナリが必要です。
# cd /mnt/hard_disk
# rpm2cpio <rpmfile> | cpio -idmv
前述のように、後でRPMDBの整合性の問題を処理する必要がありますが、これを行うと、ファイルが適切に配置されます。簡単なGoogle検索では、関連情報と追加の詳細を含む多くのWebページを見つけることができます。そのうちの1つは次のとおりです。https://blog.packagecloud.io/eng/2015/10/13/inspect-extract-contents-rpm-packages/。