准备Ubuntu机器进行升级

准备Ubuntu机器进行升级

Debian / Ubuntu升级机制是一个很棒的软件。 当新版本发布时,只需按照更新管理器提供的指示信息,升级将几乎自动完成。 有时Ubuntu要求您进行其他更改而不是升级程序本身想要的帮助。 这个howto提供了一些有关如何使Ubuntu安装更加升级友好的技巧。 我在Ubuntu安装中进行了测试,但是Debian中这个方法的机制不应该有所不同。

升级之前

升级时,请拿笔和一张纸。 对于某些包,您被要求在原始设置文件或包维护者版本之间进行选择。 在这种情况下,请记下该文件的名称,然后选择“替换为维护者版本”。 这是一件安全的事情,因为升级程序将会备份旧文件。 在升级过程中,系统处于半工作状态,所以您最喜欢的差异编辑器可能根本不起作用。 因此,我们让升级程序先完成工作,稍后修复自己的设置。

如果你还没有一个喜欢的diff编辑器,那么在开始升级之前先安装一个。 就我个人而言,我喜欢融合

灵活的设置机制

一些软件包带有可以包含文件或目录的设置机制。 示例是apache,PHP,gdm和MySQL。
例如,您可以将文件放在/etc/mysql/conf.d/中 ,以容纳/etc/mysql/my.cnf的覆盖 。 这样的文件应该只包含你真正要强制执行的设置。 所以如果你只是想在另一个服务器模式下运行MySQL,这个文件可能包含:

#
# The MySQL database server configuration file, overrides.
#
[mysqld]
# Added myself to make the development environment as strict and talkative as possible:
sql_mode="ANSI,STRICT_ALL_TABLES,TRADITIONAL,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

对于MySQL,覆盖文件必须具有扩展名.cnf。 这可以在安装的设置文件/etc/mysql/my.cnf中看到 。 一般来说,当您更改配置文件时,请阅读注释,并查看是否提及包括其他文件。

如果您使用设置覆盖文件,则您的配置将被分解为由软件包管理器安装的“基本”安装程序,以及一个包含自己设置的“详细”部分。 升级程序只会触及基本设置,而不是覆盖。 使用此机制,升级程序不需要询问您使用哪些设置。

程序未知到程序包系统

编译或安装软件包管理系统未知的程序通常没有问题。 但是,如果该软件满足其他程序的依赖性,您的软件包管理系统可能会尝试强制其替代方案。
例如,我安装了The Abyss网络服务器,它安装了一个安装程序,但不是Debian或Ubuntu软件包。 您可以使用不同的Web服务器安装很多软件包,但是某些软件包被标记为依赖于一个软件包,并尝试与它们一起安装Apache。 特别是因为Ubuntu将推荐的软件包标记为依赖关系,所以将默认替代品从系统中保留下来变得更加困难。

您安装或编译的大多数程序不是其他软件包依赖的系统服务的替代方法,因此仅使用以下内容来保持与Ubuntu奇怪程序冲突的备选方案。

有一种方法让包管理器知道你满足一个未知程序的依赖。 为此,请从正常的存储库安装equivs包。

您可以使用equivs创建一个没有内容的包,而不是包管理器的依赖关系信息。 我们可以制作一个软件包,告诉软件包管理器有一个Web服务器。 要做到这一点,打开一个终端并做一个配置文件:

equivs-control webserver.txt

您现在有一个配置文件webserver.txt可以编辑,以便稍后构建一个.deb包。 Web服务器在包管理器中称为“httpd”,因此文件中必须至少为“提供:httpd”。 填写其他必要和有用的信息(包名称和描述和您的名称,以便您可以立即识别),并构建一个包:

equivs-build webserver.txt

这将导致.deb文件,您可以使用gdebi进行安装。 请注意,软件包本身仍然没有与Web服务器本身连接。 因此,如果您卸载我的Web服务器,您也应该卸载该软件包。 上面创建的包仅用于通知包管理器的依赖关系。

升级后

升级作业完成后,系统将要求您重新启动计算机。 这是使用diff编辑器将您自己的设置与新的默认值合并的时候了。 旧文件通常会得到扩展名,如.dist-upgrade.ucf-old 。 例如,如果您使用meld作为diff编辑器并要修复/etc/samba/smb.conf ,请转到其目录并使用两个文件启动差异编辑器:

cd /etc/samba/
sudo meld smb.conf smb.conf.ucf-dist

然后,您将看到两个文件并排,突出显示的差异以及编辑它们的可能性。 一旦你修复了你记下的所有设置文件,就可以按照你的机器的建议重启了。

当事情错了

通常,升级只需要一段时间即可完成,有时要求您决定设置文件。 但偶尔会有事情会出错。 如果您的机器在分发升级过程中停止,您别无选择,只能关闭计算机。 这是一个可怕的事情,因为系统现在处于半工作状态:某些库已经安装和升级,有些库不是。 升级失败后重新启动计算机时,首先要完成升级。 幸运的是, apt-get在其错误消息中非常清楚,并将引导您完成其余的升级过程。 要使apt-get检查其状态并指导您完成其余的升级,只需启动终端并键入:

sudo apt-get update

如果您在适用的情况下遵循上述提示,则可以在升级过程中提出较少问题的系统,并且不会对Ubuntu-strange软件造成不必要的替代方案。 享受下一个Ubuntu版本!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