如何恢复被 aptitude 降级的软件包?

如何恢复被 aptitude 降级的软件包?

我正在安装佛沙爾

在全新的搭载 Debian10 的 vps 中,该命令运行完美。

wget -O- http://neuro.debian.net/lists/buster.au.full | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list
sudo apt-key adv --recv-keys --keyserver hkp://pool.sks-keyservers.net:80 0xA5D32F012649A5A9
sudo apt-get update
sudo apt-get install fsl-core

但是,当我尝试在自己的电脑上安装它时(与 Debian10 完全相同的版本),它说

The following packages have unmet dependencies:
fsl-5.0-core : Depends: libnifti2 but it is not installable
                Recommends: fsl-5.0-eddy-nonfree but it is not installable
                Recommends: fslview but it is not installable
E: Unable to correct problems, you have held broken packages.

记得一个月前安装fail2ban的时候,我用的是aptitude而不是apt-get,aptitude建议降级一些软件包,我就照做了。我怀疑未满足的依赖关系与那些降级的软件包有关。由于我的电脑上只安装了几个软件,包括debian-desktop、vncserver、两个杀毒软件和fail2ban。除了fail2ban,其他都是用apt-get安装的。

但是,删除fail2ban后,我仍然无法安装fsl。我使用aptitude来查找详细信息

sudo aptitude install fsl-core

它说

The following packages have unmet dependencies:
 libnifticdf2 : Breaks: libnifti2 (<= 3.0) but 2.0.0+git186-g84740c2-1 is to be installed
 libniftiio2 : Breaks: libnifti2 (<= 3.0) but 2.0.0+git186-g84740c2-1 is to be installed

顺便说一句,错误消息令人困惑,它需要 libnifti2<=3.0,而要安装的是 2.0,显然要求已经满足。我不知道为什么这会破坏依赖关系。

有什么方法可以恢复由 aptitude 导致的降级软件包?

答案1

这种版本偏差可能是由于某些第三方软件包严重过时(不是您发行版的官方软件包)造成的。查看基础软件和软件包是否仍在积极维护(可能由其他人维护,或者移至其他场所,例如从 Sourceforge 移至 Github);如果以上都不是,请当然你已经清楚“你完全靠自己”的意思了。寻找替代方案。

检查依赖关系(注意,可能存在间接依赖关系!)。

尝试联系包装商,他很可能不是最初编写该程序的人。也许有人负责您发行版中的软件包。

获取源代码包,获取最新的上游源代码的副本,并制作您自己的包(请注意,可能存在特定于分发的补丁 - 例如,对于配置文件的位置或命名之类的内容 - ,自此之后已在上游修复的错误 - 或者没有,等等;所有这些都可能需要一些整理/移植工作)。

相关内容