在升级我的 Linux 发行版之前,我想升级我的所有软件包 - 但是,我想坚持使用我当前的 MySQL 版本(5.6)。
我知道有一个选项可以保留包裹,就像这样:
sudo aptitude hold package_name
当我运行时sudo apt-get upgrade
,列出了以下 MySQL 包:
mysql-客户端-5.6 mysql-客户端-核心-5.6 mysql-通用 mysql-通用-5.6 mysql-服务器-5.6 mysql-服务器-核心-5.6
我可以将它们全部hold
作为参数传递给命令吗?或者有没有更简单的方法来阻止我的 MySQL 升级?
注意:我在虚拟机中工作,所以没有可以使用的 GUI,只有终端。
更新
好的,我试过了,是的,您可以将所有包传递给命令hold
,并且它们将不会被升级。
我仍然不确定仅保留这些包是否足以防止 MySQL 升级(也许其他特定于 MySQL 的包也应该保留?)。例如,下面的命令将保留许多名称中带有“mysql”的包,我不知道它们是否相关:
sudo aptitude mysql-*
答案1
看起来你已经找到答案了。但是你编辑后又询问了另一个人。
我仍然不确定仅保留这些包是否足以防止 MySQL 升级(也许其他 MySQL 特定的包也应该被保留?)。
答案是不需要。只要你持有其他包所依赖的核心包,就不需要持有每个包。例如,mysql-server、mysql-client 包依赖于 mysql-common(据我所知),因此,只持有这个包就足够了。
它aptitude
比一般情况更智能apt
,并且应该了解您想要什么。
已更新,已验证
为了验证答案,我实际上对libgtk-3-0
几乎所有 gtk-3 应用程序的核心包进行了测试。我有某个版本的3.18
。然后我启用了一个提供版本的存储库3.20
。nautilus
依赖于此包,并且该存储库还提供更高版本的nautilus
。
当尝试aptitude upgrade -s
(-s
用于模拟)时,它列出了要更新的软件包。nautilus
不存在,因为libgtk-3-0
不会更新新版本所需的软件包。
另一种选择是通过在目录中创建文件来固定软件包/etc/apt/preferences.d
,这提供了更多选项和灵活性。在你这个简单的情况下,这不是必需的,但了解一下也无妨 :)如何进行 Apt Pinning