主要是基于 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-all
with dpkg
。
警告:仅尝试应用程序。不要尝试系统包。如果有任何破损,会给你带来麻烦