升级 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 上已更新,但为什么我的 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

  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

相关内容