今天早上,我在笔记本电脑上运行了更新管理器(我运行的是 11.04),然后收到一条消息,说我只能运行部分更新。由于我刚接触 Ubuntu,我不知道该怎么办,但它似乎想进行一些更新,但不是全部,甚至删除了一些东西。它给出了几个可能的原因,其中之一是这种情况可能发生在“预发布版本”上。由于 11.10 将于下周发布,我想这可能是原因,所以我继续进行。
几个小时后,我在台式电脑上运行了更新管理器,并得到了同样的选择。由于它似乎在我的台式电脑上起作用了,所以我选择让它也应用“部分更新”。
从那时起,我在两台电脑上都发现了一些小错误。虽然不是什么大问题,但我以前从未遇到过。在软件中心的历史记录文件夹中,没有列出今天已应用的更新。
所以我的问题是,当更新管理器想要运行部分更新时,这是什么意思?最好不要接受它(因此不进行任何更新)吗?
答案1
概括
或者“我不太在意我是否继续把事情搞砸,并浪费我和其他人的时间来解决可预防的问题,而你有 30 秒的时间来说服我关心!”
如果您使用更新管理器升级软件包,并且它提供“部分升级”,请不要接受它,除非您仔细检查它提供哪些软件包供您删除、升级和安装。如果您这样做,您很可能会删除不应该删除的软件包,并浪费时间和精力修复您的安装并寻求帮助。
大多数“部分升级”情况都是由于软件包存档不一致而发生的,通常会在几个小时内解决。如果您的软件包管理员和您一样感到困惑,只需等待并推迟更新,直到问题解决。
简洁版本
或者“嗯,所以我不应该盲目地进行“部分升级”和 dist-upgrade?我不知道......”
由于镜像存储库的上传和复制有时不同步,某些软件包的依赖项可能比依赖软件包晚到达。这会导致软件包管理工具(如 Update Manager)将这种情况解释为需要 dist-upgrade 来安装新软件包和/或修复处于“reqreinst”(需要重新安装)状态的软件包。Update Manager 在执行“部分升级”时执行的就是 dist-upgrade。
大多数情况下,“部分升级”是不需要的。需要升级的情况仅限于新软件包取代旧软件包(例如软件中心软件包取代软件商店的情况)以及从存档中删除软件包。
长版本
或“我想我知道自己在做什么!告诉我更多!”
在正常运行模式下,更新管理器不会建议删除软件包。这相当于对现有软件包执行“apt-get upgrade”。在“部分升级”模式下,它可以。有时,删除是合理的,例如当某个软件包被新软件包取代时。其他时候,则不会,并且“部分升级”可以建议删除由于缺少依赖项而重要的软件包。
现在,关键问题是:
“我怎么知道一个包裹是否真的需要被替换或移除?”
方法不止一种:
检查相关软件包的更新日志。您可以通过 Synaptic 中的“软件包 > 下载更新日志”或“aptitude changelog package_name”来执行此操作,或者转到 packages.ubuntu.com 并单击您感兴趣的软件包的“Ubuntu 更新日志”,或访问 URL
https://launchpad.net/ubuntu/+source/package_name/+changelog
其中 package_name 是您想要了解的源包的名称。最新的变更日志条目将指示删除或替换的原因(如果有)。
有关使用最近更改列表来确定软件包删除和“部分升级”是否安全的示例场景,请参阅下一篇文章。
检查 Ubuntu 的构建状态信息页面和 Launchpad 上 Ubuntu 版本(例如 Natty)的新上传队列,查看那些神秘的缺失依赖项是否正在流传,或者是否存在阻止它们构建的问题。
进行论坛搜索/AskUbuntu,或加入 irc.freenode.net 上的 #ubuntu+1 频道并询问其他人是否遇到了相同软件包的问题。
如果您仍然感到困惑,只需等待,看看问题是否会在几个小时内神奇地得到解决。如果没有,请就同一问题开始新的帖子或发帖到现有帖子中,与其他人核实。
与包管理器的典型交互涉及以下三个步骤:
您选择一些要安装/删除/升级的软件包
包管理器根据其包管理逻辑、可用的软件源以及你指定的优先级(如 APT 固定)(如果有)来解析你的意图,并将其执行一组操作,然后输出这些操作的列表
您检查此列表,如果满意则确认,如果满意则取消并优化您的选择,直到您满意为止。
如果您跳过第三步,认为只需更新软件包信息并在出现提示时点击“应用”或按“Enter”即可获得最新更改 - 您将不必要地破坏安装。不要这样做。查看更改列表。