RPMパッケージから手動でファイルを強制的にリロードする方法は?

RPMパッケージから手動でファイルを強制的にリロードする方法は?

Fedora展開アップグレード(27 - > 28)を実行した後、dnfパッケージバージョン間の競合を手動で解決しました(以前のOSバージョンの機能を維持するために必要です。起動時にGRUB2メニューから有効なOSバージョンを選択)。

dnfセキュリティチェックは、以前にrpm -e xxx --force行ったようにクラッシュしたパッケージの削除を防ぎます。私は誤ってglibcを削除しましたが、私のPCにすぐに問題が発生しました。

次の理由で、コンピュータを最初から再構築したくありません。

  1. 数年前にインストールしたアプリはすべて覚えていません(dnfシステムのアップグレードを通じて自動的にアップグレードされました)。
  2. マイネットワーク環境とマイコンピュータのサーバーのカスタム設定を復元するには、/ etcに多くの構成タスクが必要です。

リカバリディスクを使用して起動し、ハードドライブを確認できました。すべてが比較的「きれい」に見えます。 glibcパッケージのファイルが完全に欠落しています。

欠落しているルートを開始しようとしたため、以前のルートを完了できませんでしたchroot(実行するため)。rpm -i glibcchroot/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

コマンドを使用しなくてもこれを行う方法がありますrpmrpm2cpio利用可能なバイナリが必要です。

# 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/

関連情報