主要是基于debian/apt-get的系统(但对于其他人,比如Arch,答案也不错)。
执行apt-get install package安装最新版本的“包”可用,并且(如果必要的话)将所有依赖项升级到最新版本的“包”所需的任何版本。
是否有一种方法来尝试安装,而不是包的绝对最新版本,而是不需要更新任何现有依赖项的最新版本?
发布于 2016-03-28 19:23:41
不是直接的,不是,因为包列表和镜像是如何工作的。
为了使包管理器能够做到这一点,它不仅需要知道系统中每个包的依赖关系,还需要知道过去每个包的依赖关系。很快就会变得臃肿起来。
其次,更重要的是,我们必须考虑镜子。总的来说,镜像是由志愿者运行的,从本质上来说,镜像占用了相当大的磁盘空间。因此,镜像通常通过rsync操作与规范源同步,该操作删除源上不存在的任何文件--因此删除了旧版本的包。这就是为什么在快速移动的发行版(如Arch)中,有时执行“安装”命令而不首先执行“更新”命令将导致404 --您的本地包管理器所知道的最新版本已经被替换。对于您建议发生的事情,镜像必须大幅扩展其磁盘使用,以保持旧版本的软件包。
大多数发行版也会在最新版本的软件包上进行测试,因此,通过使用未修补的系统,您将进入不受支持的领域。
从安全的角度来看,你真的很想尽可能地更新你的发行版。
总的来说,您应该保持最新的状态。如果有什么东西阻止你这样做,你应该重新考虑一下这种情况,看看你能不能解决它。
发布于 2016-03-30 09:46:37
尽管强烈建议保持所有包(包括依赖项)都是最新的。我认为你的要求可以实现如下。这可能有点麻烦了。
运行命令apt-get --print-uris --yes install package
这将给你所有软件包的URL,这些软件包都是由apt安装的。
单独手动下载主包(.deb)文件。并使用dpkg命令进行安装。
dpkg -i package.deb只要您已经有了所有所需的依赖包的最低版本,这就可以工作了。
如果仍然不成功,请尝试将--force-all与dpkg一起使用。
https://unix.stackexchange.com/questions/272682
复制相似问题