有没有办法安装 openjdk8 包并防止 perl 在 FreeBSD 9.2 上更新?

Is there a way to install the package openjdk8 and to prevent perl to update on FreeBSD 9.2 ?

我目前正在尝试找到一种在 FreeBSD 9.2 上安装软件包 openjdk8 的方法。 为此,我使用了 :

sudo pkg install openjdk8

它工作没有任何问题。但是,这也将 perl 包更新到了​​ 5.24 版本。我们有许多只适用于 perl 5.16.3 的脚本,所以我想保留这个版本的 perl。

我已经尝试卸载 perl 5.24 软件包并重新安装 perl 5.16.3 并且成功了。所以我确信 openjdk 并不真的需要更新这个包。我已经尝试锁定包 perl 5.16.3 但 openjdk8 拒绝自行安装。我有这条消息:

perl 5.16.3 is locked and may not be modified

安装结束,我的包没有安装。另外,出于特定原因,我不想使用端口方法。我绝对想使用 pkg 方法。

所以我的问题是这个:有没有办法完成我的 openjdk8 安装并禁止 perl 更新?

感谢您的帮助。

可能您正在更新其他软件包,因此正在更新 Perl,在安装 openjdk8 时没有获取其他依赖项,而且 port Makefile.

中也没有 perl 依赖项

这是仅安装时的输出 openjdk8:

# pkg install openjdk8
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        openjdk8: 8.152.16

Number of packages to be installed: 1

The process will require 165 MiB more space.

事实上,您可以在没有 Perl 的情况下安装该软件包。

你可以做的是安装 openjdk8 然后安装你需要的 Perl 版本,最后,它不应该 modify/affect openjdk8 包。

此外,这可能会有用,

pkg install --dry openjdk8

这将检查要安装的内容。

如果存在依赖关系(假设您没有 perl),您可以试试这个:

pkg install --ignore-missing openjdk8

我终于找到了问题的答案。通过离线安装我的包,它安装了最少的依赖项。这不是一种在 FreeBSD 上安装软件包的非常流行的方法,但它工作得很好。

只需按照以下步骤操作:

sudo pkg install -F openjdk8

此命令允许您只获取包及其依赖项。完成后,您必须找到刚刚获取的包的位置。

sudo find / -n *.txz -print

对我来说,结果是

/var/cache/pkg/openjdk8-8.112.16_1-1baeb24a94.txz

然后我进入这个目录:

cd /var/cache/pkg

现在您只需使用:

sudo pkg-static add openjdk8

就是这样。它将提取包和最少的依赖项。