安装不需要更新依赖项的最新版本的包

安装不需要更新依赖项的最新版本的包

主要是基于 debian/apt-get 的系统(但像 Arch 这样的其他人的答案也很好)。

安装apt-get install package可用的最新版本的“包”,并(如有必要)将所有依赖项升级到最新版本的“包”所需的任何版本。

有没有办法尝试安装,不是包的绝对最新版本,而是安装的最新版本不会需要更新任何现有的依赖项吗?

答案1

不是直接的,不是,这是由于包列表和镜像的工作方式造成的。

为了使包管理器能够做到这一点,它不仅需要知道系统中每个包的依赖关系,还需要知道每个包的依赖关系在过去的每个时间点。这很快就会开始变得臃肿。

其次,更重要的是,我们必须考虑镜子。镜像总体上是由志愿者运行的,并且就其本质而言,会占用相当多的磁盘空间。因此,镜像通常通过 rsync 操作与规范源同步,该操作会删除源上不存在的任何文件 - 因此旧版本的包将被删除。这就是为什么在快速发展的发行版(如 Arch)中,有时在没有先执行“更新”命令的情况下执行“安装”命令会导致 404 - 您的本地包管理器知道的最新版本已被替换。对于像您建议发生的事情,镜像必须大幅扩展其磁盘使用量以保留旧版本的软件包。

大多数发行版还会在最新(针对该版本)的软件包上进行测试,因此通过使用未打补丁的系统,您将进入不受支持的领域。

从安全角度来看,您也确实希望您的发行版始终保持最新状态。

总的来说,您应该保持更新。如果有什么事情阻止你这样做,你应该重新考虑情况并看看是否可以解决。

答案2

尽管强烈建议使所有包(包括依赖项)保持最新。我认为您的要求可以通过以下方式实现。这可能有点拐弯抹角。

运行命令apt-get --print-uris --yes install package

这将为您提供 apt 安装的所有软件包的 URL。

单独手动下载主包 (.deb) 文件。并且,使用 dpkg 命令安装。

dpkg -i package.deb

只要您已经拥有依赖包的所有最低必需版本,此操作就可以工作。

如果仍然不成功,请尝试使用--force-allwith dpkg

警告:仅尝试应用程序。不要尝试系统包。如果有任何破损,会给你带来麻烦

相关内容