我试图通过pkgng从我的FreeBSD服务器(10.3 x64)升级Imagemagick-nox11-6.9.4.3(从6.9.4.1开始)并出现错误:
# pkg add --force ImageMagick-nox11-6.9.4.3,1.txz
[litte-j-server.com] Installing ImageMagick-nox11-6.9.4.3,1...
package ImageMagick-nox11 is already installed, forced install
pkg: Missing dependency 'perl5'
Failed to install the following 1 package(s): ImageMagick-nox11-6.9.4.3,1.txz
我很惊讶,因为它是具有大量perl代码的生产服务器。所以,我通过pkgng搜索了它 - 它说已经安装了perl5:
# pkg info|grep perl5
perl5.20-5.20.2 Practical Extraction and Report Language
包是从pkg.freebsd.org下载的,因为我应该只在该服务器上使用本地网络。然后我变得疯狂并在该服务器上打开互联网并继续使用pkg install:
# pkg install ImageMagick-nox11-6.9.4.3,1.txz
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Updating database digests format: 100%
pkg: ImageMagick-nox11 has a missing dependency: perl5
pkg: ImageMagick-nox11 has a missing dependency: perl5
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
ImageMagick-nox11: 6.9.4.1,1 -> 6.9.4.3,1
The process will require 17 KiB more space.
Proceed with this action? [y/N]: y
[litte-j-server.com] [1/1] Upgrading ImageMagick-nox11 from 6.9.4.1,1 to 6.9.4.3,1...
[litte-j-server.com] [1/1] Extracting ImageMagick-nox11-6.9.4.3,1: 100%
所以,它被升级了(FreeBSD甚至说了perl5依赖关系) - 但是如果我再次尝试pkg add --force
,它会显示相同的“缺失依赖”。
为什么会显示出来?我该怎么做才能解决这个问题?是不是pkgng安装了包,但仍然说缺少依赖(我可能崩溃了吗?)
P.S。我没有在这里找到任何'pkg'或'pkgng'标签,抱歉,如果我做错了
答案 0 :(得分:0)
虽然服务器上已明确安装了perl 5.20,但它是从名为perl5.20
而非perl5
的软件包安装的。后者选择最新批准的perl 5版本。可能在服务器最初构建时,管理员决定在FreeBSD维护者更新perl5
标签之前需要5.20。
pkg add
和pkg install
都有-M
选项(分别为--accept-missing
和--ignore-missing
)来忽略缺少的依赖关系。尝试:
pkg add --force --accept-missing ImageMagick-nox11-6.9.4.3,1.txz
有关详情,请参阅the manual。