他の多くのRPMを含むCentOS 6.4システムがあります。
libpng-develをlibpng12.develに置き換えたいです。これにより、rpm -e libpng-devel
次のような結果が得られます。
error: Failed dependencies:
pkgconfig(libpng) is needed by (installed) cairo-devel-1.10.2-7.el6.x86_64
pkgconfig(libpng15) is needed by (installed) gdk-pixbuf2-devel-2.26.1-1.el6.x86_64
libpng-devel is needed by (installed) cairo-devel-1.10.2-7.el6.x86_64
libpng-devel is needed by (installed) gtk2-devel-2.24.10-1.el6.x86_64
libpng-devel(x86-64) = 2:1.5.13-2.el6 is needed by (installed) libpng-static-2:1.5.13-2.el6.x86_64
これを取り除くとウサギのカキに落ちるでしょう。
yumダウングレードしようとしましたが、次のメッセージが表示されます。
[mono@localhost ~]$ sudo yum downgrade libpng
Loaded plugins: fastestmirror
Setting up Downgrade Process
Loading mirror speeds from cached hostfile
* base: mirror.net.cen.ct.gov
* extras: mirror.dattobackup.com
* rpmforge: repoforge.mirror.constant.com
* updates: mirror.umd.edu
Resolving Dependencies
--> Running transaction check
---> Package libpng.x86_64 2:1.2.49-1.el6_2 will be a downgrade
---> Package libpng.x86_64 2:1.5.13-2.el6 will be erased
--> Finished Dependency Resolution
Error: Package: gdk-pixbuf2-devel-2.26.1-1.el6.x86_64 (installed)
Requires: libpng15.so.15()(64bit)
Removing: 2:libpng-1.5.13-2.el6.x86_64 (installed)
libpng15.so.15()(64bit)
Downgraded By: 2:libpng-1.2.49-1.el6_2.x86_64 (base)
Not found
Error: Package: 2:libpng-devel-1.5.13-2.el6.x86_64 (installed)
Requires: libpng(x86-64) = 2:1.5.13-2.el6
Removing: 2:libpng-1.5.13-2.el6.x86_64 (installed)
libpng(x86-64) = 2:1.5.13-2.el6
Downgraded By: 2:libpng-1.2.49-1.el6_2.x86_64 (base)
libpng(x86-64) = 2:1.2.49-1.el6_2
Error: Package: 2:libpng-devel-1.5.13-2.el6.x86_64 (installed)
Requires: libpng15.so.15()(64bit)
Removing: 2:libpng-1.5.13-2.el6.x86_64 (installed)
libpng15.so.15()(64bit)
Downgraded By: 2:libpng-1.2.49-1.el6_2.x86_64 (base)
Not found
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[mono@localhost ~]$
他の人をダウングレードすると、私も同様の問題に直面します。
localinstall / localupdateを試しましたが、どちらも機能しないようです。
[mono@localhost ~]$ sudo yum --nogpgcheck localinstall ~/rpmbuild/RPMS/x86_64/libpng12-devel-1.2.50-3.el6.x86_64.rpm
Loaded plugins: fastestmirror
Setting up Local Package Process
Examining /home/mono/rpmbuild/RPMS/x86_64/libpng12-devel-1.2.50-3.el6.x86_64.rpm: libpng12-devel-1.2.50-3.el6.x86_64
Marking /home/mono/rpmbuild/RPMS/x86_64/libpng12-devel-1.2.50-3.el6.x86_64.rpm to be installed
Loading mirror speeds from cached hostfile
* base: mirror.net.cen.ct.gov
* extras: mirror.dattobackup.com
* rpmforge: repoforge.mirror.constant.com
* updates: mirror.umd.edu
Resolving Dependencies
--> Running transaction check
---> Package libpng12-devel.x86_64 0:1.2.50-3.el6 will be installed
--> Processing Conflict: libpng12-devel-1.2.50-3.el6.x86_64 conflicts libpng-devel
No package matched to upgrade: libpng12-devel
--> Finished Dependency Resolution
Error: libpng12-devel conflicts with 2:libpng-devel-1.5.13-2.el6.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[mono@localhost ~]$ sudo yum --nogpgcheck localupdate ~/rpmbuild/RPMS/x86_64/libpng12-devel-1.2.50-3.el6.x86_64.rpm
Loaded plugins: fastestmirror
Setting up Local Package Process
Examining /home/mono/rpmbuild/RPMS/x86_64/libpng12-devel-1.2.50-3.el6.x86_64.rpm: libpng12-devel-1.2.50-3.el6.x86_64
Package libpng12-devel not installed, cannot update it. Run yum install to install it instead.
Nothing to do
[mono@localhost ~]$
同じコマンドから1つのrpmを削除し、別のrpmを追加する方法はありますか?マルチコマンドRPMトランザクションはありますか? RPMトランザクションは履歴監査に使用されるように見えるため、Googleが用語を誤って検索したようです。私のシステムでこれらのRPMをたくさん交換する必要があるので、rpm仕様を変更して再構築して接続する方法がある場合はそれも許可されます。
答え1
-e
通常、()を最初にアンインストールしてからインストールしません。これにより、RPMはこのRPMに依存するすべてのアプリケーションを削除します。代わりにアップグレードしたい。
$ rpm -Uvh libpng12-devel
このパッケージが実際に「libpng」アップグレードのドロップである場合は、単一の移動で削除およびインストールされるため、依存関係が軽減されます。
Yumを使う
私はこれをいつもやっていますがyum
、これは一般的なRPM問題だけでなく、このような難しい問題を解決するのに役立ちます。次のコマンドを使用します。
$ yum update libpng12-devel
次のコマンドを使用してローカルRPMをインストールすることもできますyum
。
$ yum --nogpgcheck localinstall libpng12-devel....rpm
これはしばしば、この種の要求の厳しいパッケージ管理タスクを最もよく処理する方法についてのアドバイスを提供します。
答え2
はい、libpng
台無しです。以下はいくつかのヒントです。
まず、完全であることを確認してください。
package-cleanup --cleandupes
交換は一般的に機能しますが、いくつかの実験が必要な場合があります。
yum swap -- install libpng12 libpng12-devel -- remove libpng libpng-devel
巧妙だと感じたら、いつでもmultilibチェックをスキップできます。
--setopt=protected_multilib=false