64비트 공유 라이브러리로 JD-GUI를 실행할 수 없으며 32비트 라이브러리가 필요합니다.

64비트 공유 라이브러리로 JD-GUI를 실행할 수 없으며 32비트 라이브러리가 필요합니다.

사용하려고 했는데JD-GUI, 무료 Java 디컴파일러 프로그램을 오늘 내 Fedora 20 노트북에 설치했지만 프로그램을 실행하려고 할 때 오류가 발생했습니다.

$ '/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 저장소의 모든 패키지로 완전히 업데이트되었습니다. 내 리눅스 커널은 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를 설치합니다.

관련 정보