如何安装软件包并强制降级其所有所需的依赖项

Sog*_*tar 6 package-management apt dpkg dependencies downgrade

假设我有一个包裹mypack。它有大量的依赖项,这些依赖项本身也有大量的依赖项。我想一步安装它,同时它的所有依赖项也会自动降级。我努力了

apt-get --allow-downgrades --allow-change-held-packages install mypack
Run Code Online (Sandbox Code Playgroud)

但它拒绝降级某些已安装的软件包。

如果某个其他包或其某些依赖项与其依赖项发生冲突,mypack则应删除其他包。

有可用的解决方案还是我必须自己编写脚本?

更新

我尝试安装特定版本,但在某些情况下它不起作用。

apt-get --allow-downgrades --allow-change-held-packages install mypack=1.2.3
Run Code Online (Sandbox Code Playgroud)

Com*_*lio 1

这可能不适用于您的情况,但我遇到了同样的问题,并且我能够通过将存储库中的包设置为比当前安装的包具有更高的安装优先级来解决它:

cat << EOF > /etc/apt/preferences.d/99tmp
Package: *
Pin: origin ""
Pin-Priority: 1001
EOF
Run Code Online (Sandbox Code Playgroud)

^^ 请注意,我使用的是本地存储库,因此您可能需要类似“Pin: origin deb.debian.org”的内容。