Fedora

升級 Fedora 附帶的 C 庫的最佳方法是什麼?手動?

  • May 3, 2021

我在stackoverflow上發布了 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 上更新,但為什麼我的 JPEG 在像 Fedora 33 這樣的尖端系統中如此過時?另外,升級這個庫的規範方法是什麼?我應該手動編譯和替換它嗎?我不確定我應該更新哪個庫。

命令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. 獲取 Fedora 的 34 RPM( 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

引用自:https://unix.stackexchange.com/questions/647786