![Fedora와 함께 제공되는 C 라이브러리를 업그레이드하는 가장 좋은 방법은 무엇입니까? 수동으로?](https://linux55.com/image/190557/Fedora%EC%99%80%20%ED%95%A8%EA%BB%98%20%EC%A0%9C%EA%B3%B5%EB%90%98%EB%8A%94%20C%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EB%A5%BC%20%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C%ED%95%98%EB%8A%94%20%EA%B0%80%EC%9E%A5%20%EC%A2%8B%EC%9D%80%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%EC%88%98%EB%8F%99%EC%9C%BC%EB%A1%9C%3F.png)
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
- 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에 라이브러리를 설치합니다.
- 다음과 같이 애플리케이션을 실행합니다.
$ LD_PRELOAD=/path/libjpeg.so.62 application