Debian - 当“不会安装”时更新所有依赖项

Debian - 当“不会安装”时更新所有依赖项

我一直在尝试将 Percona Toolkit 安装到我的 Debian(喘息)服务器上。我按照说明下载了它: wget percona.com/get/percona-toolkit.deb

然后安装了它 sudo dpkg -i percona-toolkit.deb

但它告诉我缺少未安装的依赖项,也不会安装。

我一直在下载这些,但每一个似乎都缺少它自己的依赖项。我还注意到其中大部分已安装,但工具包需要更高版本。在一个例子中,我能找到的唯一版本表明它是为 Debian 的下一版本设计的。

到目前为止我已经下载了:

libio-socket-ssl-perl_2.002-2_all.deb
libnet-ssleay-perl_1.65-1+b1_amd64.deb
libterm-readkey-perl_2.30-4+b2_amd64.deb

现在它想要

perl (>= 5.20.0-4)
perlapi-5.20.0
libc6 (>= 2.14)

有没有一种简单的方法可以让系统一次性下载/安装所有这些内容,如果我安装的版本高于已安装的默认版本,是否可能会导致稳定性问题?


更新 - 输出apt-get -f install

sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  libio-socket-ssl-perl libnet-ssleay-perl percona-toolkit
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
3 not fully installed or removed.
After this operation, 7,319 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 26051 files and directories currently installed.)
Removing percona-toolkit ...
Removing libio-socket-ssl-perl ...
Removing libnet-ssleay-perl ...
Processing triggers for man-db ...

答案1

首先尝试安装,会失败。

dpkg -i percona-toolkit.deb

然后执行以下操作来安装并修复缺少的依赖项。

apt-get install --fix-missing -f

然后再次尝试安装.deb包

dpkg -i percona-toolkit.deb

答案2

首先,运行apt-get -f installAPT 来了解系统的当前状态。半安装或半删除的软件包或损坏的依赖项往往会使 APT 处于一种不执行您指示的状态,即使这在理论上是可能的,因为它不会影响损坏的软件包。

dpkg是一个低级工具,仅执行您明确指示它执行的操作。它验证依赖关系,但无法实现它们。apt-get和其他 APT 工具是管理依赖关系等的高级工具。例如,如果您告诉apt-get安装一个软件包,它也会自动下载安装该软件包的依赖项;但是,如果您告诉dpkg安装一个包(您必须在本地文件中提供该包)并且未安装所需的依赖项,则它只会发出错误信号。

使用 手动安装第三方包时dpkg,需要先安装依赖项。您可以使用以下命令查看 deb 文件所依赖的内容

dpkg-deb -I percona-toolkit.deb

查看该Depends:行并安装其中列出的软件包。这是一个以逗号分隔的列表;如果某些软件包名称由 分隔,|那么您只需安装其中一个。另请检查该Recommends:行,该行列出了并非每个人都需要但非常有用或对于该包的功能之一来说是必需的包。

或者,您可以使用以下命令启动安装

dpkg -i percona-toolkit.deb

查看它抱怨缺少哪些软件包,并且(假设这些软件包是由发行版提供的)立即用于apt-get安装它们。所以在你的情况下:

apt-get install libio-socket-ssl-perl libnet-ssleay-perl libterm-readkey-perl
apt-get -f install

(第二个命令负责完成percona-toolkit由于缺少依赖项而中途中断的安装。)

如果您的发行版未提供多个 deb 文件,并且它们之间具有依赖关系,请按照其依赖关系给定的顺序安装它们,或者将它们全部传递到单个dpkg -i命令行上。

相关内容