Fedora와 함께 제공되는 C 라이브러리를 업그레이드하는 가장 좋은 방법은 무엇입니까? 수동으로?

Fedora와 함께 제공되는 C 라이브러리를 업그레이드하는 가장 좋은 방법은 무엇입니까? 수동으로?

JavaFX를 사용하는 데 문제가 있어서 다음 페이지에 게시했습니다.스택 오버플로. 기본적으로 Java 라이브러리는 JPEG 라이브러리 버전 90이 필요한 기본 함수를 호출합니다. 오류 메시지는 다음과 같습니다.

java.io.IOException: Wrong JPEG library version: library is 62, caller expects 90

제가 사용하려고 하는 Java 라이브러리의 이전 버전(JavaFX 11)에도 내 시스템에서 사용할 수 있는 최신 버전의 JPEG 라이브러리가 필요하다는 것이 이상하다고 생각합니다. 저는 최신 운영 체제인 Fedora 33을 사용하고 있으며 항상 최신 버전을 유지하고 있습니다.

분명히 라이브러리는 Fedora 34에서 업데이트되었지만 Fedora 33과 같은 최첨단 시스템에서 내 JPEG가 왜 그렇게 오래 되었습니까? 또한 이 라이브러리를 업그레이드하는 정식 방법은 무엇입니까? 수동으로 컴파일하고 교체해야 합니까? 어떤 라이브러리를 업데이트해야 할지 잘 모르겠습니다.

이 명령은 ldconfig -p | grep -P jpe?g다음을 반환합니다.

    libmjpegutils-2.1.so.0 (libc6,x86-64) => /lib64/libmjpegutils-2.1.so.0
    libjpeg.so.62 (libc6,x86-64) => /lib64/libjpeg.so.62
    libjpeg.so.62 (libc6) => /lib/libjpeg.so.62
    libjpeg.so (libc6,x86-64) => /lib64/libjpeg.so
    libgdcmjpeg16.so.3.0 (libc6,x86-64) => /lib64/libgdcmjpeg16.so.3.0
    libgdcmjpeg12.so.3.0 (libc6,x86-64) => /lib64/libgdcmjpeg12.so.3.0
    libgdcmjpeg8.so.3.0 (libc6,x86-64) => /lib64/libgdcmjpeg8.so.3.0

명령은 rpm -qa | grep -P jpe?g다음을 반환합니다.

    libjpeg-turbo-2.0.5-5.fc33.i686
    libjpeg-turbo-2.0.5-5.fc33.x86_64
    libjpeg-turbo-devel-2.0.5-5.fc33.x86_64
    mjpegtools-libs-2.1.0-20.fc33.x86_64
    openjpeg2-2.3.1-10.fc33.x86_64

openjpeg 또는 libjpeg-turbo를 업데이트해야 합니까?

답변1

  1. 34 RPM의 Fedora( libjpeg-turbo-2.0.90-2.fc34.x86_64.rpm 또는 libjpeg-turbo-2.0.90-2.fc34.i686.rpm )를 가져와서 원하는 위치에 JPEG 라이브러리의 압축을 풀거나 컴파일하십시오. 예를 들어 /usr/local에 라이브러리를 설치합니다.
  2. 다음과 같이 애플리케이션을 실행합니다.
$ LD_PRELOAD=/path/libjpeg.so.62 application

관련 정보