System maintenance (简体中文)

From ArchWiki
Jump to: navigation, search
翻译状态: 本文是英文页面 System_maintenance翻译,最后翻译时间:2016-06-28,点击这里可以查看翻译后英文页面的改动。

要持续使用 Arch linux,需要进行系统日常维护,每个用户都应该及时维护系统。

检查错误

systemd 服务问题

检查是否有 systemd 服务失败:

$ systemctl --failed

更多信息请参考 Systemd#Analyzing the system state.

日志文件

检查 /var/log 日志文件中是否存在错误, 检查systemd 日志中的高优先级错误:

 # journalctl -p 3 -xb

Xorg 的相关错误可以查看 Xorg#Troubleshooting

备份

把重要数据的备份作为日常维护任务。这些数据包括配置文件,安装的软件包和重要的目录例如 /etc, /home, /var 和 服务器使用的 /srv.

其它备份方案可以参考 同步和备份程序页面Category:System recovery 包含其它相关文章。

可以通过 systemd/Timers 自动备份.

配置文件

在编辑任何配置文件前,先保留备份。这样出问题是可以直接还原。vimemacs 编辑器会自动备份,etckeeper 可以将 /etc 纳入版本控制系统。

安装的软件包

维护一个所有安装软件包的列表,这样在不得己进行系统重装时,可以很快恢复到初始环境。

详情参考 Pacman tips#List of installed packages

Pacman 数据库

参考 Pacman tips#Back-up the pacman database.

LUKS headers

如果 LUKS 使用密码加密,建议定期检查和同步 LUKS 加密分区的头部数据。参考 Dm-crypt/Device encryption#Backup and restore.

更新系统

建议日常进行系统完整更新,这样既能享受到最新的问题修复和安全更新,还可以避免一次更新太多的软件包,手动处理是分批进行的。参考Pacman#Upgrading packages.

手头上保留 Arch 安装盘或其它 Linux "Live" 环境,这样有问题是可以进行修正。如果在生产环境使用 Arch,无法接受任何的停机,那么在更新前请在非关键系统上测试新配置文件和软件包,没有问题的时候再部署到生产环境。

如果软件包来自 AUR, 请注意更新完整.

避免某些 Pacman 命令

避免 部分更新,不要运行 pacman -Sy 而是运行 pacman -Syu.

避免 pacman 的 --force 选项,尤其是 pacman -Syu --force 这种可能更新多个软件包的时候。--force 忽略文件冲突,可能导致文件丢失!如果系统按正常维护,这个选项仅应该在 Arch 开发者明确指导的情况下使用,在 Arch 主页会有通知。

避免使用 -d 选项,pacman -Rdd package 会在删除软件包时跳过依赖关系检查。如果删除了系统必要的依赖关系,可能导致系统损坏。

不支持部分升级

Arch Linux 是滚动发行版,新 版本将不断被推送到源。开发者和信任用户会按照需要重新构建源中的所有软件包。如果有本地安装的版本(例如 AUR 软件包),需要在它们的依赖关系升级了soname时重新编译。

也就是说,部分升级是不被支持的

不要使用 pacman -Sy package 或等价命令如 pacman -Sy 之后再 pacman -S package。在安装软件包前请更新源并升级。同理请特别注意 IgnorePkg/IgnoreGroup 的使用。

如果进行了部分升级,二进制包因为找不到链接库而损坏,不要通过简单的符号链接进行修正。库升级 soname 是因为它们不再向前兼容。只要 pacman 可以运行,使用更新的源进行 pacman -Syu 就能修复这些问题。

pacman 软件包提供的 checkupdates 脚本可以检查更新但不进行实际安装,参考 BBS##1563725.

更新系统前检查消息

在升级Arch前, 一定要阅读Arch News来确认是否有重要的软件更改,最新的软件包是否有配置文件更改. 在更新kernel, xorg, systemdglibc等重要软件之前, 查看论坛看是否有被报告的出错等问题.

注意更新时的提醒

当升级系统时, 请一定要注意pacman输出的注意信息。 如果有需要用户手动操作的,请一定要立即搞定。 如果不明白 pacman 输出的信息, 请去论坛搜索或者看Arch Linux首页的新闻。

处理配置文件更新

pacman 可能会创建 .pacnew.pacsave 文件,这是 pacman 会通知用户,而用户需要主动处理这些文件。详细的操作说明请参考:Pacnew and Pacsave files.

