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

时间:2017-11-30 18:22:17

标签: freebsd

我目前正在尝试在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被锁定,可能无法修改

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

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我终于找到了我的问题的答案。通过离线安装我的软件包,它会安装最少的依赖项。在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

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

答案 1 :(得分:0)

可能您正在更新其他软件包,因此正在更新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版本,最后,它不应该修改/影响openjdk8包。

此外,这可能很有用,

pkg install --dry openjdk8

这将检查将要安装的内容。

如果存在依赖关系(让我们说你没有perl),你可以试试这个:

pkg install --ignore-missing openjdk8