64 ビット共有ライブラリでは JD-GUI を実行できません。32 ビットライブラリが必要です。

64 ビット共有ライブラリでは JD-GUI を実行できません。32 ビットライブラリが必要です。

私は使おうとしていたJD-GUI今日、Fedora 20 ラップトップに無料の Java デコンパイラ プログラムをインストールしましたが、プログラムを実行しようとするとエラーが発生しました。

$ '/home/jflory/Downloads/jd-gui-0.3.5.linux.i686/jd-gui' 
/home/jflory/Downloads/jd-gui-0.3.5.linux.i686/jd-gui: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

このエラーを受け取った後、どのパッケージがこのライブラリを提供しているのか調べました。

$ sudo yum whatprovides libgtk-x11-2.0.so.0
gtk2-2.24.22-2.fc20.i686 : The GIMP ToolKit (GTK+), a library for creating GUIs for X
Repo        : fedora
Matched from:
Provides    : libgtk-x11-2.0.so.0

gtk2-2.24.24-2.fc20.i686 : The GIMP ToolKit (GTK+), a library for creating GUIs for X
Repo        : updates
Matched from:
Provides    : libgtk-x11-2.0.so.0

このパッケージは 32 ビット アーキテクチャであることに気付きました。私は 64 ビット コンピューターを持っており、64 ビット バージョンの Fedora 20 を使用しています。32 ビット バージョンのをインストールしようとしましたgtk2

$ sudo yum install gtk2.i686
Resolving Dependencies
--> Running transaction check
---> Package gtk2.i686 0:2.24.24-2.fc20 will be installed
[snip]
--> Running transaction check
[snip]
--> Finished Dependency Resolution

Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem. Eg.:

     1. You have an upgrade for cairo which is missing some
        dependency that another package requires. Yum is trying to
        solve this by installing an older version of cairo of the
        different architecture. If you exclude the bad architecture
        yum will tell you what the root cause is (which package
        requires what). You can try redoing the upgrade with
        --exclude cairo.otherarch ... this should give you an error
        message showing the root cause of the problem.

     2. You have multiple architectures of cairo installed, but
        yum can only see an upgrade for one of those architectures.
        If you don't want/need both architectures anymore then you
        can remove the one with the missing update and everything
        will work.

     3. You have duplicate versions of cairo installed already.
        You can use "yum check" to get yum show these errors.

   ...you can also use --setopt=protected_multilib=false to remove
   this checking, however this is almost never the correct thing to
   do as something else is very likely to go wrong (often causing
   much more problems).

   Protected multilib versions: cairo-1.12.16-1.4.i686 != cairo-1.13.1-0.1.git337ab1f.fc20.x86_64

32ビットアーキテクチャパッケージをインストールすると、gtk2他にもさまざまな影響があるようです。検索してみたところ、このスレッドLinuxQuestions.org で、どうやら彼の解決策は を実行しyum updateてから を実行することでしたyum install gtk2.i686。しかし、それは私の環境では機能しません。

私のラップトップは、Fedora のリポジトリ内のすべてのパッケージで完全に更新されています。私の Linux カーネルは です3.16.3-200.fc20.x86_64

結局のところ、64 ビット ライブラリを削除せずに JD-GUI を自分のマシンで動作させるにはどうすればよいのでしょうか? 64 ビット / 32 ビット パッケージの互換性のための回避策はありますか?

答え1

こんにちは。同様の問題を解決するには、最初に .x64 バージョンをインストールすると役立ちました。

yum は、インストールされている .x64 パッケージとインストールしようとしている .i686 のバージョンが異なることを報告しているようです。

それで

sudo yum install gtk2.x86_64

sudo yum install gtk2.i686

私には効果があった

答え2

私にとって効果があったのは

rpm --erase --nodeps cairo

これは、cairoそのようなアクションによって違反される可能性のある依存関係をチェックせずにパッケージを削除し、その後に

yum install cairo

設定されたパッケージリポジトリからcairoをインストールします

関連情報