同样,注意所有你可能会复制或创建的配置文件。如果软件包提供了一个空配置文件,这个文件被复制到主目录,请注意查看示例文件是否有更新。

回退有问题的更新

如果软件包可能导致问题,软件包维护者会在更新时给出提示信息。在更新后遇到问题,请先确认 /var/log/pacman.log 中有没有提醒信息.然后看看 https://www.archlinux.org/ 中有没有新闻,然后再到论坛上查找类似的问题,如果都没有找到,可用到 论坛, IRC 中发帖求助。

降级 是最后的解决方案。

使用包管理器安装软件

软件包管理 pacman 可以比你更好的记录安装的文件。如果你手动地安装软件,你会过了一会就不知道你到底安装了什么,到底安装在哪里,安装导致的那些冲突,是否安装在了错误的地方,等等问题. 避免安装自编译的软件包,可以自己创建软件包

要清理自己安装的文件,可以这里.

选择开源驱动

尽可能地选择开源驱动。避免私有驱动。大多数时候,开源驱动比私有驱动更加稳定可靠。开源驱动的bugs修改起来比较容易快速,但同时私有驱动提供更多的特性和性能,不过也可能带来稳定性的代价。为了避免这个两难选择,可以选择已知的有很好的开源驱动支持的硬件。关于硬件和开源Linux驱动的信息可以在这里找到:linux-drivers.org.

谨慎使用非官方或测试不足的软件包

在使用 AUR 或 非官方软件仓库中的软件包时应有预防措施。大部分软件包都是由用户提供的,并不能提供和官方软件仓库相同的质量。谨慎使用 AUR helpers ,他们简化了 AUR 中的软件包的安装过程, 在编译和安装 AUR 中的软件包之前,务必检查软件包的 PKGBUILD 确保其中不含有错误或恶意的代码。

只在绝对必要的情况下使用第三方的软件仓库.pacman/Tips and tricks#Maintenance提供了清理软件的方法。

更新镜像列表

镜像的质量会随着时间而变化,有些镜像会下线或者同步和下载出问题,所以请注意更新 pacman 的镜像列表,详情参考 mirrors

清理文件系统

检查磁盘空间的使用状况,删除占用空间较大的无用文件:

软件包缓存

/var/cache/pacman/pkg/ 删除不需要的 .pkg 可以减少空间占用。详情参考 Pacman#Cleaning the package cache.

不需要的软件包

从系统里面删除不需要的软件包可以减少空间占用和维护难度。详情参考 Pacman/Tips and tricks#Removing unused packages (orphans).

旧配置文件s

旧的配置文件可能和新软件版本不兼容,所以请定期清理和更新配置文件,尤其是主目录和 ~/.config. 在重新安装或共享 /home 时,注意下面文件夹:

  • ~/.config/ -- 软件保存配置文件的地方
  • ~/.cache/ -- 程序缓存大小可能持续增加
  • ~/.local/share/ -- 可能有旧文件

参考 XDG Base Directory support.

为了帮助清理 home 目录,建议维护一份不需要的文件列表并定期清理,例如使用 rmshit.py.

rmlint 也可以用来查找不需要的重复文件,空文件和损坏的软链接。

破损的软链接

系统中可能存在老的,损坏的软链接,应该删除它们。方法可以参考 herehere.

下面命令可以列出所有有问题的软链接,可以检查并删除列表中的文件。

# find . -type l -! -exec test -e {} \; -print

技巧

使用经过验证的软件包

Arch 的滚动发行让用户可以使用最新的功能和上游更新,但是这也增加了系统维护的难度。为了增加稳定性,可以尽量使用经过验证的稳定版本。这些软件包不太容易在升级时遇到问题。选用具有活跃开发社区的软件,选用用户能力更出众的软件,这样在出问题是更容易获得帮助。

避免使用测试仓库,这些软件包都是实验性质,不适合安装到稳定系统。因此对于AUR中的包以及部分 community 中的包需要一些谨慎,这些开发中的包是直接从上游开发版分支中获取到的,通常会在包的名字上注有:dev, devel, svn, cvs, git, hg, 或是 darcs 的信息。

安装内核的长期支持版本

linux-lts 是 Arch 官方提供的 Linux kernel 的长期支持版本。内核上游开发者针对此版本提供了长期支持,包括安全补丁和功能 backports。适用于需要长期支持的用户,也可以将此内核作为新内核升级的后备内核。

需要编辑 bootloader 的启动加载项,启动到 vmlinuz-linux-ltsinitramfs-linux-lts.img

参阅