如何在 Fedora 37 上安装 ExactImage

如何在 Fedora 37 上安装 ExactImage

我想在 Fedora 37 上使用 ExactImage。据我所知,它既不在主存储库中,也不在 rpmfusion 中,也找不到任何第三方包。

我尝试从源代码进行编译,但这似乎是一个极其困难的情况。一方面,最新版本不能按原样编译,但至少可以通过 Ubuntu/Debian 补丁修复这个问题。但是,我在构建/安装 AGG 时仍然遇到问题。我以某种方式设法使用 CMake,但一定有问题,因为我遇到了 ExactImage 的链接错误。

有没有其他人尝试过这个并可以提供步骤,或者至少提示如何正确构建 AGG?我也很困惑我应该使用哪些 AGG 来源?

答案1

在这种情况下,我建议你使用alien将deb转换为rpm包。

sudo dnf install alien
sudo alien --to-rpm exactimage_1.0.2-8+b3_amd64.deb

现在你有了一个 rpm 包。下一步是解决依赖关系,我知道这可能很耗时。

sudo rpm -i exactimage_1.0.2-8+b3_amd64.rpm 

就我而言,需要以下依赖项:
lilmbase25-common
libIex-2_5.so.25()(64bit)
libIlmImf-2_5.so.25()(64bit)
libagg.so.2()(64bit)

这些是 rpm 安装的应用程序:
/usr/bin/bardecode
/usr/bin/e2mtiff
/usr/bin/econvert
/usr/bin/edentify
/usr/bin/empty-page
/usr/bin/hocr2pdf
/usr/bin /优化2bw

答案2

毕竟我设法从源代码构建,尽管这可能不是正确的方法。以下是一些关键步骤:

  • 从 Ubuntu 下载并解压以下档案:

  • 为两个项目应用补丁。假设您位于各自的源代码树中:cat ../debian/patches/series | while read PATCHFILE; do echo "../debian/patches/$PATCHFILE"; git apply "../debian/patches/$PATCHFILE"; done

  • 从Fedora存储库安装AGG和ExactImage的依赖项(-devel当然包括相应的包)

  • 使用 automake 构建/安装 AGG(不要使用 CMake,它不会产生正确的结果!)

    • bash autogen.sh
    • 手动修复生成的configure脚本,存在语法错误。 (或者也许更好,configure.ac在运行之前修复源文件第 104-107 行autogen.sh
    • ./configure --disable-gpc --disable-examples --enable-freetype --enable-ctrl --enable-platform --with-pic, make -j4, sudo make install( --disable 标志的原因:GPC 因许可原因被 Debian 删除,示例无法编译 - 如果排除 GPC 补丁,您也许可以避免至少其中之一)
  • 构建/安装 ExactImage

    • 手动修复image/Makefile(重命名-laggfontfreetype_pic-laggfontfreetype
    • PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --without-jasper --without-evas, make -j4, sudo make install(警告:未提供卸载命令!)(--without flags 的原因:ExactImage 的 Jasper 代码已过时/与 Fedora 的 Jasper 软件包不兼容;不确定 evas 出了什么问题)
    • ExactImage 由于某种原因不查找/usr/local/lib,因此为 AGG 创建符号链接/usr/lib64:(for LIBFILE in /usr/local/lib/libagg*; do sudo ln -s "$LIBFILE" /usr/lib64/$(basename "$LIBFILE"); done警告:可能不是一个优雅的解决方案)

坦率地说,我有点恼火,因为我找不到开箱即用的资源。这可能是我经历过的最混乱和最耗时的构建过程,特别是因为它需要多次尝试才能正确。但至少我现在可以使用 ExactImage 了。接下来我要做的就是在 Fedora 或 RPMFusion 上提交 ExactImage 的打包请求。

相关内容