【问题标题】:How can I make my Ubuntu look for a library from a given source如何让我的 Ubuntu 从给定源中查找库
【发布时间】:2026-02-15 07:30:02
【问题描述】:

我正在尝试编译 scilab(是的,我的任务是编译它而不是使用 apt-get)但是在解决了一些问题后,我得到了以下问题:

checking minimal version (Specification-Version 2.2) of jogl2... configure: error: Wrong version of jogl2. Expected at least 2.2. Found 2.1

2.1 似乎是 apt-get 提供的最新版本,所以我从http://jogamp.org/deployment/jogamp-current/archive/jogamp-all-platforms.7z 下载了最新版本并成功编译它(sudo ant junit.run 返回成功的单元测试)但是当我回到 scilab 时它仍然找到2.1 版本的 jogl。我怎样才能让它寻找我编译的较新的?

【问题讨论】:

    标签: linux ubuntu compilation


    【解决方案1】:

    我刚刚在使用 Scilab 时遇到了同样的问题,我正在尝试从 https://github.com/opencollab/scilab/blob/master 构建它。

    问题是文件 scilab/configure 查找名为“jogl2*”的 jar,但最新版本的 jogl 不再使用该 jar 名称。

    所以最终 Scilab 不会使用 jogl 2.2 构建,但具有讽刺意味的是配置文件需要它。如果我找到解决方法,我会及时通知你。

    编辑: Scilab 确实使用 jogl 2.2 构建,而不是使用我们都尝试过的最新版本 jogl 2.3。 Jogl 2.3 重组包名称。

    如果你得到 jogl 2.2.4 http://jogamp.org/deployment/v2.2.4/jar/ 将 jars 安装在 /usr/share/java 中。为了回答您最初的问题,Ubuntu 上的 Java 将首先查看那里。

    但是,您仍然需要进行一项 hack 才能使 scilabs 配置脚本正常工作。将 /usr/share/java/jogl-all.jar 重命名为 /usr/share/java/jogl2.jar

    gouessej 的评论是正确的,有人可能会修改 Scilab 以使用最新的 jogl。当他们这样做时,他们可能想要处理隐藏在配置脚本中的包管理逻辑,并将其移至 Maven 之类的东西。

    【讨论】:

    • 也许你应该修改 Scilab 以使用最新版本的 JOGL,这不是很困难。此外,我们 (JogAmp) 从未将我们的 JOGL JAR 命名为“jogl2”,这是某些 Linux 发行版的包维护者所起的名字。
    • 那么,如何让它与最新版本的 JOGL 一起工作? JOGL 的最新编译版本不提供 scilab 配置脚本正在寻找的 jars。
    • 我发现构建确实适用于 2.2.4 版的 jogl,以及手动重命名 jar 文件。更新了上面的答案。
    • 你可以让它与 JOGL 2.3.1 一起工作,一些包已被移动:jogamp.org/bugzilla/show_bug.cgi?id=682
    • 现在编译器会抛出其他错误,但至少安装向前推进了,谢谢!