32비트 gstreamer-ffmpeg를 정상적으로 설치할 수 없으며 라이브러리가 다른 32비트 라이브러리를 찾을 수 없습니다.

32비트 gstreamer-ffmpeg를 정상적으로 설치할 수 없으며 라이브러리가 다른 32비트 라이브러리를 찾을 수 없습니다.

저는 Ubuntu 12.04 64비트를 사용하고 있으며 게임(GTA SA)을 와인에서 실행하려고 하는데 계속 충돌이 발생합니다. 오류 로그를 읽은 후 소개 비디오를 재생하려면 32비트 버전의 gstreamer가 필요한 것 같습니다. ia32-libs32비트 소프트웨어를 실행하는 데 필요하다는 글을 어딘가에서 읽었기 때문에 이미 가지고 있습니다 . 나는 먼저 다음을 시도합니다.

sudo apt-get install gstreamer0.10-ffmpeg:i386

반품:

 gstreamer0.10-ffmpeg:i386 : Depends: libavcodec53:i386 (>= 4:0.7.3-1) but it is not going to be installed or
                                      libavcodec-extra-53:i386 (>= 4:0.7.3-1) but it is not going to be installed

또한 libavformat, libpostproc 및 libswscale에 따라 달라지며 거의 동일한 버그가 있습니다. 그래서 계속 찾아보다가 32비트 라이브러리를 설치할 수 있는 getlibs라는 좋은 도구를 발견했습니다. 나는 그것이 /usr/lib32최선의 접근 방식이 아닐 수도 있지만 디렉토리 에 넣는 것이라고 생각했지만 어쨌든 시도해 보았습니다.

그래서 나는 getlibs를 사용하여 와인이 불평하는 32비트 라이브러리를 설치했습니다. 이제 다른 오류가 발생합니다. 기본적으로 32비트 라이브러리는 현재 찾을 수 없는 다른 라이브러리를 참조하고 있습니다. 예를 들어 오류 중 하나는 다음과 같습니다.

Failed to load plugin '/usr/lib32/gstreamer-0.10/libgstffmpeg.so': libavformat.so.53: cannot open shared object file: No such file or directory

그래서 지금은 32비트 버전을 사용하고 있기 때문에 내 초기 생각은 정확했습니다. 이제 ldd를 사용하여 이 라이브러리가 다른 라이브러리를 참조하는 위치를 알아내려고 합니다.

# This one is fine
ldd /usr/lib/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => /usr/lib/x86_64-linux-gnu/libavformat.so.53 (0x00007f8314181000)

# This one isn't
ldd /usr/lib32/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => not found

따라서 실제로 libgstffmpeg.so는 올바른 libavformat.so를 찾을 수 없습니다. getlibs를 사용하여 libavformat의 32비트 버전을 다시 설치하려고 시도했지만 /usr/lib32/i386-linux-gnu/libavformat.so.ldd에 여전히 libavformat을 찾을 수 없다는 메시지가 표시됩니다. 그런 다음 동일한 디렉토리에 심볼릭 링크를 생성하려고 시도했지만 이름을 지정하고 libavformat.so.53"/usr/lib/i386-linux-gnu/libavformat.so.53"을 가리키는 심볼릭 링크를 생성했지만 둘 다 동일한 오류가 발생했습니다.

이제 나는 이것이 실제로 올바른 방법이 아니라고 확신하지만 올바른 방법을 모르겠습니다. 그렇다면 올바른 접근 방식은 무엇입니까, 아니면 gstreamer0.10-ffmpeg에는 32비트 또는 다중 lib 지원이 없습니까? libgstffmpeg(또는 제가 추측하는 어떤 라이브러리라도)가 참조하는 32비트 라이브러리를 체크인하는 디렉토리를 어떻게 찾을 수 있나요?

답변1

노력하다:

ldconfig -p | grep lib32

man ldconfig출력이 표시되지 않으면 링커 캐시(읽기 및 스위치에 대한 첫 번째 단락 -p)가 /usr/lib32를 참조하지 않기 때문입니다. 우분투 12.04 시스템을 확인했는데 기본적으로 존재하지 않습니다. 다음 /etc/ld.so.conf.d/libc.conf항목에만 추가할 수 있습니다 /usr/local/lib. ldconfig위의 -p 명령을 실행한 다음 실행하세요. /usr/lib32에서 이를 볼 수 있습니다. 이제 32비트 gstreamer lib에서 ldd를 다시 시도하십시오.

관련 정보