フォルダーにたくさんのrpmファイルがあります。 _rpm -ivh *.rpm
_を使用してそれらをインストールしようとしているので、rpmは正しいインストール順序を処理できます。
これらのrpmのいくつかでは、システムに新しいバージョンがインストールされているため、たとえば次のようになります。
package info-5.0-1 (which is newer than info-4.13a-2) is already installed
_/opt/freeware/man/man1/infokey.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1
_
古い.rpmファイルを無視して、既にインストールされている新しいバージョンとの依存関係を解決する方法はありますか? --forceオプションについて考えました。しかし、-forceはどのように競合を解決しますか?それらを古いバージョンで上書きするか、単に新しいバージョンを残して無視しますか?
どんな考えでも大歓迎です。
--force
オプションは、既にインストールされているパッケージを再インストールし、他のパッケージから既にインストールされているファイルを上書きします。通常これは必要ありません。
何らかのディレクトリからすべてのRPMをインストールするようrpm
に指示すると、まさにこれが実行されます。 rpm
は、インストール用にリストされたRPMを無視できません。不要なRPMをリスト(またはディレクトリ)から手動で削除する必要があります。
古いRPMを削除すると、rpm
がインストールされたRPMの新しいバージョンとの依存関係を解決します。ただし、これは、インストールするRPMのいずれもが古いバージョンに正確に依存していない場合にのみ機能します。
同じRPMの異なるバージョンが本当に必要な場合、RPMは relocatable でなければなりません。その後、rpm
に特定のRPMを別のディレクトリにインストールするように指示できます。ファイルが競合していない場合は、rpm -i
で異なるバージョンをインストールできます(zypper in
は同じRPMの異なるバージョンをインストールできません)。たとえば、Ruby gemsをリロケータブルRPMとして使用しています。したがって、同じgemの異なるバージョンをインストールできます。
RPMが競合しているファイルはわかりませんが、それらがすべて「単なる」マニュアルページである場合は、rpm -i --replacefiles
を使用して新しいファイルを古いファイルで単純に上書きできます。これに関する唯一の問題は、古いmanページを読んでいる人を混乱させ、実際のバージョンのものだと考える可能性があることです。別の問題は、rpm --verify
コマンドです。古いパッケージがいくつかのファイルを上書きした場合、新しいパッケージに対して文句を言います。
これはおそらく https://serverfault.com/questions/522525/rpm-ignore-conflicts の複製ですか?
Freshenコマンドを試す:
rpm -Fvh *.rpm
コンテキストから、競合はパッケージのバージョンによって引き起こされました。rpm
に関するマニュアルを見てみましょう。
--force
Same as using --replacepkgs, --replacefiles, and --oldpackage.
--oldpackage
Allow an upgrade to replace a newer package with an older one.
したがって、rpm -Uvh info-4.13a-2.rpm --force
コマンドを実行して問題を解決できます。