在安装Debian软件包之前,我想检查当前系统是否安装了所有依赖的软件包。 以下是我目前正在做的(以bsdgames为例)。 请注意,我不想自动安装依赖项。 我只想知道当前系统是否满足依赖性。 在尝试回答我的问题之前,或者将其标记为重复,请至less仔细阅读。 谢谢。
$ dpkg -I bsdgames_2.17-21_amd64.deb | grep Depends Depends: libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libncurses5 (>= 5.5-5~), libstdc++6 (>= 4.1.1), libtinfo5, wamerican | wordlist $ apt-cache policy libc6 | grep Installed Installed: 2.15-0ubuntu10.5 $ apt-cache policy libgcc1 | grep Installed Installed: 1:4.6.3-1ubuntu5 ... $ apt-cache policy wamerican | grep Installed $ apt-cache policy wordlist | grep Installed
然后我知道两个依赖关系丢失,包无法安装。
但是我必须手动执行此程序,是否有任何自动命令检查?
谢谢您的帮助。
一个简单的事情可能是像这样运行一个模拟命令。
apt-get --simulate install task-kde-desktop
运行该命令时,您可能会得到一长串软件包,除了主软件包以外,还会安装这些软件包。 那些将是依赖关系。
因此,如果我尝试安装task-kde-desktop,这将给我列出所有将作为依赖项安装的软件包。
apt-get --simulate install task-kde-desktop | awk '/^Inst / {print $2}' | grep -v 'task-kde-desktop'
既然你正在试图直接安装一个dpkg文件,你可能想看看安装和使用gdebi工具。 Gdebi (man)基本上会安装一个dpkg,并尝试为你处理依赖关系。