跳转到内容
openSUSE Leap 15.6

启动

发布日期: 2024年6月10日
关于本指南
可用文档
改进文档
文档约定
源代码
致谢
I 安装
1 安装快速入门
1.1 获取 openSUSE Leap
1.2 最低系统要求
1.3 安装 openSUSE Leap
2 启动参数
2.1 使用默认启动参数
2.2 PC (AMD64/Intel 64/AArch64)
2.3 重要启动参数列表
2.4 高级设置
2.5 更多信息
3 安装步骤
3.1 概述
3.2 安装程序自更新
3.3 语言、键盘和许可协议
3.4 网络设置
3.5 在线仓库
3.6 系统角色
3.7 分区
3.8 时钟和时区
3.9 创建新用户
3.10 系统管理员 root 的身份验证
3.11 安装设置
3.12 执行安装
4 故障排除
4.1 检查介质
4.2 没有可引导驱动器
4.3 从安装介质启动失败
4.4 启动失败
4.5 图形安装程序无法启动
4.6 仅显示最小启动屏幕
II 管理
5 使用 YaST 管理用户
5.1 YaST 用户和组管理对话框
5.2 管理用户帐户
5.3 用户帐户的其他选项
5.4 更改本地用户的默认设置
5.5 将用户分配到组
5.6 管理组
5.7 更改用户身份验证方法
5.8 默认系统用户
5.9 默认系统组
6 使用 YaST 更改语言和国家/地区设置
6.1 更改系统语言
6.2 更改国家/地区和时间设置
7 打印机操作
7.1 CUPS 工作流程
7.2 连接打印机的方法和协议
7.3 安装软件
7.4 网络打印机
7.5 使用命令行工具配置 CUPS
7.6 从命令行打印
7.7 openSUSE Leap 中的特殊功能
7.8 故障排除
8 使用 FUSE 访问文件系统
8.1 配置 FUSE
8.2 挂载 NTFS 分区
8.3 使用 SSHFS 挂载远程文件系统
8.4 挂载 ISO 文件系统
8.5 可用的 FUSE 插件
8.6 更多信息
III 管理和更新软件
9 安装或删除软件
9.1 术语定义
9.2 使用 YaST 软件管理器
9.3 管理软件仓库和服务
9.4 GNOME 包更新程序
9.5 使用 GNOME Software 更新软件包
10 安装附加产品
10.1 附加组件
10.2 二进制驱动程序
11 YaST 在线更新
11.1 在线更新对话框
11.2 安装补丁
11.3 查看撤回的补丁
11.4 自动在线更新
12 升级系统和系统更改
12.1 升级系统
12.2 更多信息
IV Bash shell
13 Shell 基础知识
13.1 启动 shell
13.2 输入命令
13.3 获取帮助
13.4 处理文件和目录
13.5 成为 root
13.6 文件访问权限
13.7 Bash 的省时功能
13.8 编辑文本
13.9 搜索文件或内容
13.10 查看文本文件
13.11 重定向和管道
13.12 启动程序和处理进程
13.13 归档和数据压缩
13.14 重要的 Linux 命令
14 Bash 和 Bash 脚本
14.1 什么是“shell”?
14.2 编写 shell 脚本
14.3 重定向命令事件
14.4 使用别名
14.5 在 Bash 中使用变量
14.6 分组和组合命令
14.7 使用常见的流程结构
14.8 更多信息
V 硬件配置
15 设置系统键盘布局
16 设置声卡
17 设置打印机
17.1 配置打印机
17.2 使用 YaST 配置网络打印机
17.3 通过网络共享打印机
18 设置扫描仪
18.1 配置惠普一体机
18.2 通过网络共享扫描仪
18.3 通过网络扫描
19 持久内存
19.1 简介
19.2 术语
19.3 用例
19.4 管理持久内存的工具
19.5 设置持久内存
19.6 更多信息
VI 帮助和故障排除
20 帮助和文档
20.1 文档目录
20.2 Man 页面
20.3 Info 页面
20.4 在线资源
21 常见问题及其解决方案
21.1 查找和收集信息
21.2 启动问题
21.3 登录问题
21.4 网络问题
21.5 数据问题
A GNU 许可协议
A.1 GNU 自由文档许可协议

版权所有 © 2006–2024 SUSE LLC 及其贡献者。保留所有权利。

在 GNU 自由文档许可协议第 1.2 版或(可选)第 1.3 版的条款下,允许复制、分发和/或修改本文档,其中本版权声明和许可协议为不变部分。许可协议第 1.2 版的副本包含在题为 GNU 自由文档许可协议 的章节中。

有关 SUSE 商标,请参阅 https://www.suse.com/company/legal/。所有第三方商标均为其各自所有者的财产。商标符号(®、™ 等)表示 SUSE 及其关联公司的商标。星号 (*) 表示第三方商标。

本书中的所有信息均经过仔细核实。但是,这不能保证完全准确。SUSE LLC、其关联公司、作者和译者对可能出现的错误或由此产生的后果不承担任何责任。

关于本指南 编辑源文件

本手册将指导您与 openSUSE® Leap 的初步接触。 学习如何安装、使用和享受您的系统。

安装

指导您完成安装过程和系统的基本配置。 快速入门部分展示了使用默认值进行安装的快速演练。 本章的第二部分提供了每个安装步骤的详细信息。

管理

介绍 YaST,这是安装和配置系统的中央工具。 学习如何初始设置系统以及如何修改系统的关键组件。

管理和更新软件

了解如何使用 YaST 或命令行安装或删除软件,如何使用一键安装功能,以及如何保持系统最新。

Bash shell

学习如何使用 bash shell,这是 openSUSE Leap 上的默认命令行解释器。 了解最常用的 Linux 命令并理解 Linux 系统的基本概念。

帮助和故障排除

概述了在您需要更多信息或想要使用系统执行特定任务时,在哪里找到帮助和附加文档。 此外,还汇编了最常见的问题和烦恼,并学习如何自行解决这些问题。

1 可用文档 编辑源文件

在线文档

我们的文档可在 https://doc.opensuse.net.cn 上在线获取。浏览或下载各种格式的文档。

Note
注意:最新更新

最新的更新通常可在本文档的英文版本中获得。

SUSE 知识库

如果您遇到问题,请查看在线提供的技术信息文档 (TID),网址为 https://www.suse.com/support/kb/。搜索 SUSE 知识库,以获取由客户需求驱动的已知解决方案。

在您的系统中

为了离线使用,发布说明也可用在您的系统上的 /usr/share/doc/release-notes 下。各个软件包的文档可用在 /usr/share/doc/packages 下。

许多命令也在其 手册页 中进行了描述。要查看它们,请运行 man,后跟特定的命令名称。如果您的系统上未安装 man 命令,请使用 sudo zypper install man 进行安装。

2 改进文档 编辑源文件

欢迎您对本文档提出反馈和贡献。以下是提供反馈的渠道:

错误报告

请在 https://bugzilla.opensuse.org/ 上报告文档问题。

为了简化此过程,请单击 HTML 版本本文档中标题旁边的 报告问题 图标。这将预先选择 Bugzilla 中的正确产品和类别,并添加指向当前章节的链接。您可以立即开始编写错误报告。

需要一个 Bugzilla 帐户。

贡献

要贡献本文档,请单击 HTML 版本本文档中标题旁边的 编辑源文档 图标。这将带您到 GitHub 上的源代码,您可以在那里打开一个拉取请求。

需要一个 GitHub 帐户。

Note
注意:编辑源文档 仅适用于英文

编辑源文档”图标仅适用于每份文档的英文版本。对于所有其他语言,请改用“报告问题”图标。

有关用于本文档的文档环境的更多信息,请参阅存储库的 README 文件。

邮件

您还可以将错误报告和有关文档的反馈发送至 <>。请包含文档标题、产品版本和文档的发布日期。此外,请包含相关的章节编号和标题(或提供 URL),并提供问题的简洁描述。

帮助

如果您在 openSUSE Leap 上需要进一步的帮助,请参阅 https://en.opensuse.net.cn/Portal:Support

3 文档约定 编辑源文件

本文档中使用了以下通知和排版约定:

  • /etc/passwd:目录名和文件名

  • 占位符:将 占位符 替换为实际值

  • PATH:环境变量

  • ls--help:命令、选项和参数

  • user:用户名或组名

  • 软件包名:软件包的名称

  • AltAltF1:要按下的键或键组合。键以键盘上的大写字母显示。

  • 文件文件 › 另存为:菜单项、按钮

  • 第 1 章,《示例章节:对本指南中另一个章节的交叉引用。

  • 必须使用 root 权限运行的命令。您也可以使用 sudo 命令以非特权用户的身份运行这些命令。

    # command
    > sudo command
  • 可以由非特权用户运行的命令

    > command
  • 命令可以通过行尾的反斜杠字符 (\) 分成两行或多行。反斜杠告知 shell 命令调用将在行尾之后继续。

    > echo a b \
    c d
  • 一个代码块,显示命令(前面带有提示符)和 shell 返回的相应输出。

    > command
    output
  • 通知

    Warning
    警告:警告通知

    在继续之前您必须了解的重要信息。警告您有关安全问题、潜在的数据丢失、硬件损坏或物理危害。

    Important
    重要:重要通知

    在继续之前您应该了解的重要信息。

    Note
    注意:注意通知

    其他信息,例如关于软件版本差异的信息。

    Tip
    提示:提示通知

    有用的信息,例如指南或实用建议。

  • 紧凑型通知

    Note

    其他信息,例如关于软件版本差异的信息。

    Tip

    有用的信息,例如指南或实用建议。

4 源代码 编辑源文件

openSUSE Leap 的源代码是公开可用的。有关下载链接和更多信息,请参阅 https://en.opensuse.net.cn/Source_code

在大量的志愿承诺下,Linux 的开发者在全球范围内合作,以促进 Linux 的发展。我们感谢他们的努力——没有他们,本发行版将不存在。当然,特别感谢 Linus Torvalds。

第 I 部分 安装 编辑源文件

1 安装快速入门

使用以下步骤安装 openSUSE® Leap 15.6 的新版本。 本文档提供了在 x86_64 架构上使用默认值安装 openSUSE Leap 的快速概述。

有关更详细的安装说明,请参阅 第 3 章,安装步骤。 对于安装 AArch64 和 POWER 变体,请参阅 https://en.opensuse.net.cn/Portal:ARMhttps://en.opensuse.net.cn/Portal:PowerPC

2 启动参数

openSUSE Leap 允许在启动时设置几个参数,例如选择安装数据的来源或设置网络配置。

3 安装步骤

本章描述了将 openSUSE Leap 的数据复制到目标设备的过程。 在此过程中设置了新安装系统的基本配置参数。 图形用户界面将指导您完成安装。 文本模式安装的步骤相同,但外观不同。 有关执行非交互式自动化安装的信息,请参阅 “AutoYaST 指南”

4 故障排除

本节涵盖了几个常见的安装问题,并描述了可能的解决方案。

1 安装快速入门 编辑源文件

摘要

使用以下步骤安装 openSUSE® Leap 15.6 的新版本。 本文档提供了在 x86_64 架构上使用默认值安装 openSUSE Leap 的快速概述。

有关更详细的安装说明,请参阅 第 3 章,安装步骤。 对于安装 AArch64 和 POWER 变体,请参阅 https://en.opensuse.net.cn/Portal:ARMhttps://en.opensuse.net.cn/Portal:PowerPC

1.1 获取 openSUSE Leap 编辑源文件

要下载 openSUSE Leap,请访问 https://get.opensuse.net.cn/leap/。 在 下载 选项卡上,您将找到不同架构的下载链接

  • Intel 或 AMD 64 位台式机、笔记本电脑和服务器 (AMD64/Intel 64)

  • UEFI Arm 64 位服务器、台式机、笔记本电脑和板 (AArch64)

  • PowerPC 服务器(小端,ppc64le

  • IBM Z 和 IBM LinuxONE(IBM 服务器,s390x

您还可以选择两种不同的镜像进行下载:离线镜像和网络镜像。 有关更多信息,请查看下载页面上的文档 选择要下载的介质

有关如何创建可启动安装介质的文档也可用在下载页面上的 轻松切换到 openSUSE Leap 下。

1.2 最低系统要求 编辑源文件

  • 任何 AMD64/Intel* EM64T 处理器(不支持 32 位处理器)

  • 1 GB 物理 RAM(使用在线仓库时至少 1.5 GB,强烈建议 4 GB 或更多)

  • 10 GB 可用磁盘空间用于最小安装,16 GB 用于图形桌面(建议更多)。 如果您计划使用 Btrfs 快照,建议根分区至少为 40 GB。

  • 支持大多数现代声卡和显卡,1024 x 768 显示分辨率(建议更高)

1.3 安装 openSUSE Leap 编辑源文件

如果您的机器上没有现有的 Linux 系统,或者您想替换现有的 Linux 系统,请使用这些说明。

1.3.1 启动安装系统 编辑源文件

插入包含 openSUSE Leap 安装镜像的 DVD 或可启动 USB 驱动器,然后重新启动计算机以启动安装程序。 在具有传统 BIOS 的机器上,您将看到下面显示的图形启动屏幕。 在配备 UEFI 的机器上,将使用略有不同的启动屏幕。 UEFI 机器上的安全启动受支持。

在 BIOS 机器上,使用 F2 更改安装程序的语言。 自动选择相应的键盘布局。 请参阅 第 2.2.1 节,“具有传统 BIOS 的机器上的启动屏幕”第 2.2.2 节,“配备 UEFI 的机器上的启动屏幕” 以获取有关更改启动参数的更多信息。 在 UEFI 机器上,在下一步中调整语言和键盘设置。

在启动屏幕上选择 安装,然后按 Enter。 这将启动系统并加载 openSUSE Leap 安装程序。

1.3.2 语言、键盘和许可协议 编辑源文件

在具有传统 BIOS 的系统上,语言键盘布局 设置将初始化为启动屏幕上选择的语言。 如果您没有更改默认值,或者正在使用 UEFI 机器,则将为英语(美国)。 如果需要,在此处更改设置。 使用 键盘测试 文本框测试布局。

阅读许可协议。 它以您选择的语言呈现。 可用其他 许可翻译。 使用 下一步 继续。

1.3.3 网络设置 编辑源文件

如果无法自动配置网络,则会打开 网络设置 对话框。 从列表中选择一个网络接口并使用 编辑 进行配置。 或者,手动 添加 接口。 请参阅 第 3.4 节,“网络设置”“参考”手册,第 13 章“基本网络”,第 13.4 节“使用 YaST 配置网络连接” 以获取更多信息。 如果您希望进行不访问网络的安装,请在不进行任何更改的情况下跳过此步骤,然后使用 下一步 继续。

1.3.4 在线仓库 编辑源文件

执行系统分析,其中安装程序探测存储设备,并尝试查找其他已安装的系统。 如果有可访问互联网的网络连接,您将被要求激活在线仓库。 使用 回答以继续。 如果您没有互联网访问权限,将跳过此步骤。

在线仓库是官方的 openSUSE 包源。它们不仅提供安装介质中未包含的额外软件包,还包含包含安全性和错误修复的更新仓库。建议使用默认选择。至少添加主更新仓库,因为它确保系统安装了最新的安全补丁。

您有以下选择

  • 主仓库包含开源软件 (OSS)。与 DVD 安装介质相比,它包含许多额外的软件包,其中许多是额外的桌面系统。

  • 包含来自 SUSE Linux Enterprise 15 的更新的更新仓库openSUSE Backports 的更新仓库包含主仓库的更新。对于所有安装场景,建议选择此仓库。

  • 非 OSS 仓库包含具有专有软件许可的软件包。选择它对于安装自定义桌面系统不是必需的。

  • 如果您启用了非 OSS 仓库,请选择更新仓库 (非 OSS)。它包含相应的更新和安全修复。

  • 所有其他仓库面向有经验的用户和开发人员。单击仓库名称以获取更多信息。

使用下一步确认您的选择。根据您的选择,您需要确认一个或多个许可协议。通过选择下一步来完成,直到您进入系统角色屏幕。现在选择下一步继续。

1.3.5 系统角色 编辑源文件

通过选择桌面或服务器配置,使用此步骤选择通用的软件和系统配置。

对于桌面安装,您可以选择带有 KDE Plasma 的桌面带有 GNOME 的桌面带有 Xfce 的桌面通用桌面。KDE 和 Xfce 在某种程度上类似于 Windows。GNOME 提供了一种替代的、创新的环境。如果您更喜欢 KDE、GNOME 或 Xfce 桌面之外的替代方案,请选择通用桌面。您将在安装过程中通过选择软件安装设置对话框中选择 LXDE、MATE 等。

如果您正在设置服务器,您可能不需要图形用户界面。在这种情况下,选择服务器 (文本模式)。或者,通过选择事务服务器来设置具有只读根分区和事务更新的服务器系统。此选择也是设置 openSUSE Kubic 的先决条件。有关事务更新的更多信息,请参阅 https://kubic.opensuse.org/blog/2018-04-04-transactionalupdates/

您也可以手动选择系统的软件配置。选择自定义,然后选择下一步以进入软件选择和系统任务对话框。选择一个或多个模式进行安装。通过单击详细信息,您可以选择单个软件包。

Tip
提示:发行说明

从现在开始,可以在安装过程中的任何屏幕上通过选择发行说明来查看发行说明。

1.3.6 建议分区 编辑源文件

在此步骤中,为 openSUSE Leap 定义分区设置。查看系统建议的分区设置。如有必要,请更改它。您有以下选项

引导设置

启动一个向导,让您可以完善分区建议。此处可用的选项取决于您的系统设置。如果它包含多个硬盘,您可以选择使用哪些硬盘以及将根分区放在哪里。如果硬盘上已经包含分区,请决定是删除还是调整它们的大小。

在后续步骤中,您还可以添加 LVM 支持和磁盘加密。您可以更改根分区的文件系统,并决定是否拥有单独的主分区。

专家分区

打开专家分区,如参考手册,第 5 章“专家分区”,第 5.1 节“使用专家分区中所述。这使您可以完全控制分区设置并创建自定义设置。此选项面向专家。

Note
注意:单独的主分区

默认建议不再建议为 /home 创建单独的分区。/home 目录包含用户的数据和个人配置文件。将其放在单独的目录中可以更轻松地在未来重建系统,或者允许您在同一机器上与不同的 Linux 安装共享它。

如果您想更改建议以创建 /home 的单独分区,请选择引导设置并单击下一步,直到您到达文件系统选项屏幕。选中建议单独的主分区。默认情况下,它将使用XFS格式化,但您可以选择使用不同的文件系统。通过再次单击下一步关闭对话框。

要接受不作任何更改的建议设置,请选择下一步继续。

1.3.7 时钟和时区 编辑源文件

选择要在系统中使用的时钟和时区。要手动调整时间或配置 NTP 服务器以进行时间同步,请选择其他设置。有关详细信息,请参阅第 3.8 节,“时钟和时区”。使用下一步继续。

1.3.8 本地用户 编辑源文件

要创建本地用户,请在用户全名字段中键入名字和姓氏,在用户名字段中键入登录名,在密码字段中键入密码。

密码长度应至少为八个字符,并且应包含大写和小写字母和数字。密码的最大长度为 72 个字符,并且区分大小写。

出于安全原因,强烈建议不要启用自动登录。您还应该不要将此密码用于系统管理员,而是在下一个安装步骤中提供单独的 root 密码。

如果您在找到先前 Linux 安装的系统上安装,您可以从以前的安装导入用户数据。单击选择用户以获取可用用户帐户的列表。选择一个或多个用户。

在用户由 NIS 或 LDAP 集中管理的环境中,您可能希望跳过本地用户的创建。在这种情况下,选择跳过用户创建

使用 下一步 继续。

1.3.9 系统管理员的身份验证“root 编辑源文件

为系统管理员帐户(称为 root 用户)提供密码。

您永远不应该忘记 root 密码!输入后,无法检索密码。有关更多信息,请参阅第 3.10 节,“系统管理员 root 的身份验证”。使用下一步继续。

Tip
提示:密码和键盘布局

建议仅使用 US ASCII 字符。如果发生系统错误或需要在救援模式下启动系统,则键盘可能未本地化。

如果您想通过 SSH 登录启用无密码身份验证,可以通过导入公共 SSH 密钥导入密钥。如果您想完全禁用通过密码的 root 登录,则仅上传密钥,不要提供 root 密码。在这种情况下,只有使用相应的密钥才能通过 SSH 登录。

1.3.10 安装设置 编辑源文件

使用安装设置屏幕查看并—如果必要—更改几个建议的安装设置。为每个设置列出了当前配置。要更改它,请单击标题。可以通过单击相应的链接直接更改某些设置,例如防火墙或 SSH。

Important
重要:远程访问

您可以在稍后从已安装的系统随时进行此处所做的更改。但是,如果您需要在安装后立即进行远程访问,则必须调整安全性设置。

启动

本节显示启动加载程序配置。除非确实需要,否则不建议更改默认设置。有关详细信息,请参阅参考手册,第 12 章“启动加载程序 GRUB 2”

软件

默认软件范围包括基本系统和带有所选桌面的 X Window。单击软件可打开软件选择和系统任务屏幕,您可以在其中通过选择或取消选择模式来更改软件选择。每个模式包含用于特定功能的几个软件包(例如,Web 和 LAMP 服务器或打印服务器)。要基于要安装的软件包进行更详细的选择,请选择详细信息以切换到 YaST 软件管理器。有关更多信息,请参阅第 9 章,安装或删除软件

默认 systemd 目标

如果您选择安装桌面系统,系统将启动到图形目标,支持网络、多用户和显示管理器。如果您未安装桌面,系统将启动到登录 shell (文本模式)。

系统

通过单击系统查看详细的硬件信息。在结果屏幕中,您还可以更改内核设置—有关更多信息,请参阅第 3.11.7 节,“系统

安全性

CPU 缓解措施是指已部署用于防止 CPU 侧通道攻击的软件缓解措施的内核启动命令行参数。单击突出显示的条目以选择不同的选项。有关详细信息,请参阅参考手册,第 12 章“启动加载程序 GRUB 2” CPU 缓解措施

默认情况下,防火墙已启用,所有网络接口都配置为public区域,默认情况下所有端口都已关闭,从而确保最大安全性。有关配置详细信息,请参阅安全和加固指南,第 23 章“伪装和防火墙”

默认情况下,SSH 服务已禁用,其端口 (22) 已关闭。因此,默认情况下无法从远程登录。单击启用打开以切换这些设置。

网络配置

显示当前的網絡配置。单击网络配置以更改设置。有关详细信息,请参阅参考手册,第 13 章“基本网络”,第 13.4 节“使用 YaST 配置网络连接”

1.3.11 开始安装 编辑源文件

安装设置屏幕上完成系统配置后,单击安装。根据您的软件选择,您可能需要在安装确认屏幕弹出之前同意许可协议。到目前为止,您的系统没有进行任何更改。在第二次单击安装后,安装过程开始。

1.3.12 安装过程 编辑源文件

在安装过程中,进度将在详细信息选项卡中详细显示。openSUSE Leap 发行说明选项卡显示重要信息;建议阅读它们。

安装例程完成后,计算机将重新启动到已安装的系统。登录并启动 YaST 以微调系统。如果您不使用图形桌面或正在从远程工作,请参阅参考手册,第 1 章“文本模式下的 YaST”,了解有关从终端使用 YaST 的信息。

2 启动参数 编辑源文件

摘要

openSUSE Leap 允许在启动时设置几个参数,例如选择安装数据的来源或设置网络配置。

使用适当的启动参数有助于简化您的安装过程。许多参数也可以稍后使用 linuxrc 例程进行配置,但使用启动参数更容易。在某些自动化设置中,启动参数可以通过 initrdinfo 文件提供。

启动系统的具体方式取决于架构—例如,PC (AMD64/Intel 64) 或大型机。如果您将 openSUSE Leap 安装为 KVM 或 Xen 超visor 上的 VM 来宾,请遵循 AMD64/Intel 64 架构的说明。

Note
注意:启动选项和启动参数

术语启动参数启动选项通常可以互换使用。在本文档中,我们主要使用术语启动参数

2.1 使用默认启动参数 编辑源文件

启动参数在 第 3 章,安装步骤 中详细描述。通常,选择 安装 启动安装启动过程。

如果出现问题,请使用 安装—ACPI 禁用安装—安全设置。有关故障排除安装过程的更多信息,请参阅 第 4 章,故障排除

屏幕底部的菜单栏提供了一些在某些设置中需要的高级功能。使用功能键 (F1 ... F12),您可以指定要传递给安装例程的附加选项,而无需了解这些参数的详细语法(请参阅 第 2 章,启动参数)。可用功能键的详细说明在 第 2.2.1 节,“具有传统 BIOS 的机器上的启动屏幕” 中提供。

2.2 PC (AMD64/Intel 64/AArch64) 编辑源文件

本节描述了更改 AMD64、Intel 64 和 AArch64 的启动参数。

2.2.1 具有传统 BIOS 的机器上的启动屏幕 编辑源文件

启动屏幕显示了安装过程的几个选项。 从硬盘启动 启动已安装的系统,默认选择该选项。使用箭头键选择其他选项,然后按 Enter 启动它。相关的选项是

安装

正常的安装模式。启用所有现代硬件功能。如果安装失败,请参阅 F5内核,了解禁用潜在问题的功能的启动参数。

升级

执行系统升级。有关更多信息,请参阅 第 12 章,升级系统和系统更改

更多 › 救援系统

启动一个没有图形用户界面的最小 Linux 系统。 有关更多信息,请参阅 第 21.5.2 节,“使用救援系统” 此选项在 Live CD 上不可用。

更多 › 启动 Linux 系统

启动已安装的 Linux 系统。系统将询问从哪个分区启动系统。

更多 › 检查安装介质

只有在从下载的 ISO 创建的介质安装时,此选项才可用。在这种情况下,建议检查安装介质的完整性。此选项在自动检查介质之前启动安装系统。如果检查成功,则启动正常的安装例程。如果检测到损坏的介质,则安装例程将中止。更换损坏的介质并重新启动安装过程。

更多 › 内存测试

使用重复的读写循环测试您的系统 RAM。通过重新启动来终止测试。有关更多信息,请参阅 第 4.4 节,“启动失败”

The Boot Screen on Machines with a Traditional BIOS
图 2.1: 具有传统 BIOS 的机器上的启动屏幕

使用屏幕底部的功能键更改语言、屏幕分辨率、安装源或从您的硬件供应商添加额外的驱动程序

F1帮助

获取启动屏幕活动元素的上下文相关帮助。使用箭头键导航,Enter 遵循链接,Esc 退出帮助屏幕。

F2语言

选择显示语言和相应的键盘布局进行安装。默认语言为英语(美国)。

F3视频模式

选择安装的各种图形显示模式。通过 默认,视频分辨率使用 KMS(内核模式设置)自动确定。如果此设置在您的系统上不起作用,请选择 无 KMS,并可选地在启动命令行中指定 vga=ask 以提示视频分辨率。如果图形安装导致问题,请选择 文本模式

F4

通常,安装是从插入的安装介质执行的。在这里,选择其他源,例如 FTP 或 NFS 服务器,或配置代理服务器。

F5内核

如果您在使用常规安装时遇到问题,此菜单提供禁用一些潜在问题的功能的选项。如果您的硬件不支持 ACPI(高级配置和电源接口),请选择 无 ACPI 以在没有 ACPI 支持的情况下安装。 无本地 APIC 禁用对 APIC(高级可编程中断控制器)的支持,这可能会导致某些硬件出现问题。 安全设置 以禁用的 DMA 模式(对于 CD/DVD-ROM 驱动器)和电源管理功能启动系统。

如果您不确定,请首先尝试以下选项:安装—ACPI 禁用安装—安全设置。专家还可以使用命令行 (启动选项) 输入或更改内核参数。

F6驱动程序

按此键通知系统您有 openSUSE Leap 的可选驱动程序更新。使用 文件URL,在安装开始之前直接加载驱动程序。如果您选择 ,系统将提示您在安装过程的适当点插入更新磁盘。

2.2.2 配备 UEFI 的机器上的启动屏幕 编辑源文件

UEFI(统一可扩展固件接口)是一种新的行业标准,它取代并扩展了传统的 BIOS。最新的 UEFI 实现包含 安全启动 扩展,它通过仅允许执行经过签名的启动加载程序来防止启动恶意代码。请参阅 参考手册,第 14 章“UEFI(统一可扩展固件接口)”,了解更多信息。

用于启动具有传统 BIOS 的机器的启动管理器 GRUB 2 不支持 UEFI,因此 GRUB 2 已被 GRUB 2 for EFI 取代。如果启用了安全启动,YaST 将自动选择 GRUB 2 for EFI 进行安装。从管理和用户角度来看,这两种启动管理器实现的行为相同,在以下内容中称为 GRUB 2

Tip
提示:使用安全启动时的附加驱动程序

在启用安全启动的情况下安装时,您无法加载未随 openSUSE Leap 提供的驱动程序。即使通过 SolidDriver 提供的驱动程序也是如此,因为它们的签名密钥默认情况下不受信任。

要加载未随 openSUSE Leap 提供的驱动程序,请执行以下操作之一

  • 在安装之前,通过固件/系统管理工具将所需的密钥添加到固件数据库。

  • 使用将在首次启动时在 MOK 列表中注册所需密钥的可启动 ISO。

有关更多信息,请参阅 参考手册,第 14 章“UEFI(统一可扩展固件接口)”,第 14.1 节“安全启动”

启动屏幕显示了安装过程的几个选项。使用箭头键更改选定的选项,然后按 Enter 启动它。相关的选项是

安装

正常的安装模式。启用所有现代硬件功能。如果安装失败,请参阅 F5内核,了解禁用潜在问题的功能的启动参数。

升级

执行系统升级。有关更多信息,请参阅 第 12 章,升级系统和系统更改

更多 › 救援系统

启动一个没有图形用户界面的最小 Linux 系统。 有关更多信息,请参阅 第 21.5.2 节,“使用救援系统” 此选项在 Live CD 上不可用。

更多 › 启动 Linux 系统

启动已安装的 Linux 系统。系统将询问从哪个分区启动系统。

更多 › 检查安装介质

只有在从下载的 ISO 创建的介质安装时,此选项才可用。在这种情况下,建议检查安装介质的完整性。此选项在自动检查介质之前启动安装系统。如果检查成功,则启动正常的安装例程。如果检测到损坏的介质,则安装例程将中止。

The Boot Screen on Machines with UEFI
图 2.2: 配备 UEFI 的机器上的启动屏幕

GRUB 2 for EFI 在 openSUSE Leap 上不支持启动提示或用于添加启动参数的功能键。默认情况下,将使用美国英语和启动介质作为安装源启动安装。将执行 DHCP 查找以配置网络。要更改这些默认设置或添加启动参数,您需要编辑相应的启动条目。使用箭头键突出显示它并按 E。请参阅屏幕上的帮助以获取编辑提示(请注意,现在只能使用英语键盘)。 安装 条目将类似于以下内容

setparams 'Installation'

   set gfxpayload=keep
   echo 'Loading kernel ...'
   linuxefi /boot/x86_64/loader/linux splash=silent
   echo 'Loading initial ramdisk ...'
   initrdefi /boot/x86_64/loader/initrd

在以 linuxefi 开头的行末尾添加以空格分隔的参数。要启动编辑后的条目,请按 F10。如果您通过串行控制台访问机器,请按 Esc0。完整的参数列表可在 https://en.opensuse.net.cn/Linuxrc 上找到。

2.3 重要的启动参数列表 编辑源文件

本节包含一些重要的启动参数。

2.3.1 常规启动参数 编辑源文件

autoyast=URL

autoyast 参数指定 autoinst.xml 控制文件的位置,用于自动安装。

manual=<0|1>

manual 参数控制其他参数是否仅为默认值,这些默认值仍然需要用户确认。如果应接受所有值且不提出任何问题,请将此参数设置为 0。设置 autoyast 意味着将 manual 设置为 0

Info=URL

指定从文件中读取其他选项的位置。

upgrade=<0|1>

要升级 openSUSE Leap,请指定 Upgrade=1

dud=URL

URL 加载驱动程序更新。

dud=ftp://ftp.example.com/PATH_TO_DRIVERdud=http://www.example.com/PATH_TO_DRIVER 设置为从 URL 加载驱动程序。当 dud=1 时,您将在启动时被要求提供 URL。

language=LANGUAGE

设置安装语言。一些受支持的值是 cs_CZde_DEes_ESfr_FRja_JPpt_BRpt_PTru_RUzh_CNzh_TW

acpi=off

禁用 ACPI 支持。

noapic

无逻辑 APIC。

nomodeset

禁用 KMS。

textmode=1

以文本模式启动安装程序。

console=SERIAL_DEVICE[,MODE]

SERIAL_DEVICE 可以是实际的串行或并行设备(例如 ttyS0)或虚拟终端(例如 tty1)。 MODE 是波特率、奇偶校验位和停止位(例如 9600n8)。此设置的默认值由主板固件设置。如果您在监视器上看不到输出,请尝试设置 console=tty1。可以定义多个设备。

2.3.2 配置网络接口 编辑源文件

Important
重要:配置网络接口

本节讨论的设置仅适用于安装期间使用的网络接口。按照 参考手册,第 13 章“基本网络”,第 13.6 节“手动配置网络连接” 中的说明配置已安装系统中的其他网络接口。

只有在安装期间需要网络时才会配置网络。要强制配置网络,请使用 netsetupifcfg 参数。

netsetup=VALUE

netsetup=dhcp 强制通过 DHCP 进行配置。将 netsetup=-dhcp 设置为使用启动参数 hostipgatewaynameserver 配置网络。使用选项 netsetup=hostip,netmask,gateway,nameserver,安装程序将在启动时询问网络设置。

ifcfg=INTERFACE[.VLAN]=[.try,]SETTINGS

INTERFACE 可以是 * 以匹配所有接口,或者例如 eth* 以匹配所有以 eth 开头的接口。也可以使用 MAC 地址作为值。

可选地,可以在接口名称后面用句点分隔设置 VLAN。

如果 SETTINGSdhcp,所有匹配的接口都将配置为使用 DHCP。 如果您添加 try 选项,配置将在能够通过配置的接口之一访问安装仓库时停止。

或者,您可以使用静态配置。 使用静态参数,只有第一个匹配的接口将被配置,除非您添加 try 选项。 这将配置所有接口,直到可以访问仓库为止。

静态配置的语法是

ifcfg=*="IPS_NETMASK,GATEWAYS,NAMESERVERS,DOMAINS"

每个逗号分隔的值可以反过来包含一个由空格分隔的值的列表。 IPS_NETMASK 使用 CIDR 表示法,例如 10.0.0.1/24。 仅在使用空格分隔的列表时才需要引号。 带有两个名称服务器的示例

ifcfg=*="10.0.0.10/24,10.0.0.1,10.0.0.1 10.0.0.2,example.com"
Tip
提示:其他网络参数

ifcfg 启动参数功能非常强大,允许您设置几乎所有网络参数。 除了上述参数之外,您还可以设置 /etc/sysconfig/network/ifcfg.template /etc/sysconfig/network/config 中的所有配置选项(逗号分隔)。 以下示例在通过 DHCP 配置的接口上设置自定义 MTU 大小

ifcfg=eth0=dhcp,MTU=1500
hostname=host.example.com

输入完全限定的主机名。

domain=example.com

DNS 的域名搜索路径。 允许您使用简短的主机名而不是完全限定的主机名。

hostip=192.168.1.2[/24]

输入要配置的接口的 IP 地址。 IP 可以包含子网掩码,例如 hostip=192.168.1.2/24。 仅当安装期间需要网络时才评估此设置。

gateway=192.168.1.3

指定要使用的网关。 仅当安装期间需要网络时才评估此设置。

nameserver=192.168.1.4

指定负责的 DNS 服务器。 仅当安装期间需要网络时才评估此设置。

domain=example.com

域名搜索路径。 仅当安装期间需要网络时才评估此设置。

2.3.3 指定安装源 编辑源

如果您不使用 DVD 或 USB 闪存驱动器进行安装,请指定替代安装源。

install=SOURCE

指定要使用的安装源的位置。 可能的协议包括 cdhdslpnfssmb (Samba/CIFS)、ftptftphttphttps。 默认选项是 cd

要通过加密连接安装,请使用 https URL。 如果无法验证证书,请使用 sslcerts=0 启动参数禁用证书检查。

如果给出了 httphttpsftptftpsmb URL,您可以通过在 URL 中指定用户名和密码来验证身份。 示例

install=https://USER:PASSWORD@SERVER/DIRECTORY/DVD1/

在 Samba 或 CIFS 安装的情况下,您还可以指定应使用的域

install=smb://WORKDOMAIN;USER:PASSWORD@SERVER/DIRECTORY/DVD1/

要使用 cdhdslp,请按以下示例进行设置

install=cd:/
install=hd:/?device=sda/PATH_TO_ISO
install=slp:/

2.3.4 指定远程访问 编辑源

一次只能指定一种不同的远程控制方法。 不同的方法是:SSH、VNC、远程 X 服务器。

display_ip=IP_ADDRESS

Display_IP 使安装系统尝试连接到给定地址的 X 服务器。

Important
重要提示:X 身份验证机制

使用 X Window System 的直接安装依赖于基于主机名的原始身份验证机制。 此机制在当前的 openSUSE Leap 版本中已禁用。 建议使用 SSH 或 VNC 进行安装。

vnc=1

在安装过程中启用 VNC 服务器。

vncpassword=PASSWORD

设置 VNC 服务器的密码。

ssh=1

ssh 启用 SSH 安装。

ssh.password=PASSWORD

在安装过程中为 root 用户指定 SSH 密码。

2.4 高级设置 编辑源

要配置对本地 RMT 或 supportconfig 服务器的访问以进行安装,您可以指定启动参数以在安装过程中设置这些服务。 如果您需要在安装过程中使用 IPv6 支持,则情况也是如此。

2.4.1 在安装期间使用 IPv6 编辑源

默认情况下,您只能将 IPv4 网络地址分配给您的机器。 要在安装过程中启用 IPv6,请在启动提示符处输入以下参数之一

接受 IPv4 和 IPv6
ipv6=1
仅接受 IPv6
ipv6only=1

2.4.2 使用代理进行安装 编辑源

在强制使用代理服务器才能访问远程网站的网络中,只有在配置代理服务器时才能在安装过程中进行注册。

在具有传统 BIOS 的系统上,按 F4 在启动屏幕上,并在 HTTP 代理 对话框中设置所需的参数。

在具有 UEFI BIOS 的系统上,在启动提示符处提供 proxy 启动参数

  1. 在启动屏幕上,按 E 编辑启动菜单。

  2. proxy 参数附加到以下格式的 linux

    proxy=https://proxy.example.com:PORT

    如果代理服务器需要身份验证,请按如下方式添加凭据

    proxy=https://USER:PASSWORD@proxy.example.com:PORT

    如果无法验证代理服务器的 SSL 证书,请使用 sslcerts=0 启动参数禁用证书检查。

    结果将类似于以下内容

    GRUB options editor
    图 2.3: GRUB 选项编辑器
  3. F10 使用新的代理设置启动。

2.4.3 启用 SELinux 支持 编辑源

在安装启动时启用 SELinux 可让您在安装完成后配置它,而无需重新启动。 使用以下参数

security=selinux selinux=1

2.4.4 启用安装程序自更新 编辑源

在安装和升级期间,YaST 可以更新自身,如 第 3.2 节,“安装程序自更新” 中所述,以解决发布后发现的潜在错误。 可以使用 self_update 参数来修改此功能的行为。

要启用安装程序自更新,请将参数设置为 1

self_update=1

要使用用户定义的仓库,请指定 URL

self_update=https://updates.example.com/

2.4.5 重用 LVM 编辑源

从 SUSE Linux Enterprise 15 SP6 开始,安装程序不再在 引导设置 中重用预先存在的逻辑卷管理器 (LVM) 配置,因为这可能会令人困惑并导致次优设置。 要无论如何重用现有的 LVM,请使用 YAST_REUSE_LVM 参数或在 专家分区程序 (“参考”手册,第 5 章“专家分区程序) 中手动配置它。

2.4.6 为高 DPI 缩放用户界面 编辑源

如果您的屏幕使用非常高的 DPI,请使用启动参数 QT_AUTO_SCREEN_SCALE_FACTOR。 这会根据屏幕 DPI 缩放字体和用户界面元素。

QT_AUTO_SCREEN_SCALE_FACTOR=1

2.4.7 使用 CPU 缓解措施 编辑源

启动参数 mitigations 允许您控制受影响的 CPU 上侧通道攻击的缓解选项。 其可能的值是

auto 启用对您的 CPU 型号所需的所有缓解措施,但不保护跨 CPU 线程攻击。 此设置可能会在一定程度上影响性能,具体取决于工作负载。

nosmt 提供所有可用的安全缓解措施。 启用对您的 CPU 型号所需的所有缓解措施。 此外,它还会禁用同步多线程 (SMT) 以避免跨多个 CPU 线程的侧通道攻击。 此设置可能会进一步影响性能,具体取决于工作负载。

off 禁用所有缓解措施。 根据 CPU 型号,可能会发生针对您的 CPU 的侧通道攻击。 此设置不会影响性能。

每个值都有一组特定的参数,具体取决于 CPU 架构、内核版本以及需要缓解的漏洞。 有关详细信息,请参阅内核文档。

2.4.8 LUKS 2 支持 编辑源

从 SUSE Linux Enterprise 15 SP4 开始,YaST 安装程序支持 LUKS2 加密,但需要显式启用。

YAST_LUKS2_AVAILABLE

或者,您也可以在 YaST 专家控制台中启用 LUKS2。 有关更多信息,请参阅 “参考”手册,第 5 章“专家分区程序”,第 5.2 节“设备加密”

2.5 更多信息 编辑源

您可以在 openSUSE wiki 上找到有关启动参数的更多信息,网址为 https://en.opensuse.net.cn/SDB:Linuxrc#Parameter_Reference

3 安装步骤 编辑源

摘要

本章描述了将 openSUSE Leap 的数据复制到目标设备的过程。 在此过程中设置了新安装系统的基本配置参数。 图形用户界面将指导您完成安装。 文本模式安装的步骤相同,但外观不同。 有关执行非交互式自动化安装的信息,请参阅 “AutoYaST 指南”

如果您是 openSUSE Leap 的首次用户,您应该在大部分情况下遵循 YaST 的默认建议,但您也可以根据您的偏好调整设置,如本文所述。 单击 帮助 可获取每个安装步骤的帮助。

Tip
提示:无鼠标安装

如果安装程序未正确检测到您的鼠标,请使用 →| 进行导航,使用箭头键滚动,并使用 Enter 确认选择。 各种按钮或选择字段包含带有下划线的字母。 使用 Alt字母 直接选择按钮或选择,而不是使用 →| 进行导航。

3.1 概述 编辑源

本节提供所有安装步骤的概述。 每个步骤都包含指向更详细描述的链接。

  1. 在安装开始之前,安装程序可能会更新自身。 有关详细信息,请参阅 第 3.2 节,“安装程序自更新”

  2. 实际安装从选择语言和接受许可协议开始。 有关详细信息,请参阅 第 3.3 节,“ 语言、键盘和许可协议

  3. 配置网络。 仅当您需要在安装过程中访问网络,并且通过 DHCP 进行自动网络配置失败时才需要此操作。 如果自动网络配置成功,则跳过此步骤。 有关详细信息,请参阅 第 3.4 节,“网络设置”

  4. 配置在线仓库。 通过添加官方 openSUSE 仓库,您可以在安装过程中访问更多软件并获得最新的安全更新。 有关详细信息,请参阅 第 3.5 节,“在线仓库”。 此步骤是可选的,可以跳过。

  5. 选择 桌面或 系统的角色。 这定义了要安装的默认软件包列表,并为硬盘分区提出建议。 有关详细信息,请参阅 第 3.6 节,“系统角色”

  6. 分区您的系统硬盘。 有关详细信息,请参阅 第 3.7 节,“分区”

  7. 选择时区。 有关详细信息,请参阅 第 3.8 节,“时钟和时区”

  8. 创建用户。 有关详细信息,请参阅 第 3.9 节,“创建新用户”

  9. (可选) 可选地,为系统管理员 root 设置不同的密码。 有关详细信息,请参阅 第 3.10 节,“系统管理员 root 的身份验证”

  10. 在最后一步中,安装程序会呈现所有设置的概述。 如果需要,您可以更改它们。 有关详细信息,请参阅 第 3.11 节,“安装设置”

  11. 安装程序会复制所有必需的数据并告知您进度。有关详细信息,请参阅第 3.12 节,“执行安装”

3.2 安装程序自更新 编辑源文件

在安装和升级过程中,YaST 可能会更新自身,以解决在发布后发现的安装程序中的错误。默认情况下,此功能已启用;要禁用它,请将启动参数 self_update 设置为 0。有关更多信息,请参阅 第 2.4.4 节,“启用安装程序自更新”

Important
重要提示:自更新期间的网络

要下载安装程序更新,YaST 需要网络访问权限。默认情况下,它尝试在所有网络接口上使用 DHCP。如果网络中有一个 DHCP 服务器,它将自动工作。

如果您需要静态 IP 设置,可以使用 ifcfg 启动参数。有关更多详细信息,请参阅 linuxrc 文档,网址为 https://en.opensuse.net.cn/Linuxrc

Tip
提示:语言选择

安装程序自更新在语言选择步骤之前运行。这意味着在此过程中发生的所有进度和错误默认情况下都将以英语显示。

要使用另一种语言来完成安装程序的这一部分,请使用 language 启动参数(如果您的架构支持),例如 language=de_DE。在配备传统 BIOS 的机器上,或者在启动菜单中按 F2 并从列表中选择语言。

虽然此功能旨在无需用户干预即可运行,但了解其工作方式还是有益的。如果您不感兴趣,可以直接跳转到 第 3.3 节,“语言、键盘和许可协议”,并跳过本节的其余部分。

3.2.1 自更新过程 编辑源文件

该过程可以分解为两个不同的部分

  1. 确定更新仓库位置。

  2. 下载并应用更新到安装系统。

3.2.1.1 确定更新仓库位置 编辑源文件

安装程序自更新作为常规 RPM 包通过专用仓库分发,因此第一步是找到仓库 URL。

Important
重要提示:仅安装程序自更新仓库

无论您使用以下哪种选项,都只期望安装程序自更新仓库 URL,例如

self_update=https://www.example.com/my_installer_updates/

不要提供任何其他仓库 URL,例如软件更新仓库的 URL。

YaST 将尝试以下信息来源

  1. 启动参数 self_update。(有关更多详细信息,请参阅 第 2.4.4 节,“启用安装程序自更新”。)如果您指定 URL,它将优先于任何其他方法。

  2. 如果您使用 AutoYaST,则为 /general/self_update_url profile 元素。

  3. 如果上述尝试均不成功,将使用回退 URL(在安装介质中定义)。

3.2.1.2 下载并应用更新 编辑源文件

确定更新仓库后,YaST 会检查是否有可用的更新。如果有,将下载并应用所有更新。

最后,YaST 会重新启动并显示欢迎屏幕。如果没有可用的更新,则安装将继续,而不会重新启动 YaST。

Note
注意:更新完整性

将检查更新签名以确保完整性和作者身份。如果缺少签名或签名无效,系统会询问您是否要应用更新。

3.2.1.3 临时自更新附加仓库 编辑源文件

在自更新仓库中分发的一些软件包为安装程序提供其他数据,例如安装默认值、系统角色定义等。如果安装程序在自更新仓库中找到这些软件包,则会创建一个本地临时仓库,并将这些软件包复制到其中。它们在安装过程中使用。临时本地仓库将在安装结束时删除。其软件包不会安装到目标系统上。

此附加仓库不会显示在附加产品列表中,但在安装过程中,它可能在软件包管理中显示为 SelfUpdate0 仓库。

3.2.2 自定义自更新仓库 编辑源文件

YaST 可以使用用户定义的仓库而不是官方仓库,方法是通过 self_update 启动参数指定 URL。

  • 支持 HTTP/HTTPS 和 FTP 仓库。

  • yast2-installation-4.4.30 开始,支持 relurl:// 模式,作为启动参数或在 AutoYaST profile 中。URL 相对于主安装仓库,您可以使用常规的 ../ 表示法浏览文件树,例如 relurl://../self_update。当通过本地安装服务器提供软件包,或构建包含自更新仓库的自定义安装介质时,这很有用。

    以下示例假定安装仓库位于介质根目录 (/),并且自更新仓库位于 self_update 子目录中。这种结构使 relurl:// 可移植,并且无需更改即可在启动参数中工作,复制到 USB 存储器、硬盘、网络服务器或 AutoYaST profile 中。

    自定义 DVD/USB 介质

    self_update=relurl://self_update 启动选项直接添加到默认启动参数,即使将介质复制到 USB 存储器、硬盘或网络服务器,它也能正常工作。

    安装服务器

    假设安装软件包可通过 http://example.com/repo 获取,并且自更新仓库可通过 http://example.com/self_update 获取。

    然后,您可以使用 http://example.com/repohttp://example.com/self_update 启动参数,而无需在将仓库移动到其他位置时更改 self_update 参数。

  • 仅支持 RPM-MD 仓库(RMT 需要)。

  • 软件包不会以通常的方式安装:它们仅被解压缩,并且不会执行任何脚本。

  • 不执行依赖项检查。软件包按字母顺序安装。

  • 软件包中的文件会覆盖原始安装介质中的文件。这意味着更新软件包可能不需要包含所有文件,只需包含已更改的文件。省略未更改的文件以节省内存和下载带宽。

Note
注意:仅一个仓库

当前,不可能使用多个仓库作为安装程序自更新的来源。

3.3 语言、键盘和许可协议 编辑源文件

Language, keyboard and product selection
图 3.1: 语言、键盘和许可协议

语言键盘布局 设置使用您在启动屏幕上选择的语言进行初始化。如果您没有更改默认值,它将为英语(美国)。如果需要,在此处更改设置。

更改语言会自动选择相应的键盘布局。您可以从下拉框中选择不同的键盘布局来覆盖此建议。使用 键盘测试 文本框测试布局。所选语言还会确定系统时钟的时区。稍后可以按照 第 6 章,使用 YaST 更改语言和国家/地区设置 中所述的方式修改此设置。

阅读许可协议。它以您选择的语言显示。可以通过 许可语言 下拉框获取翻译版本。如果您同意条款和条件,请使用 下一步 继续。如果您不同意,请单击 中止 以终止安装。

Tip
提示:浅色和高对比度主题

如果您难以阅读安装程序中的标签,可以更改小部件颜色和主题。

单击 更改小部件主题 按钮或按 ShiftF3 打开主题选择对话框。从列表中选择一个主题并 关闭 对话框。

ShiftF4 切换到为视力障碍用户设计的配色方案。再次按按钮切换回默认方案。

3.4 网络设置 编辑源文件

启动安装程序后,安装例程已设置。在此设置过程中,尝试使用 DHCP 配置至少一个网络接口。如果此尝试失败,则现在将启动 网络设置 对话框。

Network Settings
图 3.2: 网络设置

从列表中选择一个网络接口,然后单击 编辑 以更改其设置。使用选项卡配置 DNS 和路由。有关更多详细信息,请参阅 参考手册,“基本网络”,第 13.4 节“使用 YaST 配置网络连接”

如果 DHCP 在安装设置期间已成功配置,您也可以通过单击 网络配置安装设置 步骤中访问此对话框。它允许您更改自动提供的设置。

Note
注意:通过启动参数进行网络配置

如果至少一个网络接口已通过启动参数配置(请参阅 第 2.3.2 节,“配置网络接口”),则禁用自动 DHCP 配置并导入和使用启动参数配置。

Tip
提示:访问网络存储或本地 RAID

要在安装过程中访问 SAN 或本地 RAID,可以使用 libstorage 命令行客户端来实现此目的

  1. 切换到控制台,使用 CtrlAltF2

  2. 通过运行 extend libstoragemgmt 安装 libstoragemgmt 扩展。

  3. 现在您可以访问 lsmcli 命令。有关更多信息,请运行 lsmcli --help

  4. 要返回安装程序,请按 AltF7

支持 Netapp Ontap、所有符合 SMI-S 标准的 SAN 提供程序和 LSI MegaRAID。

3.5 在线仓库 编辑源文件

执行系统分析,其中安装程序探测存储设备,并尝试查找其他已安装的系统。 如果有可访问互联网的网络连接,您将被要求激活在线仓库。 使用 回答以继续。 如果您没有互联网访问权限,将跳过此步骤。

在线仓库是官方的 openSUSE 包源。它们不仅提供安装介质中未包含的额外软件包,还包含包含安全性和错误修复的更新仓库。建议使用默认选择。至少添加主更新仓库,因为它确保系统安装了最新的安全补丁。

您有以下选择

  • 主仓库 包含开源软件 (OSS)。与 DVD 安装介质相比,它包含许多其他软件包,其中包括许多其他桌面系统。

  • 包含来自 SUSE Linux Enterprise 15 的更新的更新仓库包含来自 openSUSE Backports 的更新的更新仓库 包含主仓库的更新。建议在所有安装场景中启用这些仓库。

  • 非 OSS 仓库 包含具有专有软件许可的软件包。启用它对于安装自定义桌面系统不是必需的。

  • 如果启用了 非 OSS 仓库,建议启用 更新仓库 (非 OSS)。此仓库包含专有软件的更新和安全修复程序。

  • 所有其他仓库面向有经验的用户和开发人员。单击仓库名称以获取更多信息。

使用下一步确认您的选择。根据您的选择,您需要确认一个或多个许可协议。通过选择下一步来完成,直到您进入系统角色屏幕。现在选择下一步继续。

3.6 系统角色 编辑源文件

为了简化安装,安装程序提供预定义的用例,这些用例会针对所选场景定制系统。

System Role
图 3.3: 系统角色

选择最符合您要求的 系统角色。系统角色的可用性取决于您选择的模块和扩展。在以下情况下将省略该对话框

  • 基本产品和模块的组合不允许选择角色。

  • 基本产品和模块的组合仅允许单个角色。

使用默认选择,可用的系统角色如下

带有 KDE Plasma 的桌面

一个功能强大的桌面环境,具有完整的 PIM 套件(邮件、日历、任务、笔记和信息源)、在桌面上运行的小部件以及更多功能。如果您熟悉 Windows,KDE 是推荐的选择。有关更多信息,请参阅 https://kde.org/

GNOME桌面

提供替代且创新的用户体验的桌面环境。GNOME的设计注重可用性和生产力。更多信息请参见 https://gnome.org.cn/

Xfce桌面

一个轻量级的传统桌面环境。更多信息请参见 https://www.xfce.org/

通用桌面

如果您更喜欢KDE、GNOME或Xfce桌面之外的替代方案,请选择此选项。您可以在安装过程的后期通过选择 软件安装设置对话框 中选择以下替代方案。

Enlightenment (https://www.enlightenment.org/)
LXDE (https://lxde.org/)
LXQT (https://lxqt.org/)
MATE (https://mate-desktop.org/)

从DVD镜像安装时,只有在 在线仓库 步骤中启用了主仓库(OSS)才能使用这些桌面系统。您可以在安装过程的后期使用 返回 按钮返回到欢迎屏幕来启用此仓库。从那里,选择 下一步 并同意添加在线仓库。

服务器

如果正在设置服务器,您可能不需要图形用户界面和办公套件等桌面应用程序。此选项为您提供适合服务器的精简软件包集。

事务服务器

类似于服务器角色,但具有只读根分区和事务更新。此选择也是设置openSUSE Kubic的前提条件。有关事务更新的更多信息,请参见 https://kubic.opensuse.org/blog/2018-04-04-transactionalupdates/

3.7 分区 编辑源文件

3.7.1 重要信息 编辑源文件

Warning
警告:请仔细阅读本节

在继续 第3.7.2节,“建议分区” 之前,请仔细阅读本节。

UEFI机器上的自定义分区

UEFI机器 需要 必须挂载到 /boot/efi 的EFI系统分区。此分区必须使用 FAT32 文件系统格式化。

如果您的系统上已经存在EFI系统分区(例如来自以前的Windows安装),请将其挂载到 /boot/efi 而无需格式化。

如果您的UEFI机器上不存在EFI系统分区,请确保创建它。EFI系统分区必须是物理分区或RAID 1。不支持其他RAID级别、LVM和其他技术。它需要使用FAT32文件系统格式化。

自定义分区和 Snapper

如果根分区大于16 GB,openSUSE Leap 默认启用文件系统快照。

openSUSE Leap 使用Snapper与Btrfs结合使用此功能。Btrfs需要为根分区启用快照。

如果磁盘小于16 GB,将禁用所有Snapper功能和自动快照,以防止系统分区 / 耗尽空间。

能够创建允许回滚的系统快照需要将重要的系统目录挂载到单个分区,例如 /usr/var。只有从快照中排除的目录可以驻留在单独的分区上,例如 /usr/local/var/log/tmp

如果启用了快照,安装程序将在安装期间和安装后立即自动创建 single 快照。

有关详细信息,请参见 “参考”手册,第3章“使用Snapper进行系统恢复和快照管理”

Important
重要:Btrfs快照和根分区大小

快照可能会占用大量的存储空间。通常,快照越旧或覆盖的更改集越大,快照占用的存储空间就越多。并且您保留的快照越多,您需要的磁盘空间就越多。

为了防止根分区因快照数据而充满,您需要确保它足够大。如果您经常更新或其他安装,请考虑至少30 GB的根分区。如果您计划在系统升级时保留快照(以便能够回滚),则应考虑40 GB或更多。

Btrfs数据卷

openSUSE Leap 15.6 上支持Btrfs的数据卷。对于需要Btrfs作为数据卷的应用程序,请考虑创建一个禁用了配额组的单独文件系统。这已经是非根文件系统的默认设置。

Btrfs加密的根分区

默认分区设置建议将根分区作为Btrfs。要加密根分区,请确保使用GPT分区表类型而不是MSDOS类型。否则,GRUB2引导加载程序可能没有足够的空间用于第二阶段加载程序。

支持的软件RAID卷

安装到和从现有的软件RAID卷启动,对于磁盘数据格式(DDF)卷和Intel Matrix Storage Manager(IMSM)卷都受支持。IMSM也称为以下名称

FCoE和iSCSI设备的挂载点

FCoE和iSCSI设备将在启动过程中异步出现。虽然initrd保证正确设置这些设备以用于根文件系统,但对于任何其他文件系统或挂载点(如 /usr)没有此类保证。因此,不支持任何系统挂载点,如 /usr/var。要使用这些设备,请确保正确同步相应的服务和设备。

提案中Windows分区的处理

如果为建议的分区提案选择的磁盘包含一个大的Windows FAT或NTFS分区,它将自动调整大小以腾出空间用于 openSUSE Leap 安装。为避免数据丢失,强烈建议

  • 确保分区未碎片化(在 openSUSE Leap 安装之前运行Windows上的碎片整理程序)

  • 仔细检查建议的Windows分区大小是否足够

  • openSUSE Leap 安装之前备份您的数据

要调整Windows分区的大小,请使用 专家分区程序

带有单独home分区的提案

默认建议不再建议为 /home 创建单独的分区。/home 目录包含用户的数据和个人配置文件。将其放在单独的目录中可以更轻松地在未来重建系统,或者允许您在同一机器上与不同的 Linux 安装共享它。

如果您想更改建议以创建 /home 的单独分区,请选择引导设置并单击下一步,直到您到达文件系统选项屏幕。选中建议单独的主分区。默认情况下,它将使用XFS格式化,但您可以选择使用不同的文件系统。通过再次单击下一步关闭对话框。

3.7.2 建议分区 编辑源文件

在本步骤中,为 openSUSE Leap 定义一个分区设置。

Suggested Partitioning
图3.4: 建议分区

安装程序为可用磁盘之一创建了一个提案,其中包含格式化为Btrfs的根分区和一个交换分区。如果已检测到一个或多个交换分区在可用的硬盘上,这些分区将被使用。您有几种选择可以继续

下一步

要接受提案而不进行任何更改,请单击 下一步 以继续安装工作流程。

引导设置

要调整提案,请选择 引导设置。首先,选择要使用的硬盘和分区。在 分区方案 屏幕中,您可以启用逻辑卷管理(LVM)并激活磁盘加密。之后,指定 文件系统选项。您可以调整根分区的文件系统并创建单独的home和交换分区。如果您计划挂起您的机器,请确保创建一个单独的交换分区并选中 用于挂起时增大到RAM大小。如果根文件系统格式为Btrfs,您也可以在此处启用或禁用Btrfs快照。

专家分区程序

要创建自定义分区设置,请单击 专家分区程序。选择 从当前提案开始,如果您想从建议的磁盘布局开始,或者选择 从现有分区开始 以忽略建议的布局并从磁盘上的现有布局开始。您可以 添加编辑调整大小删除 分区。

您还可以使用 专家分区程序 设置逻辑卷管理(LVM)、配置软件RAID和设备映射(DM)、加密分区、挂载NFS共享和管理tmpfs卷。要微调每个Btrfs分区的子卷和快照处理设置,请选择 Btrfs。有关自定义分区和配置高级功能的更多信息,请参阅 “参考”手册,第5章“专家分区程序”,第5.1节“使用 专家分区程序

Warning
警告:磁盘空间单位

请注意,为了分区目的,磁盘空间以二进制单位而不是十进制单位来衡量。例如,如果您输入 1GB1GiB1G 大小,它们都表示1 GiB(Gibibyte),而不是1 GB(Gigabyte)。

二进制

1 GiB = 1 073 741 824 字节。

十进制

1 GB = 1 000 000 000 字节。

差异

1 GiB ≈ 1.07 GB。

3.8 时钟和时区 编辑源文件

在此对话框中,选择您的地区和时区。两者都根据安装语言预先选择。

Clock and Time Zone
图3.5: 时钟和时区

要更改预选值,可以使用地图或 区域时区 的下拉框。使用地图时,将光标指向您所在区域的大致方向并左键单击以放大。现在通过左键单击选择您的国家/地区或区域。右键单击返回世界地图。

要设置时钟,请选择 硬件时钟设置为UTC。如果您在机器上运行另一个操作系统,例如Microsoft Windows,则您的系统可能使用本地时间。如果您在机器上运行Linux,请将硬件时钟设置为UTC,并让系统自动执行从标准时间到夏令时的切换。

Important
重要:将硬件时钟设置为UTC

只有当硬件时钟(CMOS时钟)设置为UTC时,才能自动执行从标准时间到夏令时的切换(反之亦然)。这也适用于您使用NTP自动时间同步时,因为自动同步仅在硬件和系统时钟之间的时差小于15分钟时才执行。

由于错误的时间系统可能导致严重问题(丢失的备份、丢失的邮件消息、远程文件系统上的挂载失败等),因此强烈建议 始终 将硬件时钟设置为UTC。

如果已经配置了网络,则可以配置与NTP服务器同步时间。单击 其他设置 以更改NTP设置或 手动 设置时间。有关配置NTP服务的更多信息,请参见 “参考”手册,第18章“使用NTP进行时间同步”。完成后,单击 接受 以继续安装。

如果未配置NTP,请考虑设置 SYSTOHC=nosysconfig 变量)以避免将未同步的时间保存到硬件时钟。

3.9 创建新用户 编辑源文件

在本步骤中,创建一个本地用户。

Create New User
图3.6: 创建新用户

在输入名字和姓氏后,您可以接受提案或指定一个 用户名,该用户名将用于登录。只能使用小写字母(a-z)、数字(0-9)以及字符 .(点)、-(连字符)和 _(下划线)。不允许使用特殊字符、变音符号和重音符号。

最后,为用户输入密码。重新输入密码以进行确认(以确保您没有输入其他内容)。为了提供有效的安全性,密码应至少六个字符长,并包含大写和小写字母、数字和特殊字符(7位ASCII)。不允许使用变音符号或重音符号。您输入的密码将进行弱密码检查。如果您输入容易猜到的密码(例如字典中的单词或名称),您将看到警告。使用强密码是一种良好的安全做法。

Important
重要:用户名和密码

请记住您的用户名和密码,因为每次登录系统时都需要它们。

如果您在具有一个或多个现有Linux安装的机器上安装 openSUSE Leap,YaST允许您导入用户数据,例如用户名和密码。选择 从以前的安装导入用户数据,然后选择 选择要导入的用户

如果您不想配置任何本地用户(例如,在具有集中用户身份验证的网络上设置客户端时),请跳过此步骤,选择 下一步 并确认警告。可以在安装的系统中稍后配置网络用户身份验证;有关说明,请参阅 第5章,使用YaST管理用户

有两个附加选项可用

将此密码用于系统管理员

如果选中,您为用户输入的密码将用于系统管理员 root。此选项适用于独立工作站或家庭网络中的机器,这些机器由单个用户管理。如果未选中,您将在安装流程的下一步中被提示输入系统管理员密码(请参阅 root 的身份验证">第 3.10 节,“系统管理员 root 的身份验证”)。

自动登录

此选项会在系统启动时自动登录当前用户。这主要适用于仅由一个用户操作的计算机。

Warning
警告:自动登录

启用自动登录后,系统将直接进入您的桌面,无需身份验证。如果您在系统上存储敏感数据,如果计算机也可以被他人访问,则不应启用此选项。

在用户由集中管理(例如通过 NIS 或 LDAP)的环境中,您应该跳过本地用户创建。在这种情况下,选择 跳过用户创建

3.10 系统管理员 root 的身份验证 编辑源代码

如果您在上一步骤中未选择 为系统管理员使用此密码,您将被提示输入系统管理员 root 的密码或提供一个公共 SSH 密钥。否则,将跳过此配置步骤。

Authentication for the System Administrator root
图 3.7:系统管理员 root 的身份验证

输入系统管理员 root 的密码。为了验证目的,root 的密码必须输入两次。请勿忘记密码,因为以后无法恢复。

Tip
提示:密码和键盘布局

建议仅使用 US ASCII 字符。如果发生系统错误或需要在救援模式下启动系统,则键盘可能未本地化。

要在安装的系统中稍后更改 root 密码,请运行 YaST 并启动 安全与用户 › 用户和组管理

Important
重要:root 用户

root 是系统管理员或超级用户的名称。其用户 ID (uid) 为 0。与普通用户不同,root 帐户具有无限权限。

请勿忘记 root 密码

只有 root 才有权更改系统配置、安装程序、管理用户和设置新硬件。要执行这些任务,需要 root 密码。请勿忘记密码,因为以后无法恢复。

不要将 root 用户用于日常工作

root 身份进行日常工作非常危险:来自 root 的命令通常在没有额外确认的情况下执行,因此单个错误可能导致系统文件不可恢复的丢失。仅将 root 帐户用于系统管理、维护和修复。

不要重命名 root 用户帐户

YaST 将始终将系统管理员命名为 root。虽然从技术上来说可以重命名 root 帐户,但某些应用程序、脚本或第三方产品可能依赖于名为 root 的用户的存在。虽然这种配置始终针对单个环境,但必要的调整可能会被供应商更新覆盖,因此这会成为一项持续的任务,而不是一次性设置。这在涉及第三方应用程序的非常复杂的设置中尤其如此,需要验证与每个供应商是否支持重命名 root 帐户。

由于无法预见重命名 root 帐户的影响,SUSE 不支持重命名 root 帐户。

通常,重命名 root 帐户背后的想法是隐藏它或使其不可预测。但是,/etc/passwd 需要 644 权限供普通用户使用,因此系统上的任何用户都可以检索用户 ID 0 的登录名。有关更好地保护 root 帐户的方法,请参阅 “安全和加固指南”一书,第 14 章“用户管理”,第 14.5 节“限制 root 登录”“安全和加固指南”一书,第 14 章“用户管理”,第 14.5.3 节“限制 SSH 登录”

如果您想通过 SSH 使用公共密钥远程访问系统,请从可移动存储设备或现有分区导入密钥。安装完成后,您可以使用提供的 SSH 密钥通过 SSH 登录。

过程 3.1:为用户 root 添加公共 SSH 密钥

要从介质分区导入公共 SSH 密钥,请执行以下步骤

  1. 公共 SSH 密钥位于您的 ~/.ssh 目录中,并且具有文件扩展名 .pub。将其复制到可移动存储设备或在安装过程中未格式化的现有分区。

  2. 如果您的密钥位于可移动存储设备上,请将其插入计算机并单击 刷新。您应该在 导入公共密钥 下的下拉框中看到该设备。

  3. 单击 浏览,选择公共 SSH 密钥并使用 打开 确认。

  4. 使用 下一步 继续。

如果您既设置了密码又添加了公共 SSH 密钥,并且需要在安装后立即进行远程访问,请不要忘记在 安装设置 摘要的 安全 部分打开 SSH 端口。如果您没有设置密码而仅添加密钥,则将自动打开端口,以防止您被锁定在新的安装系统之外。

3.11 安装设置 编辑源代码

在实际安装发生之前的最后一步,您可以更改安装程序建议的安装设置。要修改建议,请单击相应的标题。在对特定设置进行更改后,您始终返回到“安装设置”窗口,该窗口将相应更新。

如果您已按照上一步骤中的说明添加了 root 的 SSH 密钥,请确保在 安全 设置中打开 SSH 端口。

Installation Settings
图 3.8:安装设置

3.11.1 软件 编辑源代码

openSUSE Leap 包含用于各种应用程序目的的几个软件模式。可用的模式和软件包选择取决于您选择的模块和扩展。

单击 软件 以打开 软件选择和系统任务 屏幕,您可以在其中根据需要修改模式选择。从列表中选择一个模式,并在窗口的右侧查看描述。

每个模式包含几个用于特定功能的软件包(例如 多媒体或办公软件)。如果您在 系统角色 对话框中选择了 通用桌面,请从可用的 图形环境 列表中选择一个桌面环境。 要基于要安装的软件包进行更详细的选择,请选择 详细信息 以切换到 YaST 软件管理器。

Software Selection and System Tasks
图 3.9:软件选择和系统任务

您还可以随时使用 YaST 软件管理器安装其他软件包或从系统中删除软件包。有关更多信息,请参阅 第 9 章,安装或删除软件

默认情况下,openSUSE Leap 使用 Wayland 显示服务器协议。

Tip
提示:添加辅助语言

您在安装的第一个步骤中选择的语言将用作系统的首选(默认)语言。您可以从 软件 对话框中通过选择 详细信息 › 视图 › 语言 添加辅助语言。

3.11.2 启动 编辑源代码

安装程序为您的系统建议启动配置。在计算机上找到的其他操作系统,例如 Microsoft Windows 或其他 Linux 安装,将自动检测并添加到引导加载程序中。但是,openSUSE Leap 将默认启动。通常,您可以保持这些设置不变。如果您需要自定义设置,请根据需要修改建议。有关信息,请参阅 “参考”一书,第 12 章“引导加载程序 GRUB 2”,第 12.3 节“使用 YaST 配置引导加载程序”

Important
重要:软件 RAID 1

支持启动 /boot 位于软件 RAID 1 设备上的配置,但它需要将引导加载程序安装到 MBR(引导加载程序位置 › 从主引导记录启动)。将 /boot 放在 RAID 级别为 RAID 1 以外的软件 RAID 设备上不受支持。

3.11.3 安全 编辑源代码

CPU 缓解措施 指的是用于防止 CPU 侧信道攻击的软件缓解措施的内核引导命令行参数。单击所选条目以选择不同的选项。有关详细信息,请参阅 “参考”一书,第 12 章“引导加载程序 GRUB 2” CPU 缓解措施

默认情况下,在所有配置的网络接口上启用 防火墙。要完全禁用 firewalld,请单击 禁用(不建议)。

Note
注意:防火墙设置

激活防火墙时,所有接口都分配给 public 区域,默认情况下所有端口都关闭,从而确保最大安全性。您可以在安装过程中打开的唯一端口是端口 22 (SSH),以允许远程访问。需要网络访问的其他服务(例如 FTP、Samba、Web 服务器等)只有在调整了防火墙设置后才能工作。有关配置详细信息,请参阅 “安全和加固指南”一书,第 23 章“伪装和防火墙”

默认情况下启用 SSH 服务,但其端口 (22) 在防火墙中关闭。单击 打开 以打开端口或 禁用 以禁用该服务。请注意,如果禁用 SSH,将无法进行远程登录。有关更多信息,请参阅 “安全和加固指南”一书,第 22 章“使用 OpenSSH 保护网络操作”

Tip
提示:现有的 SSH 主机密钥

如果您在具有现有 Linux 安装的机器上安装 openSUSE Leap,则安装例程会导入 SSH 主机密钥。默认情况下,它选择具有最新访问时间的密钥。

如果您正在通过 VNC 进行远程管理,您还可以指定安装后是否可以通过 VNC 访问该机器。请注意,启用 VNC 也需要将 默认 systemd 目标 设置为 图形化

默认 主要 Linux 安全模块AppArmor。要禁用它,请在 安全 设置中选择 作为模块。这允许您在 软件 设置 (第 3.11.1 节,“软件) 中取消选择 AppArmor 模式。

3.11.4 网络配置 编辑源代码

此类别显示当前的 网络设置,这些设置在启动安装后自动配置(请参阅 第 3.4 节)或在安装过程中手动配置。默认情况下,wicked 用于服务器安装,NetworkManager 用于桌面工作负载。

如果您想检查或调整网络设置,请单击 网络配置。这将带您进入 YaST 网络设置 模块。有关详细信息,请参阅 “参考”一书,第 13 章“基本网络”,第 13.4 节“使用 YaST 配置网络连接”

3.11.5 默认 systemd 目标 编辑源文件

openSUSE Leap 可以启动到两种不同的目标(以前称为 运行级别)。图形化 目标启动显示管理器,而 多用户 目标启动命令行界面。

默认目标是 图形化。如果您尚未安装 X Window System 模式,则需要将其更改为 多用户。如果系统应通过 VNC 访问,则需要选择 图形化

3.11.6 导入 SSH 主机密钥和配置 编辑源文件

如果检测到计算机上现有的 Linux 安装,YaST 将默认导入在 /etc/ssh 中找到的最新 SSH 主机密钥,并可以选择性地包含目录中的其他文件。这样可以重用现有安装的 SSH 身份,避免首次连接时出现 REMOTE HOST IDENTIFICATION HAS CHANGED 警告。请注意,如果 YaST 未发现任何其他安装,则不会在安装摘要中显示此项。您有以下选择

我希望从之前的安装导入 SSH 密钥

选择此选项以导入 SSH 主机密钥并可选地导入已安装系统的配置。您可以在下面的选项列表中选择要从中导入的安装。

导入 SSH 配置

启用此选项以将 /etc/ssh 中的其他文件复制到已安装的系统,除了主机密钥之外。

3.11.7 系统 编辑源文件

此屏幕列出了安装程序可以获取的有关计算机的所有硬件信息。首次打开时,将启动硬件检测。根据您的系统,这可能需要一些时间。选择列表中的任何项目,然后单击 详细信息 以查看所选项目的详细信息。使用 保存到文件 将详细列表保存到本地文件系统或可移动设备。

高级用户还可以通过选择 内核设置 来更改 PCI ID 设置 和内核设置。将打开一个带有两个选项卡的屏幕

PCI ID 设置

每个内核驱动程序都包含其支持的所有设备的设备 ID 列表。如果新设备不在任何驱动程序的数据库中,即使它可以与现有驱动程序一起使用,该设备也被视为不受支持。您可以在此处将 PCI ID 添加到设备驱动程序。只有高级用户才应尝试这样做。

要添加 ID,请单击 添加 并选择是 手动 输入数据,还是从列表中选择。输入所需的数据。SysFS Dir/sys/bus/pci/drivers 中的目录名称——如果为空,则将 驱动程序 名称用作目录名称。可以使用 编辑删除 管理现有条目。

内核设置

在此处更改 全局 I/O 调度程序。如果选择 未配置,则将使用各自体系结构默认设置。也可以在稍后从已安装的系统随时更改此设置。有关 I/O 调优的详细信息,请参阅 “系统分析和调优指南”一书,第 13 章“调优 I/O 性能”

在此处激活 启用 SysRq 键。这些键将允许您在系统崩溃时发出基本命令(例如重新启动系统或写入内核转储)。在进行内核开发时,建议启用这些键。有关详细信息,请参阅 https://linuxkernel.org.cn/doc/html/latest/admin-guide/sysrq.html

3.12 执行安装 编辑源文件

配置完所有安装设置后,单击安装设置窗口中的 安装 以开始安装。某些软件可能需要许可确认。如果您的软件选择包括此类软件,将显示许可确认对话框。单击 接受 以安装软件包。如果不同意许可,请单击 我不同意,则不会安装软件包。在随后的对话框中,再次使用 安装 确认。

安装通常需要 15 到 30 分钟,具体取决于系统性能和所选软件范围。在准备好硬盘并保存和恢复用户设置后,将开始软件安装。选择 详细信息 以切换到安装日志,或选择 发行说明 以阅读手册印刷时不可用的重要最新信息。

软件安装完成后,系统重新启动到新安装,您可以登录。要自定义系统配置或安装其他软件包,请启动 YaST。

4 故障排除 编辑源文件

摘要

本节涵盖了几个常见的安装问题,并描述了可能的解决方案。

4.1 检查介质 编辑源文件

如果您在使用 openSUSE Leap 安装介质时遇到任何问题,请检查其完整性。从介质启动,并从启动菜单中选择 更多 › 检查安装介质。一个最小系统启动,并让您选择要检查的设备。选择相应的设备,然后使用 确定 确认以执行检查。

在正在运行的系统上,启动 YaST 并选择 软件 › 介质检查。插入介质并单击 开始检查。完整性检查可能需要一些时间。

如果在检查过程中检测到错误,请不要使用此介质进行安装。介质问题可能,例如,是在自己刻录 DVD 时发生的。以较低的速度(4 倍)刻录介质有助于避免问题。

4.2 没有可引导驱动器 编辑源文件

如果您的计算机无法从 USB 或 DVD 驱动器启动,您有几种替代方案。

使用外部 USB 闪存驱动器或 DVD 驱动器

Linux 支持大多数现有的 USB 闪存驱动器和 DVD 驱动器。如果系统没有 USB 闪存驱动器或 DVD 驱动器,则仍然可以使用通过 USB、FireWire 或 SCSI 连接的外部驱动器来启动系统。有时,固件更新可能会有所帮助,如果您遇到问题。

通过 PXE 进行网络启动

如果机器缺少 USB 闪存驱动器和 DVD 驱动器,但它具有正常工作的以太网连接,您可以执行基于网络的安装。

USB 闪存驱动器

如果机器缺少 DVD 驱动器和网络连接,您可以使用 USB 闪存驱动器。

4.3 从安装介质启动失败 编辑源文件

由于 BIOS 中的不正确的启动顺序设置,机器可能无法从安装介质启动。USB 闪存驱动器或 DVD 驱动器必须设置为 BIOS 启动顺序中的第一个启动设备。

过程 4.1: 更改 BIOS 启动顺序
  1. 使用启动例程显示的正确键进入 BIOS,并等待 BIOS 屏幕出现。

  2. 要在 AWARD BIOS 中更改启动顺序,请查找 BIOS FEATURES SETUP 条目。其他制造商可能对此有不同的名称,例如 ADVANCED CMOS SETUP。找到该条目后,选择它并使用 Enter 确认。

  3. 查找名为 BOOT SEQUENCEBOOT ORDER 的子条目。按 Page ↑Page ↓ 更改设置,直到 USB 闪存驱动器或 DVD 驱动器排在第一位。

  4. Esc 退出 BIOS 设置屏幕。要保存更改,请选择 SAVE & EXIT SETUP,或按 F10。要保存修改后的设置,请按 Y

过程 4.2: 更改 SCSI BIOS 中的启动顺序(Adaptec 主机适配器)
  1. CtrlA 打开设置。

  2. 选择 Disk Utilities。现在显示连接的硬件组件。

    记下 USB 闪存驱动器或 DVD 驱动器的 SCSI ID。

  3. Esc 退出菜单。

  4. 打开 Configure Adapter Settings。在 Additional Options 下,选择 Boot Device Options 并按 Enter

  5. 再次输入 USB 闪存驱动器或 DVD 驱动器的 ID 并按 Enter

  6. Esc 两次返回 SCSI BIOS 的开始屏幕。

  7. 退出此屏幕并使用 Yes 确认以启动计算机。

无论安装系统将使用何种语言和键盘布局,大多数 BIOS 配置都使用以下所示的美国键盘布局。

US keyboard layout
图 4.1: 美国键盘布局

4.4 启动失败 编辑源文件

某些硬件类型,主要是非常旧或非常新的硬件类型,无法启动。原因可能是安装内核中缺少对硬件的支持,或者驱动程序在某些特定硬件上导致问题。

如果使用标准 安装 模式安装失败,请尝试以下操作。

  1. 安装介质仍然在驱动器中时,使用 CtrlAltDel 或使用硬件复位按钮重新启动机器。

  2. 当启动屏幕出现时,按 F5,使用箭头键导航到 No ACPI,然后按 Enter 以启动并启动安装过程。此选项禁用对 ACPI 电源管理技术的支持。

  3. 按照 第 3 章,安装步骤 中所述进行安装。

如果失败,请如上操作,但选择 Safe Settings。此选项禁用 ACPI 和 DMA 支持。此选项适用于大多数硬件。

如果这两个选项都失败,请使用启动参数提示指定内核参数以启用正在使用的硬件的支持。有关作为启动参数可用的参数的更多信息,请参阅位于 /usr/src/linux/Documentation/kernel-parameters.txt 中的内核文档。

Tip
提示:获取内核文档

安装 kernel-source 包以查看内核文档。

在启动提示符处可以输入其他与 ACPI 相关的内核参数,然后再启动进行安装

acpi=off

此参数将禁用计算机上的整个 ACPI 子系统。如果您的计算机无法处理 ACPI,或者您认为计算机中的 ACPI 导致问题,这可能很有用。

acpi=force

即使您的计算机的 BIOS 发布于 2000 年之前,也始终启用 ACPI。如果除了 acpi=off 之外还设置了此参数,此参数也会启用 ACPI。

acpi=noirq

不要使用 ACPI 进行 IRQ 路由。

acpi=ht

仅启用支持超线程的 ACPI。

acpi=strict

对不严格符合 ACPI 标准的平台不太宽容。

pci=noacpi

禁用新 ACPI 系统的 PCI IRQ 路由。

pnpacpi=off

启用此选项以避免由 BIOS 中配置不正确的设备资源引起的错误。

notsc

禁用时间戳计数器。此选项可用于解决系统中的时序问题。这是一个最近的功能,因此,如果您在机器上看到回归,尤其是与时间相关或完全死机,那么值得尝试此选项。

nohz=off

禁用 nohz 功能。如果机器死机,启用此选项可能会有所帮助。

确定正确的参数组合后,YaST 会自动将其写入引导加载程序配置,以确保下次系统正确启动。

如果在加载内核或安装过程中发生错误,请在启动菜单中选择 内存测试 以检查内存。如果 内存测试 返回错误,通常表示硬件错误。

4.5 图形化安装程序启动失败 编辑源文件

机器启动到安装界面,并且在选择 安装 时图形化安装程序未启动。

有几种方法可以处理这种情况。

  • 选择安装对话框的另一个屏幕分辨率。

  • 选择 文本模式 进行安装。

  • 通过 VNC 使用图形化安装程序执行远程安装。

过程 4.3: 更改安装屏幕分辨率
  1. 启动进行安装。

  2. F3 打开一个菜单,从中可以选择较低的分辨率用于安装目的。

  3. 选择 安装 并按照 第 3 章,安装步骤 中所述进行安装。

过程 4.4: 文本模式安装
  1. 启动进行安装。

  2. F3 并选择 文本模式

  3. 选择 安装 并按照 第 3 章,安装步骤 中所述进行安装。

程序 4.5: VNC 安装
  1. 启动进行安装。

  2. 在启动参数提示符处输入以下文本

    vnc=1 vncpassword=SOME_PASSWORD

    SOME_PASSWORD 替换为用于 VNC 安装的密码。

  3. 选择 安装,然后按 Enter 键开始安装。

    系统不会立即启动图形化安装程序,而是继续在文本模式下运行。然后系统会停止,显示一条消息,其中包含可以通过浏览器界面或 VNC 查看器应用程序访问安装程序的 IP 地址和端口号。

  4. 使用浏览器访问安装程序时,启动浏览器并输入未来 openSUSE Leap 机器的安装程序提供的地址信息,然后按 Enter

    http://IP_ADDRESS_OF_MACHINE:5801

    浏览器窗口中会打开一个对话框,提示您输入 VNC 密码。输入密码并按照 第 3 章,《安装步骤》 中所述继续安装。

    Important
    重要提示:跨平台支持

    只要启用了 Java 支持,VNC 安装即可与任何操作系统下的任何浏览器配合使用。

    在提示时向您的 VNC 查看器提供 IP 地址和密码。将打开一个窗口,显示安装对话框。像往常一样继续安装。

4.6 仅显示最小启动屏幕 编辑源文件

您已将介质插入驱动器,BIOS 例程已完成,系统启动一个最小的基于文本的界面。这可能发生在没有足够图形内存来渲染图形启动屏幕的任何机器上。

虽然文本启动屏幕看起来很小,但它提供的功能几乎与图形界面相同。

启动选项

与图形界面不同,不能使用键盘的游标键选择不同的启动参数。文本模式启动屏幕的启动菜单提供可以在启动提示符处输入的关键字。这些关键字与图形版本中的选项匹配。输入您的选择并按 Enter 键启动启动过程。

自定义启动选项

选择启动参数后,在启动提示符处输入相应的关键字,或按照 第 4.4 节,“启动失败” 中所述输入一些自定义启动参数。要启动安装过程,请按 Enter 键。

屏幕分辨率

使用功能键 (F1 ... F12) 确定安装的屏幕分辨率。如果您需要以文本模式启动,请选择 F3

第 II 部分 管理 编辑源文件

5 使用 YaST 管理用户

在安装过程中,您可能为系统创建了一个本地用户。使用 YaST 模块 用户和组管理,您可以添加用户或编辑现有用户。它还允许您配置系统以使用网络服务器对用户进行身份验证。

6 使用 YaST 更改语言和国家/地区设置

本章介绍如何配置语言和国家/地区设置。您可以为整个系统全局更改语言,为某些用户或桌面单独更改语言,或为单个应用程序临时更改语言。此外,您可以配置辅助语言并调整日期和国家/地区设置。

7 打印机操作

openSUSE® Leap 支持使用多种类型的打印机,包括远程网络打印机。可以使用 YaST 手动或通过 YaST 配置打印机。有关配置说明,请参阅第 17 章,设置打印机。图形和命令行实用程序都可用于启动和管理…

8 使用 FUSE 访问文件系统

FUSE 是 用户空间文件系统 的缩写。这意味着您可以将文件系统配置和挂载为非特权用户。通常,您需要 root 权限才能执行此任务。FUSE 本身是一个内核模块。结合插件,它允许您扩展 FUSE 以访问几乎所有文件系统,例如远程 SSH 连接、ISO 镜像等。

5 使用 YaST 管理用户 编辑源文件

在安装过程中,您可能为系统创建了一个本地用户。使用 YaST 模块 用户和组管理,您可以添加用户或编辑现有用户。它还允许您配置系统以使用网络服务器对用户进行身份验证。

5.1 用户和组管理对话框 编辑源文件

要管理用户或组,请启动 YaST,然后单击 安全性和用户 › 用户和组管理。或者,通过从命令行运行 sudo yast2 users & 直接启动 用户和组管理 对话框。

YaST user and group administration
图 5.1: YaST 用户和组管理

每个用户都分配了一个系统范围内的用户 ID (UID)。除了可以登录到您的机器的用户之外,还有一些仅供内部使用的 系统用户。每个用户都分配到一个或多个组。与 系统用户 类似,也有一些仅供内部使用的 系统组

主窗口显示几个选项卡,具体取决于您选择查看和修改的用户集(本地用户、网络用户、系统用户)。这些选项卡允许您执行以下任务

管理用户帐户

用户 选项卡创建、修改、删除或临时禁用用户帐户,如 第 5.2 节,“管理用户帐户” 中所述。了解有关强制执行密码策略、使用加密主目录或管理磁盘配额的高级选项,请参阅 第 5.3 节,“用户帐户的其他选项”

更改默认设置

本地用户帐户是根据在 新用户默认值 选项卡上定义的设置创建的。了解如何更改默认组分配,或更改主目录的默认路径和访问权限,请参阅 第 5.4 节,“更改本地用户的默认设置”

将用户分配到组

了解如何将组分配给单个用户,请参阅 第 5.5 节,“将用户分配到组”

管理组

选项卡,您可以添加、修改或删除现有组。有关如何执行此操作的信息,请参阅 第 5.6 节,“管理组”

更改用户身份验证方法

当您的机器连接到提供用户身份验证方法(如 NIS 或 LDAP)的网络时,您可以选择在 身份验证设置 选项卡上选择几种身份验证方法。有关更多信息,请参阅 第 5.7 节,“更改用户身份验证方法”

对于用户和组管理,该对话框提供类似的功能。您可以轻松地通过选择对话框顶部的相应选项卡在用户和组管理视图之间切换。

筛选选项允许您定义要修改的用户或组集:在 用户 选项卡上,单击 设置筛选器 以查看和编辑用户或组。它们根据某些类别列出,例如 本地用户LDAP 用户(如果适用)。使用 设置筛选器 › 自定义筛选器,您还可以设置和使用自定义筛选器。

根据您选择的筛选器,对话框中的并非所有以下选项和功能都可用。

5.2 管理用户帐户 编辑源文件

YaST 允许您创建、修改、删除或临时禁用用户帐户。除非您是经验丰富的用户或管理员,否则请勿修改用户帐户。

Note
注意:更改现有用户的用户 ID

文件所有权与用户名而非用户 ID 相关联。更改用户 ID 后,用户主目录中的文件将自动调整以反映此更改。但是,在更改 ID 后,用户不再拥有他们在文件系统中其他位置创建的文件,除非手动修改这些文件的文件所有权。

以下说明演示如何设置默认用户帐户。有关更多选项,请参阅 第 5.3 节,“用户帐户的其他选项”

程序 5.1: 添加或修改用户帐户
  1. 打开 YaST 用户和组管理 对话框,然后单击 用户 选项卡。

  2. 使用 设置筛选器 定义要管理的用户集。该对话框列出了系统中的用户以及用户所属的组。

  3. 要修改现有用户的选项,请选择条目并单击 编辑

    要创建新用户帐户,请单击 添加

  4. 在第一个选项卡上输入适当的用户数据,例如 用户名 (用于登录)和 密码。这些数据足以创建一个新用户。如果您现在单击 确定,系统将自动分配用户 ID 并将所有其他值设置为默认值。

  5. 如果希望接收系统通知,请激活 接收系统邮件。这会为 root 创建一个邮件别名,用户无需先以 root 身份登录即可读取系统邮件。

    系统服务发送的邮件存储在本地邮箱 /var/spool/mail/USERNAME 中,其中 USERNAME 是所选用户的登录名。要读取电子邮件,可以使用 mail 命令。

  6. 要调整更多详细信息,例如用户 ID 或用户主目录的路径,请在 详细信息 选项卡上执行此操作。

    如果您需要重新定位现有用户的主目录,请在此处输入新主目录的路径,并使用 移动到新位置 移动当前主目录的内容。否则,将创建一个新的主目录,而不会包含任何现有数据。

  7. 要强制用户定期更改密码或设置其他密码选项,请切换到 密码设置 并调整选项。有关更多详细信息,请参阅 第 5.3.2 节,“强制执行密码策略”

  8. 如果所有选项均已根据您的意愿设置,请单击 确定

  9. 单击 确定 关闭管理对话框并保存更改。现在,新添加的用户可以使用您创建的登录名和密码登录系统。

    或者,要保存所有更改而不退出 用户和组管理 对话框,请单击 专家选项 › 立即写入更改

Warning
警告:请勿重命名 root 帐户

虽然从技术上来说可以重命名 root 帐户,但某些应用程序、脚本或第三方产品可能依赖于名为 root 的用户的存在。虽然这种配置始终针对单个环境,但必要的调整可能会被供应商更新覆盖,因此这会成为一项持续的任务,而不是一次性设置。这在涉及第三方应用程序的复杂设置中尤其如此,需要与所有相关供应商核实重命名 root 帐户是否受支持。

由于无法预见重命名 root 帐户的影响,SUSE 不支持重命名 root 帐户。

通常,重命名 root 帐户的目的是隐藏它或使其不可预测。但是,/etc/passwd 需要常规用户具有 644 权限,因此系统中的任何用户都可以检索用户 ID 0 的登录名。有关更好地保护 root 帐户的方法,请参阅 “安全和加固指南”丛书,第 14 章“用户管理”,第 14.5 节“限制 root 登录”“安全和加固指南”丛书,第 14 章“用户管理”,第 14.5.3 节“限制 SSH 登录”

Tip
提示:匹配用户 ID

将(本地)用户 ID 与网络中的 ID 匹配会很有用。例如,笔记本电脑上的新(本地)用户应与具有相同用户 ID 集成到网络环境中。这可确保用户在“离线”创建的文件所有权与直接在网络上创建的文件所有权相同。

程序 5.2: 禁用或删除用户帐户
  1. 打开 YaST 用户和组管理 对话框,然后单击 用户 选项卡。

  2. 要临时禁用用户帐户而不删除它,请从列表中选择用户并单击 编辑。激活 禁用用户登录。在您重新启用帐户之前,用户无法登录到您的机器。

  3. 要删除用户帐户,请从列表中选择用户并单击 删除。选择是否还要删除用户的主目录或保留数据。

5.3 用户帐户的其他选项 编辑源文件

除了默认用户帐户的设置之外,openSUSE® Leap 还提供更多选项。例如,强制执行密码策略、使用加密主目录或为用户和组定义磁盘配额的选项。

5.3.1 自动登录和无密码登录 编辑源文件

如果您使用 GNOME 桌面环境,您可以为某个用户配置 自动登录,并为所有用户配置 无密码登录。自动登录会在启动时自动将用户登录到桌面环境。此功能一次只能为一个用户激活。无密码登录允许所有用户在登录管理器中输入用户名后登录到系统。

Warning
警告:安全风险

在可以被多个人访问的机器上启用 自动登录无密码登录 存在安全风险。无需身份验证,任何用户都可以访问您的系统和数据。如果您的系统包含机密数据,请不要使用此功能。

要激活自动登录或无密码登录,请在 YaST 用户和组管理 中使用 专家选项 › 登录设置 访问这些功能。

5.3.2 强制密码策略 编辑源文件

在具有多个用户的任何系统中,强制执行基本的密码安全策略是一个好主意。用户应定期更改密码,并使用不易被利用的强密码。对于本地用户,请按以下步骤操作

过程 5.3: 配置密码设置
  1. 打开 YaST 用户和组管理对话框,并选择 用户选项卡。

  2. 选择用户并单击 编辑

  3. 切换到 密码设置选项卡。用户的上次密码更改会显示在该选项卡上。

  4. 要强制用户在下次登录时更改密码,请激活 强制更改密码

  5. 要强制密码轮换,请设置 相同密码的最大天数相同密码的最小天数

  6. 要提醒用户在密码过期前更改密码,请设置 密码到期前发出警告的天数

  7. 要限制用户在密码过期后可以登录的时间,请更改 密码过期后可用的登录天数中的值。

  8. 您还可以为整个帐户指定一个特定的过期日期。以 YYYY-MM-DD 格式输入 过期日期。此设置与密码无关,而是适用于帐户本身。

  9. 有关选项和默认值的更多信息,请单击 帮助

  10. 使用 确定应用您的更改。

5.3.3 管理配额 编辑源文件

为了防止系统容量在没有通知的情况下耗尽,系统管理员可以为用户或组设置配额。可以为一个或多个文件系统定义配额,并限制可以使用的磁盘空间量以及可以创建的 inode(索引节点)的数量。Inode 是文件系统上的数据结构,用于存储有关常规文件、目录或其他文件系统对象的基本信息。它们存储文件系统对象的所有属性(如用户和组所有权、读、写或执行权限),但不包括文件名和内容。

openSUSE Leap 允许使用 softhard 配额。此外,还可以定义允许用户或组在一段时间内超出其配额的宽限时间间隔。

软配额

定义一个警告级别,在该级别下会通知用户他们正在接近其限制。管理员可能会敦促用户清理并减少分区上的数据。软配额限制通常低于硬配额限制。

硬配额

定义拒绝写入请求的限制。达到硬配额后,无法再存储任何数据,应用程序可能会崩溃。

宽限期

定义软配额溢出与发出警告之间的时间。通常设置为一小时或几小时的较低值。

过程 5.4: 启用分区的配额支持

要为特定用户和组配置配额,首先需要在 YaST 专家分区器中为相应分区启用配额支持。

  1. 在 YaST 中,选择 系统 › 分区器,然后单击 以继续。

  2. 专家分区器中,选择要启用配额的分区,然后单击 编辑

  3. 单击 Fstab 选项并激活 启用配额支持。如果尚未安装 quota 包,则在确认相应消息时使用 将安装它。

  4. 确认您的更改并退出 专家分区器

  5. 通过输入以下命令,确保服务 quotaon 正在运行

    > sudo systemctl status quotaon.service

    它应该标记为 active。如果不是,请使用命令 systemctl start quotaon.service 启动它。

过程 5.5: 为用户或组设置配额

现在您可以为特定用户或组定义软配额或硬配额,并设置时间段作为宽限时间间隔。

  1. 在 YaST 用户和组管理中,选择要设置配额的用户或组,然后单击 编辑

  2. 插件选项卡上,选择 管理用户配额条目,然后单击 启动以打开 配额配置对话框。

  3. 文件系统中,选择应应用配额的分区。

  4. 大小限制下方,限制磁盘空间量。输入用户或组可以在此分区上拥有的 1 KB 块数。指定 软限制硬限制值。

  5. 此外,您可以限制用户或组可以在分区上拥有的 inode 数量。在 Inode 限制下方,输入 软限制硬限制

  6. 只有当用户或组已经超出为大小或 inode 指定的软限制时,才能定义宽限时间间隔。否则,与时间相关的文本框将不会被激活。指定用户或组允许超出上述限制的时间段。

  7. 使用 确定确认您的设置。

  8. 单击 确定以关闭管理对话框并保存更改。

    或者,要保存所有更改而不退出 用户和组管理 对话框,请单击 专家选项 › 立即写入更改

openSUSE Leap 还提供命令行工具,如 repquotawarnquota。系统管理员可以使用这些工具来控制磁盘使用情况或向超出其配额的用户发送电子邮件通知。使用 quota_nld,管理员还可以将有关超出配额的内核消息转发到 D-BUS。有关更多信息,请参阅 repquotawarnquotaquota_nld 手册页。

5.4 更改本地用户的默认设置 编辑源文件

在创建新的本地用户时,YaST 会使用几个默认设置。这些设置包括用户所属的组,或用户主目录的访问权限。您可以更改这些默认设置以满足您的要求

  1. 打开 YaST 用户和组管理对话框,并选择 新用户默认值选项卡。

  2. 要更改新用户应自动所属的组,请从 默认组中选择另一个组。

  3. 如果您不想使用 /home/USERNAME 作为新用户主目录的默认路径,请修改 主目录路径前缀

  4. 要更改新创建的主目录的默认权限模式,请在 主目录 Umask 中调整 umask 值。有关 umask 的更多信息,请参阅 “安全和加固指南”书籍,第 19 章“Linux 中的访问控制列表”umask 手册页。

  5. 有关各个选项的信息,请单击 帮助

  6. 使用 确定应用您的更改。

5.5 将用户分配到组 编辑源文件

本地用户根据 用户和组管理对话框的 新用户默认值选项卡中的默认设置分配到几个组。在以下内容中,了解如何修改单个用户的组分配。如果您需要更改新用户的默认组分配,请参阅 第 5.4 节,“更改本地用户的默认设置”

过程 5.6: 更改用户的组分配
  1. 打开 YaST 用户和组管理对话框,然后单击 用户选项卡。它列出了用户以及用户所属的组。

  2. 单击 编辑并切换到 详细信息选项卡。

  3. 要更改用户所属的组,请单击 默认组并从列表中选择该组。

  4. 要将用户分配到其他辅助组,请在 附加组列表中激活相应的复选框。

  5. 单击 确定以应用您的更改。

  6. 单击 确定以关闭管理对话框并保存更改。

    或者,要保存所有更改而不退出 用户和组管理 对话框,请单击 专家选项 › 立即写入更改

5.6 管理组 编辑源文件

使用 YaST,您可以轻松添加、修改或删除组。

过程 5.7: 创建和修改组
  1. 打开 YaST 用户和组管理对话框,然后单击 选项卡。

  2. 使用 设置筛选器定义要管理的组集。该对话框列出了系统中的组。

  3. 要创建新组,请单击 添加

  4. 要修改现有组,请选择该组并单击 编辑

  5. 在以下对话框中,输入或更改数据。右侧的列表显示了所有可用用户和系统用户的概述,它们可以是该组的成员。

  6. 要将现有用户添加到新组,请从 组员列表中选择它们,通过选中相应的框。要从组中删除它们,请取消选中该框。

  7. 单击 确定以应用您的更改。

  8. 单击 确定以关闭管理对话框并保存更改。

    或者,要保存所有更改而不退出 用户和组管理 对话框,请单击 专家选项 › 立即写入更改

要删除组,它不应包含任何组员。要删除组,请从列表中选择它并单击 删除。单击 确定以关闭管理对话框并保存更改。或者,要保存所有更改而不退出 用户和组管理对话框,请单击 专家选项 › 立即写入更改

5.7 更改用户身份验证方法 编辑源文件

当您的机器连接到网络时,您可以更改身份验证方法。可用的选项如下

NIS

用户在 NIS 服务器上集中管理,适用于网络中的所有系统。有关详细信息,请参阅 “安全和加固指南”书籍,第 3 章“使用 NIS”

SSSD

系统安全服务守护程序 (SSSD) 可以本地缓存用户数据,然后允许用户使用该数据,即使实际目录服务暂时不可访问。有关详细信息,请参阅 “安全和加固指南”书籍,第 4 章“使用 YaST 设置身份验证客户端”,第 4.2 节“SSSD”

Samba

SMB 身份验证通常用于混合 Linux 和 Windows 网络。有关详细信息,请参阅 “安全和加固指南”书籍,第 7 章“Active Directory 支持”

要更改身份验证方法,请按以下步骤操作

  1. 在 YaST 中,打开 用户和组管理对话框。

  2. 单击 身份验证设置选项卡以显示可用身份验证方法的概述和当前设置。

  3. 要更改身份验证方法,请单击 配置并选择要修改的身份验证方法。这将直接带您到 YaST 中的客户端配置模块。有关适当客户端配置的信息,请参阅以下章节

    NIS:  “安全和加固指南”书籍,第 3 章“使用 NIS”,第 3.2 节“配置 NIS 客户端”

    LDAP:  “安全和加固指南”书籍,第 4 章“使用 YaST 设置身份验证客户端”,第 4.1 节“使用 YaST 配置身份验证客户端”

    SSSD:  “安全和加固指南”书籍,第 4 章“使用 YaST 设置身份验证客户端”,第 4.2 节“SSSD”

  4. 接受配置后,返回到 用户和组管理概述。

  5. 单击 确定以关闭管理对话框。

5.8 默认系统用户 编辑源文件

默认情况下,openSUSE Leap 创建的用户名称无法删除。这些用户通常在 Linux 标准库中定义。以下列表提供了常见用户名称及其用途

默认安装的常见用户名称
bin, daemon

遗留用户,为兼容旧应用程序而包含。新的应用程序不应再使用此用户名。

gdm

由 GNOME 显示管理器 (GDM) 用于提供图形登录并管理本地和远程显示。

lp

由打印守护进程用于 Common Unix Printing System (CUPS)。

mail

为邮件程序(如 sendmailpostfix)保留的用户。

man

用于访问 man 手册页。

messagebus

用于访问 D-Bus(桌面总线),一种用于进程间通信的软件总线。守护进程是 dbus-daemon

nobody

不拥有任何文件且不在任何特权组中的用户。如今,它的使用受到限制,因为 Linux 标准库建议为每个守护进程提供一个单独的用户帐户。

nscd

由名称服务缓存守护进程使用。此守护进程是一个查找服务,用于提高 NIS 和 LDAP 的性能。守护进程是 nscd

polkitd

由 PolicyKit 授权框架使用,该框架定义和处理非特权进程的授权请求。守护进程是 polkitd

postfix

由 Postfix 邮件程序使用。

pulse

由 Pulseaudio 音频服务器使用。

root

由系统管理员使用,提供所有适当的权限。

rpc

rpcbind 命令使用,一个 RPC 端口映射器。

rtkit

rtkit 包使用,该包为实时调度模式提供一个 D-Bus 系统服务。

salt

Salt 提供的并行远程执行的用户。守护进程名为 salt-master

scard

用于与智能卡和读卡器通信的用户。守护进程名为 pcscd

srvGeoClue

由 GeoClue D-Bus 服务使用,以提供位置信息。

sshd

由安全 Shell 守护进程 (SSH) 使用,以确保通过不安全网络进行安全加密的通信。

statd

由网络状态监视器协议 (NSM) 使用,该协议在 rpc.statd 守护进程中实现,以侦听重新启动通知。

systemd-coredump

/usr/lib/systemd/systemd-coredump 命令使用,以获取、保存和处理核心转储。

systemd-network

/usr/lib/systemd/systemd-networkd 命令使用,以管理网络。

systemd-timesync

/usr/lib/systemd/systemd-timesyncd 命令使用,以将本地系统时钟与远程网络时间协议 (NTP) 服务器同步。

5.9 默认系统组 编辑源代码

默认情况下,SLE 创建多个用户组,这些用户组由系统服务使用。以下列表描述了必需和常见的可选组的示例。

root

具有所有权限的管理员组。

bin

为兼容旧应用程序而包含。新的应用程序不应使用此组。

daemon

以前用于限制守护进程对系统的访问。现在守护进程应在其自己的 UID/GID 下运行,以将守护进程彼此分离。

audio

音频设备的权限。

gdm

GNOME 显示管理器的权限。

chrony

时间同步服务的权限。

kvm

QEMU 机器模拟工具包的权限。

libvirt

虚拟化堆栈的权限。

lp

打印操作的权限。

mail

邮件服务的权限。

man

手册页和 man 命令的特定权限。

sshd

SSH 通信协议守护进程的权限。

6 使用 YaST 更改语言和国家/地区设置 编辑源代码

摘要

本章介绍如何配置语言和国家/地区设置。您可以为整个系统全局更改语言,为某些用户或桌面单独更改语言,或为单个应用程序临时更改语言。此外,您可以配置辅助语言并调整日期和国家/地区设置。

如果您在不同的国家/地区工作或在多语言环境中工作,则应相应地配置系统。openSUSE® Leap 可以并行处理不同的 区域设置。区域设置是一组参数,定义了用户界面中反映的语言和国家/地区设置。

系统语言在安装期间选择,并相应地调整键盘和时区设置。但是,您可以安装其他语言并确定要将哪些已安装的语言设置为默认语言。

对于这些任务,请使用 YaST 语言模块,如 第 6.1 节,“更改系统语言” 中所述。安装辅助语言以获得可选的本地化,如果您需要在主要语言之外的语言中启动应用程序或桌面环境,则需要安装辅助语言。

YaST 时区模块允许您相应地调整国家/地区和时区设置。它还允许您将系统时钟与时间服务器同步。有关详细信息,请参阅 第 6.2 节,“更改国家/地区和时间设置”

6.1 更改系统语言 编辑源代码

根据您使用桌面环境的方式以及您是想将整个系统切换到另一种语言还是仅切换桌面环境,您有几种选择

全局更改系统语言

按照 第 6.1.1 节,“使用 YaST 修改系统语言”第 6.1.2 节,“切换默认系统语言” 中所述,使用 YaST 安装其他本地化包并设置默认语言。更改在下次登录后生效。为了确保整个系统反映更改,请重新启动系统或关闭并重新启动所有正在运行的服务、应用程序和程序。

仅更改桌面环境的语言

前提是您已使用 YaST 安装了桌面环境所需的语言包,如下所示,您可以使用桌面的控制中心切换桌面环境的语言。有关详细信息,请参阅 “GNOME 用户指南”第 3 章“自定义您的设置”,第 3.2 节“配置语言设置” 在重新启动 X 服务器后,您的整个桌面环境将反映您选择的新语言。不属于桌面框架的应用程序不受此更改影响,并且可能仍然以 YaST 中设置的语言显示。

临时为单个应用程序切换语言

您还可以以另一种语言(已使用 YaST 安装)运行单个应用程序。为此,请从命令行启动它,并如 第 6.1.3 节,“切换标准 X 和 GNOME 应用程序的语言” 中所述指定语言代码。

6.1.1 使用 YaST 修改系统语言 编辑源代码

YaST 支持两种不同的语言类别

主要语言

YaST 中设置的主要语言适用于整个系统,包括 YaST 和桌面环境。只要可用,就会使用此语言,除非您手动指定另一种语言。

辅助语言

安装辅助语言以使您的系统支持多种语言。可以手动选择已安装为辅助语言的语言,并在需要时使用。例如,使用辅助语言以特定语言启动应用程序以用该语言进行文字处理。

在安装其他语言之前,确定应该将哪种语言设置为默认系统语言(主要语言)。

要访问 YaST 语言模块,请启动 YaST 并单击 系统 › 语言。或者,通过从命令行运行 sudo yast2 language & 直接启动 语言 对话框。

过程 6.1: 安装其他语言

在安装其他语言时,YaST 允许您为用户 root 设置不同的区域设置,请参阅 步骤 4用户 root 的区域设置 选项确定在 /etc/sysconfig/language 文件中为 root 设置的区域设置变量 (LC_*)。您可以将它们设置为与普通用户相同的区域设置。或者,您可以保持它们不受任何语言更改的影响,或者仅将变量 RC_LC_CTYPE 设置为与普通用户相同的值。RC_LC_CTYPE 变量设置语言特定函数调用的本地化。

  1. 要在 YaST 语言模块中添加语言,请选择要安装的 辅助语言

  2. 要使语言成为默认语言,请将其设置为 主要语言

  3. 此外,根据需要调整键盘和时区选项。

    Tip
    提示:高级设置

    对于高级键盘或时区设置,请在 YaST 中选择 硬件 › 系统键盘布局系统 › 日期和时间。有关更多信息,请参阅 第 15 章,设置系统键盘布局第 6.2 节,“更改国家/地区和时间设置”

  4. 要更改特定于用户 root 的语言设置,请单击 详细信息

    1. 用户 root 的区域设置 设置为所需的值。有关更多信息,请单击 帮助

    2. 决定是否为 root 使用 使用 UTF-8 编码

  5. 如果您的区域设置未包含在可用主要语言列表中,请尝试使用 详细区域设置 指定它。但是,这可能会导致某些区域设置不完整。

  6. 使用 确定 确认对话框中的更改。如果您选择了辅助语言,YaST 将安装其他语言的本地化软件包。

系统现在是多语言的。但是,要以主要语言以外的语言启动应用程序,您需要如 第 6.1.3 节,“切换标准 X 和 GNOME 应用程序的语言” 中所述显式设置所需的语言。

6.1.2 切换默认系统语言 编辑源代码

要全局更改系统的默认语言,请按照以下步骤操作

  1. 启动 YaST 语言模块。

  2. 选择所需的新的系统语言作为 主要语言

    Important
    重要:删除以前的系统语言

    如果您切换到不同的主要语言,以前的主要语言的本地化软件包将从系统中删除。要切换默认系统语言,但将以前的主要语言保留为辅助语言,请将其添加为 辅助语言,通过选中相应的复选框。

  3. 根据需要调整键盘和时区选项。

  4. 使用 确定 确认您的更改。

  5. YaST 应用更改后,重新启动当前的 X 会话(例如,注销并重新登录)以使 YaST 和桌面应用程序反映您新的语言设置。

6.1.3 切换标准 X 和 GNOME 应用程序的语言 编辑源代码

在您使用 YaST 安装了相应的语言后,您可以以另一种语言运行单个应用程序。

从命令行启动应用程序,使用以下命令

LANG=LANGUAGE application

例如,要以德语启动 f-spot,请运行 LANG=de_DE f-spot。对于其他语言,请使用适当的语言代码。使用 locale  -av 命令获取可用语言代码的列表。

6.2 更改国家/地区和时间设置 编辑源代码

使用 YaST 日期和时间模块,调整系统日期、时钟和时区信息以适应您正在工作的区域。要访问 YaST 模块,请启动 YaST 并单击 系统 › 日期和时间。或者,通过从命令行运行 sudo yast2 timezone & 直接启动 时钟和时区 对话框。

首先,选择一个通用区域,例如 欧洲。选择一个与您正在工作的国家/地区相匹配的适当国家/地区,例如 德国

根据您的工作站上运行的操作系统,相应地调整硬件时钟设置

  • 如果您的机器上运行另一个操作系统,例如 Microsoft Windows*,您的系统可能不使用 UTC,而是本地时间。在这种情况下,请停用 硬件时钟设置为 UTC

  • 如果您只在机器上运行 Linux,请将硬件时钟设置为 UTC,并让系统执行从夏令时到标准时间的变化。

Important
重要:将硬件时钟设置为UTC

标准时间到夏令时的切换(反之亦然)只有在硬件时钟(CMOS 时钟)设置为 UTC 时才能自动执行。如果您使用 NTP 自动时间同步,也适用此规则,因为自动同步仅在硬件时钟和系统时钟之间的时间差小于 15 分钟时才执行。

由于错误系统时间可能导致严重问题(备份失败、邮件消息丢失、远程文件系统挂载失败等),因此强烈建议始终将硬件时钟设置为 UTC。

您可以手动更改日期和时间,或者选择与 NTP 服务器同步您的机器,可以永久同步,也可以仅用于调整您的硬件时钟。

过程 6.2: 手动调整时间和日期
  1. 在 YaST 时区模块中,单击 其他设置 以设置日期和时间。

  2. 选择 手动 并输入日期和时间值。

  3. 确认您的更改。

过程 6.3: 使用 NTP 服务器设置日期和时间
  1. 单击 其他设置 以设置日期和时间。

  2. 选择 与 NTP 服务器同步

  3. 如果尚未填充,请输入 NTP 服务器的地址。

  4. 使用 配置 按钮,您可以打开高级 NTP 配置。有关详细信息,请参阅 “参考”手册,第 18 章“使用 NTP 同步时间”,第 18.1 节“使用 YaST 配置 NTP 客户端”

  5. 确认您的更改。

7 打印机操作 编辑源文件

openSUSE® Leap 支持使用多种类型的打印机进行打印,包括远程网络打印机。打印机可以手动配置,也可以使用 YaST 进行配置。有关配置说明,请参阅 第 17 章,设置打印机。图形和命令行实用程序都可用于启动和管理打印作业。如果您的打印机无法按预期工作,请参阅 第 7.8 节,“故障排除”

CUPS(通用 Unix 打印系统)是 openSUSE Leap 中的标准打印系统。

打印机可以通过接口(例如 USB 或网络)和打印机语言来区分。购买打印机时,请确保打印机具有受支持的接口(USB、以太网或 Wi-Fi)和合适的打印机语言。打印机可以根据以下三种打印机语言类别进行分类

PostScript 打印机

PostScript 是 Linux 和 Unix 中大多数打印作业使用的打印机语言,由内部打印系统生成和处理。如果打印机可以直接处理 PostScript 文档,而无需在打印系统中进行额外的转换阶段,则可以减少潜在的错误源。

目前,PDF 正在取代 PostScript 作为标准的打印作业格式。已经存在支持 PostScript+PDF 打印机,除了 PostScript 之外,它们还可以直接打印 PDF。对于传统的 PostScript 打印机,需要在打印工作流程中将 PDF 转换为 PostScript。

标准打印机(例如 PCL 和 ESC/p 等语言)

对于已知的打印机语言,打印系统可以使用 Ghostscript 将 PostScript 作业转换为相应的打印机语言。这个处理阶段称为解释。最著名的语言是 PCL(由惠普打印机及其克隆机使用)和 ESC/P(由爱普生打印机使用)。这些打印机语言通常受 Linux 支持,并能产生令人满意的打印结果。Linux 可能无法处理某些特殊的打印机功能。除了惠普和爱普生之外,目前没有打印机制造商为 Linux 开发驱动程序,并以开源许可方式向 Linux 发行版提供这些驱动程序。

专有打印机(也称为 GDI 打印机)

这些打印机不支持任何常见的打印机语言。它们使用自己的未公开的打印机语言,这些语言在发布新型号时可能会发生变化。通常,这些打印机仅提供 Windows 驱动程序。有关更多信息,请参阅 第 7.8.1 节,“缺少标准打印机语言支持的打印机”

在购买新打印机之前,请参阅以下来源,以检查您打算购买的打印机的支持情况

https://www.openprinting.org/printers

OpenPrinting 主页和打印机数据库。该数据库显示最新的 Linux 支持状态。但是,Linux 发行版只能集成生产时可用的驱动程序。因此,当前评为 完美支持 的打印机在发布最新 openSUSE Leap 版本时可能没有此状态。因此,数据库不一定指示正确的状态,而仅提供近似值。

https://pages.cs.wisc.edu/~ghost/

Ghostscript 网页。

/usr/share/doc/packages/ghostscript/catalog.devices

内置 Ghostscript 驱动程序列表。

7.1 CUPS 工作流程 编辑源文件

用户创建一个打印作业。打印作业由要打印的数据以及有关分线器的信息组成。这包括打印机名称或打印队列名称,以及可选地,有关筛选器的信息,例如特定于打印机的选项。

对于每个打印机,至少存在一个专用的打印队列。分线器将打印作业保存在队列中,直到所需的打印机准备好接收数据。当打印机准备好时,分线器通过筛选器和后端将数据发送到打印机。

筛选器将应用程序生成的打印数据(通常是 PostScript 或 PDF,也可能是 ASCII、JPEG 等)转换为特定于打印机的数据(PostScript、PCL、ESC/P 等)。打印机的功能在 PPD 文件中描述。PPD 文件包含特定于打印机的选项以及启用这些选项所需的参数。筛选器系统确保用户选择的选项已启用。

如果使用 PostScript 打印机,筛选器系统会将数据转换为特定于打印机的 PostScript。这不需要打印机驱动程序。如果使用非 PostScript 打印机,筛选器系统会将数据转换为特定于打印机的数据。这需要适合您的打印机的打印机驱动程序。后端从筛选器接收特定于打印机的数据,然后将其传递到打印机。

7.2 连接打印机的方法和协议 编辑源文件

有多种可能性可以将打印机连接到系统。CUPS 的配置不区分本地打印机和通过网络连接到系统的打印机。有关打印机连接的更多信息,请阅读文章 CUPS 概览,网址为 https://en.opensuse.net.cn/SDB:CUPS_in_a_Nutshell

Warning
警告:在运行的系统中更改电缆连接

连接打印机到机器时,请不要忘记只能在运行过程中插入或拔出 USB 设备。为避免损坏您的系统或打印机,请在更改任何非 USB 连接之前关闭系统。

7.3 安装软件 编辑源文件

PPD(PostScript 打印机描述)是描述属性(如分辨率)和选项(如双面单元的可用性)的计算机语言。这些描述对于在 CUPS 中使用打印机选项是必需的。如果没有 PPD 文件,打印数据将以 原始 状态转发到打印机,这不是期望的结果。

要配置 PostScript 打印机,最好的方法是获取合适的 PPD 文件。许多 PPD 文件在 manufacturer-PPDsOpenPrintingPPDs-postscript 包中可用。请参阅 第 7.7.3 节,“多个包中的 PPD 文件”第 7.8.2 节,“没有适用于 PostScript 打印机的合适的 PPD 文件”

可以将新的 PPD 文件存储在目录 /usr/share/cups/model/ 中,或者使用 YaST 添加到打印系统,如 第 17.1.1 节,“使用 YaST 添加驱动程序” 中所述。随后,在打印机设置期间可以选择 PPD 文件。

如果打印机制造商要求您安装整个软件包,请务必小心。这种安装可能会导致丢失 openSUSE Leap 提供的支持。此外,打印命令可能会以不同的方式工作,系统可能无法再处理其他制造商的设备。因此,不建议安装制造商软件。

7.4 网络打印机 编辑源文件

网络打印机可以支持多种协议。虽然大多数受支持的协议都是标准化的,但某些制造商会修改标准。然后,制造商仅为少数操作系统提供驱动程序,并且很少为 Linux 提供驱动程序。目前的情况是,您不能假定每个协议在 Linux 中都能顺利工作。因此,您可能需要尝试几种选项才能实现功能配置。

CUPS 支持 socketLPDIPPsmb 协议。

socket

Socket 指的是纯打印数据直接发送到 TCP socket 的连接。Socket 端口号通常使用 910035。设备 URI(统一资源标识符)语法为:socket://打印机的 IP 地址:端口号,例如:socket://192.168.2.202:9100/

LPD(行打印机守护程序)

LPD 协议在 RFC 1179 中描述。在该协议下,在发送实际打印数据之前,会发送特定的作业相关数据,例如打印队列的 ID。因此,在配置 LPD 协议时必须指定打印队列。不同打印机制造商的实现足以接受任何名称作为打印队列。如有必要,打印机手册应指示使用哪个名称。LPT、LPT1、LP1 或类似名称通常用于此目的。LPD 服务的端口号为 515。示例设备 URI 为 lpd://192.168.2.202/LPT1

IPP(互联网打印协议)

IPP 基于 HTTP 协议。使用 IPP,比其他协议传输更多的作业相关数据。CUPS 使用 IPP 进行内部数据传输。正确配置 IPP 需要打印队列名称。IPP 的端口号为 631。示例设备 URI 为 ipp://192.168.2.202/psipp://192.168.2.202/printers/ps

SMB(Windows 共享)

CUPS 还支持在连接到 Windows 共享的打印机上打印。为此使用的协议是 SMB。SMB 使用端口号 137138139。示例设备 URI 为 smb://user:password@workgroup/smb.example.com/printersmb://user:password@smb.example.com/printersmb://smb.example.com/printer

在配置之前,必须确定打印机支持的协议。如果制造商未提供所需的信息,可以使用命令 nmap(随 nmap 包一起提供)来确定协议。nmap 检查主机上是否有开放端口。例如

> nmap -p 35,137-139,515,631,9100-10000 IP.OF.THE.PRINTER

7.5 使用命令行工具配置 CUPS 编辑源文件

可以使用命令行工具(如 lpinfolpadminlpoptions)配置 CUPS。您需要一个由后端(例如 USB)和参数组成的设备 URI。要确定系统上的有效设备 URI,请使用命令 lpinfo -v | grep ":/"

> sudo lpinfo -v | grep ":/"
direct usb://ACME/FunPrinter%20XL
network socket://192.168.2.253

使用 lpadmin,CUPS 服务器管理员可以添加、删除或管理打印队列。要添加打印队列,请使用以下语法

> sudo lpadmin -p QUEUE -v DEVICE-URI -P PPD-FILE -E

然后,设备(-v)将作为 队列名称-p)可用,使用指定的 PPD 文件(-P)。这意味着您必须知道 PPD 文件和设备 URI 才能手动配置打印机。

不要将 -E 作为第一个选项使用。对于所有 CUPS 命令,-E 作为第一个参数设置使用加密连接。要启用打印机,-E 必须按如下所示使用

> sudo lpadmin -p ps -v usb://ACME/FunPrinter%20XL -P \
/usr/share/cups/model/Postscript.ppd.gz -E

以下示例配置网络打印机

> sudo lpadmin -p ps -v socket://192.168.2.202:9100/ -P \
/usr/share/cups/model/Postscript-level1.ppd.gz -E

有关 lpadmin 的更多选项,请参阅 lpadmin(8) 的手册页。

在打印机设置期间,某些选项设置为默认值。这些选项可以针对每个打印作业进行修改(具体取决于使用的打印工具)。也可以使用 YaST 更改这些默认选项。使用命令行工具,按如下方式设置默认选项

  1. 首先,列出所有选项

    > sudo lpoptions -p QUEUE -l

    示例

    Resolution/Output Resolution: 150dpi *300dpi 600dpi

    激活的默认选项由前导星号(*)标识。

  2. 使用 lpadmin 更改选项

    > sudo lpadmin -p QUEUE -o Resolution=600dpi
  3. 检查新设置

    > sudo lpoptions -p QUEUE -l
    
    Resolution/Output Resolution: 150dpi 300dpi *600dpi

当普通用户运行 lpoptions 时,设置将写入 ~/.cups/lpoptions。但是,root 设置将写入 /etc/cups/lpoptions

7.6 从命令行打印 编辑源文件

要从命令行打印,请输入 lp -d 队列名称 文件名,用相应的名称替换 队列名称文件名

几个应用程序依赖于 lp 命令进行打印。在这种情况下,在应用程序的打印对话框中输入正确的命令,通常无需指定 文件名,例如,lp -d 队列名称

7.7 openSUSE Leap 中的特殊功能 编辑源文件

CUPS 的几个功能已针对 openSUSE Leap 进行调整。此处涵盖了最重要的更改。

7.7.1 CUPS 和防火墙 编辑源文件

在完成 openSUSE Leap 的默认安装后,firewalld 处于活动状态,并且网络接口配置为位于 public 区域,这会阻止传入流量。

firewalld 处于活动状态时,您可能需要对其进行配置,以允许客户端通过允许 mdnsipp 通过内部网络区域来浏览网络打印机。

(有关 firewalld 配置的更多信息,请参阅 “安全和加固指南”一书,第 23 章“伪装和防火墙”,第 23.4 节“firewalld 以及 https://en.opensuse.net.cn/SDB:CUPS_and_SANE_Firewall_settings。)

7.7.1.1 CUPS 客户端 编辑源代码

通常,CUPS 客户端运行在位于防火墙后面的受信任网络环境中的常规工作站上。在这种情况下,建议将网络接口配置为位于 Internal Zone,以便工作站可以在网络内部访问。

7.7.1.2 CUPS 服务器 编辑源代码

如果 CUPS 服务器是受防火墙保护的受信任网络环境的一部分,则应将网络接口配置为防火墙的 Internal Zone。除非您确保它受到特殊的防火墙规则和 CUPS 配置中的安全设置的保护,否则不建议在不受信任的网络环境中设置 CUPS 服务器。

7.7.2 浏览网络打印机 编辑源代码

CUPS 服务器定期通过网络广播共享打印机的可用性和状态信息。客户端可以访问此信息以在打印对话框中显示可用打印机列表,例如。这称为 浏览

CUPS 服务器通过传统的 CUPS 浏览协议或 Bonjour/DNS-SD 通过网络广播其打印队列。要启用浏览网络打印队列,需要在所有通过 CUPS 服务器进行打印的客户端上运行 cups-browsed 服务。默认情况下不会启动 cups-browsed。要启动当前会话中的服务,请使用 sudo systemctl start cups-browsed。要确保在启动后自动启动它,请使用 sudo systemctl enable cups-browsed 在所有客户端上启用它。

如果启动 cups-browsed 后浏览不起作用,则 CUPS 服务器通过 Bonjour/DNS-SD 广播网络打印队列。在这种情况下,您还需要在所有客户端上安装 avahi 包并使用 sudo systemctl start avahi-daemon 启动关联的服务。

有关通过 firewalld 允许打印机浏览的信息,请参阅 第 7.7.1 节,“CUPS 和防火墙”

7.7.3 PPD 文件在多个包中 编辑源代码

YaST 打印机配置使用安装在 /usr/share/cups/model 中的 PPD 文件设置 CUPS 的队列。要查找适合打印机型号的 PPD 文件,YaST 会将硬件检测期间确定的供应商和型号与所有 PPD 文件中的供应商和型号进行比较。为此,YaST 打印机配置会从 PPD 文件中提取的供应商和型号信息生成数据库。

仅使用 PPD 文件和不使用其他信息源进行配置的优点是,/usr/share/cups/model 中的 PPD 文件可以自由修改。例如,如果您有 PostScript 打印机,可以将 PPD 文件直接复制到 /usr/share/cups/model(如果它们尚未存在于 manufacturer-PPDsOpenPrintingPPDs-postscript 包中)以实现打印机的最佳配置。

以下包提供额外的 PPD 文件

  • gutenprint:Gutenprint 驱动程序及其匹配的 PPD

  • splix:SpliX 驱动程序及其匹配的 PPD

  • OpenPrintingPPDs-ghostscript:用于 Ghostscript 内置驱动程序的 PPD

  • OpenPrintingPPDs-hpijs:用于非 HP 打印机的 HPIJS 驱动程序的 PPD

7.8 故障排除 编辑源代码

以下部分涵盖了最常遇到的打印机硬件和软件问题以及解决或规避这些问题的方法。涵盖的主题包括 GDI 打印机、PPD 文件和端口配置。还讨论了常见的网络打印机问题、有缺陷的打印输出和队列处理。

7.8.1 缺少标准打印机语言支持的打印机 编辑源代码

这些打印机不支持任何常见的打印机语言,只能使用特殊的专有控制序列来寻址。因此,它们只能与制造商为其提供驱动程序的操作系统版本一起工作。GDI 是 Microsoft* 为图形设备开发的编程接口。通常,制造商仅为 Windows 提供驱动程序,由于 Windows 驱动程序使用 GDI 接口,这些打印机也称为 GDI 打印机。实际问题不是编程接口,而是这些打印机只能使用各自打印机型号的专有打印机语言来寻址。

某些 GDI 打印机可以切换为以 GDI 模式或标准打印机语言之一运行。请查阅打印机手册,查看是否可行。某些型号需要特殊的 Windows 软件才能进行切换。例如,Windows 打印机驱动程序在从 Windows 打印时可能会始终将打印机切换回 GDI 模式。对于其他 GDI 打印机,可以使用标准打印机语言的扩展模块。

一些制造商为其打印机提供专有驱动程序。专有打印机驱动程序的缺点是无法保证它们与安装的打印系统兼容或适用于多个硬件平台。相反,支持标准打印机语言的打印机不依赖于特殊的打印系统版本或特殊的硬件平台。

与其花时间尝试使专有 Linux 驱动程序工作,不如购买支持标准打印机语言(最好是 PostScript)的打印机可能更具成本效益。这将一次性解决驱动程序问题,无需安装和配置特殊驱动程序软件以及可能因打印系统中的新发展而需要获得的驱动程序更新。

7.8.2 没有适用于 PostScript 打印机的合适的 PPD 文件 编辑源代码

如果 manufacturer-PPDsOpenPrintingPPDs-postscript 包不包含适用于 PostScript 打印机的合适的 PPD 文件,则应该可以使用打印机制造商的驱动程序 CD 中的 PPD 文件或从打印机制造商的网页下载合适的 PPD 文件。

如果 PPD 文件作为 zip 存档 (.zip) 或自解压 zip 存档 (.exe) 提供,请使用 unzip 解压缩。首先,查看 PPD 文件的许可条款。然后使用 cupstestppd 实用程序检查 PPD 文件是否符合 Adobe PostScript 打印机描述文件格式规范,版本 4.3。 如果该实用程序返回 FAIL, 则 PPD 文件中的错误是严重的,并会导致主要问题。应消除 cupstestppd 报告的问题点。如有必要,请向打印机制造商索取合适的 PPD 文件。

7.8.3 网络打印机连接 编辑源代码

识别网络问题

将打印机直接连接到计算机。为了测试,将打印机配置为本地打印机。如果这可行,则问题与网络有关。

检查 TCP/IP 网络

TCP/IP 网络和名称解析必须正常工作。

检查远程 lpd

使用以下命令测试是否可以建立到 HOST 上的 lpd(端口 515)的 TCP 连接

> netcat -z HOST 515 && echo ok || echo failed

如果无法建立到 lpd 的连接,则 lpd 可能未激活或存在基本的网络问题。

前提是相应的 lpd 处于活动状态并且主机接受查询,以 root 身份运行以下命令以查询 HOST 上的 QUEUE 的状态报告

# echo -e "\004queue" \
| netcat -w 2 -p 722 HOST 515

如果 lpd 不响应,则它可能未激活或存在基本的网络问题。如果 lpd 响应,则响应应显示为什么无法在 host 上的 queue 上进行打印。如果您收到类似于 示例 7.1,“来自 lpd 的错误消息” 的响应,则问题是由远程 lpd 引起的。

示例 7.1:来自 lpd 的错误消息
lpd: your host does not have line printer access
lpd: queue does not exist
printer: spooling disabled
printer: printing disabled
检查远程 cupsd

CUPS 网络服务器默认情况下每 30 秒通过 UDP 端口 631 广播其队列。因此,可以使用以下命令测试网络中是否存在广播 CUPS 网络服务器。确保在执行该命令之前停止本地 CUPS 守护程序。

> netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID

如果存在广播 CUPS 网络服务器,则输出将显示为 示例 7.2,“来自 CUPS 网络服务器的广播”

示例 7.2:来自 CUPS 网络服务器的广播
ipp://192.168.2.202:631/printers/queue

可以使用以下命令测试是否可以建立到 HOST 上的 cupsd(端口 631)的 TCP 连接

> netcat -z HOST 631 && echo ok || echo failed

如果无法建立到 cupsd 的连接,则 cupsd 可能未激活或存在基本的网络问题。 lpstat -h HOST -l -t 返回 HOST 上所有队列的状态报告,前提是相应的 cupsd 处于活动状态并且主机接受查询。

可以使用以下命令测试是否可以发送包含单个回车符的打印作业到 HOST 上的 QUEUE。不应打印任何内容。可能会弹出空白页。

> echo -en "\r" \
| lp -d queue -h HOST
故障排除网络打印机或打印服务器机器

打印服务器机器中运行的假脱机程序有时会在处理多个打印作业时引起问题。由于这是由打印服务器机器中的假脱机程序引起的,因此无法解决此问题。作为解决方法,通过使用 TCP 套接字直接寻址连接到打印服务器机器的打印机来绕过打印服务器机器中的假脱机程序。请参阅 第 7.4 节,“网络打印机”

这样,打印服务器机器就被简化为多个数据传输形式(TCP/IP 网络和本地打印机连接)之间的转换器。要使用此方法,您需要知道打印服务器机器上的 TCP 端口。如果打印机连接到打印服务器机器并已打开,则通常可以在打印服务器机器启动一段时间后使用 nmap 实用程序从 nmap 包中确定此 TCP 端口。例如,nmap  IP 地址 可能会为打印服务器机器提供以下输出

Port       State       Service
23/tcp     open        telnet
80/tcp     open        http
515/tcp    open        printer
631/tcp    open        cups
9100/tcp   open        jetdirect

此输出表明连接到打印服务器的打印机可以通过 TCP socket 在 9100 端口进行寻址。默认情况下,nmap 只会检查 /usr/share/nmap/nmap-services 中列出的几个常用端口。要检查所有可能的端口,请使用命令 nmap -p FROM_PORT-TO_PORT IP_ADDRESS。有关更多信息,请参阅 nmap 的 man 手册页。

输入如下命令

> echo -en "\rHello\r\f" | netcat -w 1 IP-address port
cat file | netcat -w 1 IP-address port

以直接向相应的端口发送字符字符串或文件,以测试是否可以通过此端口寻址打印机。

7.8.4 打印输出有缺陷但无错误消息 编辑源文件

对于打印系统,当 CUPS 后端完成将数据传输到接收者(打印机)时,打印作业即被完成。如果接收者进一步处理失败(例如,如果打印机无法打印特定于打印机的数据),打印系统不会注意到这一点。如果打印机无法打印特定于打印机的数据,请选择更适合该打印机的 PPD 文件。

7.8.5 禁用的队列 编辑源文件

如果多次尝试后,将数据传输到接收者完全失败,CUPS 后端(例如 USB 或 socket)会将错误报告给打印系统(cupsd)。后端确定在将数据传输报告为不可能之前,允许多少次不成功的尝试。由于进一步的尝试将是徒劳的,cupsd 会禁用相应队列的打印。在消除问题原因后,系统管理员必须使用命令 cupsenable 重新启用打印。

7.8.6 CUPS 浏览:删除打印作业 编辑源文件

如果 CUPS 网络服务器通过浏览向客户端主机广播其队列,并且客户端主机上有一个合适的本地 cupsd 处于活动状态,则客户端 cupsd 接受来自应用程序的打印作业并将其转发到服务器上的 cupsd。当服务器上的 cupsd 接受打印作业时,会为其分配一个新的作业编号。因此,客户端主机上的作业编号与服务器上的作业编号不同。由于打印作业通常会立即转发,因此无法使用客户端主机上的作业编号将其删除。这是因为客户端 cupsd 在将其转发到服务器 cupsd 后,将打印作业视为已完成。

要删除服务器上的打印作业,请使用如下命令 lpstat -h cups.example.com -o 来确定服务器上的作业编号。假设服务器尚未通过将其发送到打印机来完成打印作业。使用获得的作业编号,按照以下方式删除服务器上的打印作业

> cancel -h cups.example.com QUEUE-JOBNUMBER

7.8.7 有缺陷的打印作业和数据传输错误 编辑源文件

如果在打印过程中关闭打印机或关机,打印作业将保留在队列中。当计算机(或打印机)重新启动时,打印将继续。必须使用 cancel 命令从队列中删除有缺陷的打印作业。

如果打印作业已损坏或主机与打印机之间的通信中发生错误,打印机将无法正确处理数据,并打印出许多包含无法理解字符的纸张。要解决此问题,请按照以下步骤操作

  1. 要停止打印,请从喷墨打印机中取出所有纸张,或打开激光打印机的纸盘。高质量打印机具有用于取消当前打印输出的按钮。

  2. 打印作业可能仍然在队列中,因为只有在将其发送到打印机后才会删除作业。使用 lpstat -o 或 lpstat -h cups.example.com -o 检查当前正在打印的队列。使用 cancel QUEUE-JOBNUMBER 或 cancel -h cups.example.com QUEUE-JOBNUMBER 删除打印作业。

  3. 即使已从队列中删除打印作业,某些数据仍可能传输到打印机。检查是否有 CUPS 后端进程仍在为相应队列运行,并停止它。

  4. 通过关闭打印机一段时间来重置打印机。然后插入纸张并打开打印机。

7.8.8 调试 CUPS 编辑源文件

使用以下通用过程来定位 CUPS 中的问题

  1. 在 /etc/cups/cupsd.conf 中设置 LogLevel debug。

  2. 停止 cupsd。

  3. 删除 /var/log/cups/error_log* 以避免在大型日志文件中搜索。

  4. 启动 cupsd。

  5. 重复导致问题的操作。

  6. 检查 /var/log/cups/error_log* 中的消息以确定问题的原因。

7.8.9 更多信息 编辑源文件

有关 openSUSE Leap 上打印的深入信息,请参见 openSUSE 支持数据库中的 https://en.opensuse.net.cn/Portal:Printing。

8 使用 FUSE 访问文件系统 编辑源文件

摘要

FUSE 是 用户空间文件系统 的缩写。这意味着您可以将文件系统配置和挂载为非特权用户。通常,您需要 root 权限才能执行此任务。FUSE 本身是一个内核模块。结合插件,它允许您扩展 FUSE 以访问几乎所有文件系统,例如远程 SSH 连接、ISO 镜像等。

8.1 配置 FUSE 编辑源文件

在使用 FUSE 之前,需要安装 fuse 包。根据要使用的文件系统,您需要作为单独的包提供的其他插件。有关概述,请参阅 8.5 节,“可用 FUSE 插件”。

通常不需要配置 FUSE。但是,创建一个将所有挂载点组合在一起的目录是一个好主意。例如,您可以创建一个目录 ~/mounts 并将不同的文件系统的子目录插入其中。

8.2 挂载 NTFS 分区 编辑源文件

NTFS(新技术文件系统)是 Windows 的默认文件系统。由于在正常情况下,非特权用户无法使用外部 FUSE 库挂载 NTFS 块设备,因此下面描述的 Windows 分区挂载过程需要 root 权限。

  1. 成为 root 并安装 ntfs-3g 包。

  2. 创建一个用作挂载点的目录,例如 ~/mounts/windows。

  3. 找出您需要的 Windows 分区。使用 YaST 并启动分区程序模块,以查看哪个分区属于 Windows,但不要修改任何内容。或者,成为 root 并执行 /sbin/fdisk -l。查找分区类型为 HPFS/NTFS 的分区。

  4. 以读写模式挂载分区。将占位符 DEVICE 替换为您的 Windows 分区

    > ntfs-3g /dev/DEVICE MOUNT POINT

    要以只读模式使用 Windows 分区,请附加 -o ro

    > ntfs-3g /dev/DEVICE MOUNT POINT -o ro

    ntfs-3g 命令使用当前用户 (UID) 和组 (GID) 来挂载给定的设备。要将写入权限设置为不同的用户,请使用命令 id USER 获取 UID 和 GID 值的输出。使用以下命令设置它

    # id tux
    uid=1000(tux) gid=100(users) groups=100(users),16(dialout),33(video)
    ntfs-3g /dev/DEVICE MOUNT POINT -o uid=1000,gid=100

    在 man 手册页中查找其他选项。

要卸载资源,请运行 fusermount -u MOUNT POINT。

8.3 使用 SSHFS 挂载远程文件系统 编辑源文件

SSH(安全 shell 网络协议)可用于通过安全通道在两台计算机之间交换数据。要通过 FUSE 建立 SSH 连接,请按以下步骤操作

  1. 安装 sshfs 包。

  2. 创建一个用作挂载点的目录。一个好主意是使用 ~/mounts/HOST。将 HOST 替换为您的远程计算机的名称。

  3. 挂载远程文件系统

    # sshfs USER@HOST MOUNT POINT
  4. 输入远程计算机的密码。

要卸载资源,请运行 fusermount -u MOUNT POINT。

8.4 挂载 ISO 文件系统 编辑源文件

要查看 ISO 镜像,可以使用 fuseiso 包将其挂载

  1. 安装 fuseiso 包。

  2. 创建一个用作挂载点的目录,例如 ~/mounts/iso。

  3. 挂载 ISO 镜像

    # fuseiso ISO_IMAGE MOUNT POINT

您只能从 ISO 镜像读取内容,但无法写回。要卸载资源,请使用 fusermount -u MOUNT POINT。

8.5 可用 FUSE 插件 编辑源文件

FUSE 依赖于插件。下表列出了常见的插件。

表 8.1:可用 FUSE 插件

curlftpfs

挂载 FTP 服务器

encfs

挂载加密文件系统

fuseiso

挂载包含 ISO9660 文件系统的 CD-ROM 镜像

fusepod

挂载 iPod

fusesmb

挂载可浏览的 Samba 客户端或 Windows 共享

gphotofs

通过 gPhoto 挂载受支持的数码相机

ntfs-3g

挂载 NTFS 卷(具有读写支持)

obexfs

挂载蓝牙设备

sshfs

基于 SSH 文件传输协议的文件系统客户端

wdfs

挂载 WebDAV 文件系统

8.6 更多信息 编辑源文件

有关更多信息,请参见 FUSE 的主页 https://github.com/libfuse/libfuse。

第三部分 管理和更新软件 编辑源文件

9 安装或删除软件

使用 YaST 的软件管理模块,您可以搜索软件包以及安装和删除它们。在安装包时,YaST 会自动解决所有依赖关系。要安装未在安装介质上的包,您可以添加软件仓库并让 YaST 管理它们。您还可以使用更新小程序保持系统最新。

10 安装附加产品

附加产品是系统扩展。您可以安装第三方附加产品或 openSUSE® Leap 的特殊系统扩展(例如,包含其他语言支持的 CD 或包含二进制驱动程序的 CD)。要安装新的附加产品,请启动 YaST 并选择软件 › 附加产品。您可以选择各种类型的产品介质,例如 CD、FTP、USB 大容量存储设备(如 USB 闪存盘或磁盘)或本地目录。您也可以直接使用 ISO 文件。要将附加产品作为 ISO 文件介质添加,请选择本地 ISO 镜像,然后输入路径到 ISO 镜像。仓库名称是任意的。

11 YaST 在线更新

SUSE 为您的产品提供持续的软件安全更新。默认情况下,使用更新小程序来保持系统最新。有关更新小程序的信息,请参阅 9.4 节,“GNOME 包更新程序”。本章介绍了更新 s 的替代工具…

12 升级系统和系统更改

您可以升级现有系统而无需完全重新安装。有两种方式来更新系统或其部分:更新单个软件包和升级整个系统。在 9 章“安装或删除软件”和 11 章“YaST 在线更新”中介绍了更新单个包。以下部分讨论了两种升级系统的方法——请参阅 12.1.3 节“使用 YaST 升级”和 12.1.4 节“使用 Zypper 进行发行版升级”。

9 安装或删除软件 编辑源文件

摘要

使用 YaST 的软件管理模块,您可以搜索软件包以及安装和删除它们。在安装包时,YaST 会自动解决所有依赖关系。要安装未在安装介质上的包,您可以添加软件仓库并让 YaST 管理它们。您还可以使用更新小程序保持系统最新。

YaST 软件管理器使您能够管理系统上的软件源。此 YaST 模块有两个版本:一个用于 X Window 的图形版本,以及一个用于命令行界面的文本版本。下面描述了图形版本—有关基于文本的 YaST,请参阅 “参考”手册,第 1 章“文本模式下的 YaST”

Note
注意:确认和审查更改

在安装、更新或删除软件包时,软件管理器中的任何更改仅在单击 接受应用 后才会生效。YaST 会维护一个包含所有操作的列表,允许您在将其应用于系统之前审查和修改您的更改。

9.1 术语定义 编辑源文件

以下术语对于理解在 openSUSE Leap 中安装和删除软件非常重要。

仓库

包含软件包以及有关这些软件包的其他信息(软件包元数据)的本地或远程目录。

(仓库) 别名/仓库名称

仓库的简短名称(在 Zypper 中称为 Alias,在 YaST 中称为 仓库名称)。用户在添加仓库时可以选择它,并且必须是唯一的。

仓库描述文件

每个仓库都提供描述仓库内容(软件包名称、版本等)的文件。这些仓库描述文件会下载到 YaST 使用的本地缓存中。

产品

代表整个产品,例如 openSUSE® Leap

模式

模式是一个可安装的软件包组,专用于特定目的。例如,Laptop 模式包含在移动计算环境中所需的所有软件包。模式定义软件包依赖关系(例如必需或推荐的软件包),并带有预选的软件包,这些软件包标记为安装。这可确保在安装模式后,您的系统上可用最适合特定目的的软件包。如有必要,您可以手动选择或取消选择模式中的软件包。

软件包

软件包是 rpm 格式的压缩文件,其中包含特定程序的文件。

补丁

补丁包含一个或多个软件包,并且可以通过 delta RPM 应用。它还可能引入尚未安装的软件包的依赖关系。

可解析

产品、模式、软件包或补丁的通用术语。最常用的可解析类型是软件包或补丁。

Delta RPM

Delta RPM 仅包含两个定义版本之间软件包的二进制差异,因此具有最小的下载大小。在安装之前,完整的 RPM 软件包会在本地机器上重新构建。

软件包依赖关系

某些软件包依赖于其他软件包,例如共享库。换句话说,一个软件包可能 需要 其他软件包—如果所需的软件包不可用,则无法安装该软件包。除了必须满足的依赖关系(软件包要求)之外,某些软件包 推荐 其他软件包。只有在可用时才会安装这些推荐的软件包,否则它们将被忽略,并且推荐它们的软件包仍然会被安装。

9.2 使用 YaST 软件管理器 编辑源文件

通过选择 YaST 控制中心 中的 软件 › 软件管理 来启动软件管理器。

YaST software manager screen

9.2.2 安装和删除软件包或模式 编辑源文件

大多数软件包依赖于其他软件包,例如共享库。几个软件包不能与其他软件包共存。如果可能,YaST 会自动解决这些依赖关系或冲突。如果您的选择导致无法自动解决的依赖关系冲突,则需要按照 第 9.2.4 节,“软件包依赖关系” 中所述手动解决它。

Note
注意:删除软件包

删除任何软件包时,YaST 默认情况下仅删除所选软件包。如果您希望 YaST 也可以删除在删除指定软件包后变得不再需要的任何其他软件包,请从主菜单中选择 选项 › 删除软件包时清理

  1. 第 9.2.1 节,“搜索软件” 中所述搜索软件包。

  2. 在右侧窗格中列出找到的软件包。要安装或删除软件包,请右键单击它并选择 安装删除。如果相关选项不可用,请检查软件包状态,状态指示符位于软件包名称前面—按 ShiftF1 以获取帮助。

    Tip
    提示:将操作应用于列表中所有软件包

    要将操作应用于右侧窗格中列出的所有软件包,请转到主菜单并从 软件包 › 此列表中的全部 中选择一个操作。

  3. 要安装模式,请右键单击模式名称并选择 安装

  4. 无法删除模式。相反,选择您要删除的模式的软件包并将其标记为删除。

  5. 要选择更多软件包,请重复上述步骤。

  6. 在应用更改之前,您可以单击 视图 › 安装摘要 来审查或修改它们。默认情况下,将列出所有状态将更改的软件包。

  7. 要恢复软件包的状态,请右键单击该软件包并选择以下条目之一:如果该软件包计划被删除或更新,则选择 保留;如果该软件包计划安装,则选择 不安装。要放弃所有更改并退出软件管理器,请单击 取消放弃

  8. 完成后,单击 接受 以应用您的更改。

  9. 如果 YaST 发现其他依赖关系,它将显示一个相关软件包列表以进行安装、更新或删除。单击 继续 以接受它们。

    安装、更新或删除所有选定的软件包后,YaST 软件管理器会自动关闭。

Note
注意:安装源软件包

目前无法使用 YaST 软件管理器安装源软件包。为此,请使用命令行工具 zypper。有关更多信息,请参阅 “参考”手册,第 2 章“使用命令行工具管理软件”,第 2.1.3.5 节“安装或下载源软件包”

9.2.3 更新软件包 编辑源文件

除了更新单个软件包之外,还可以更新所有已安装的软件包或来自特定仓库的所有软件包。在批量更新软件包时,通常会考虑以下方面

  • 提供软件包的仓库的优先级,

  • 软件包的架构(例如 AMD64/Intel 64),

  • 软件包的版本号,

  • 软件包供应商。

选择更新候选者时,哪个方面具有最高重要性取决于您选择的更新选项。

  1. 要将所有已安装的软件包更新到最新版本,请从主菜单中选择 软件包 › 所有软件包 › 如果可用则更新到较新版本

    将检查所有仓库中是否有可用的更新候选者,使用以下策略:YaST 首先尝试将搜索限制为与已安装软件包具有相同架构和供应商的软件包。如果搜索成功,则将根据以下过程选择这些软件包中的 最佳 更新候选者。但是,如果找不到具有相同供应商的软件包,则搜索范围将扩展到所有具有相同架构的软件包。如果仍然找不到可比较的软件包,则将考虑所有软件包,并根据以下标准选择 最佳 更新候选者

    1. 仓库优先级:优先选择来自优先级最高的仓库的软件包。

    2. 如果此选择产生多个软件包,请选择具有 最佳 架构(最佳选择:与已安装软件包的架构匹配)的软件包。

    如果结果软件包的版本号高于已安装软件包,则将更新已安装软件包并替换为选定的更新候选者。

    此选项尝试避免更改已安装软件包的架构和供应商,但在某些情况下,可以容忍这些更改。

    Note
    注意:无条件更新

    如果您选择 软件包 › 所有软件包 › 无条件更新,则适用相同的标准,但找到的任何候选软件包都将被无条件安装。因此,选择此选项可能会导致降级某些软件包。

  2. 要确保批量更新的软件包来自特定仓库

    1. 第 9.2.1 节,“搜索软件” 中所述选择要更新的仓库。

    2. 在窗口右侧,单击 切换系统软件包到此仓库中的版本。这明确允许 YaST 在替换软件包时更改软件包供应商。

      当您使用 接受 继续时,如果可用,所有已安装的软件包都将被来自此仓库的软件包替换。这可能会导致供应商和架构的更改,甚至导致某些软件包降级。

    3. 要避免这种情况,请单击 取消切换系统软件包到此仓库中的版本。您只能在单击 接受 按钮之前取消此操作。

  3. 在应用更改之前,您可以单击 视图 › 安装摘要 来审查或修改它们。默认情况下,将列出所有状态将更改的软件包。

  4. 如果所有选项都已根据您的意愿设置,请使用 接受 确认您的更改以开始批量更新。

9.2.4 软件包依赖关系 编辑源文件

大多数软件包依赖于其他软件包。如果一个软件包,例如,使用共享库,则它依赖于提供此库的软件包。某些软件包不能共存,从而导致冲突(例如,您只能安装一个邮件传输代理:sendmail 或 postfix)。在安装或删除软件时,软件管理器确保没有未解决的依赖关系或冲突,以确保系统完整性。

如果存在唯一一个解决方案来解决依赖关系或冲突,则会自动解决。多个解决方案总是会导致需要手动解决的冲突。如果解决冲突涉及供应商或架构更改,也需要手动解决。单击接受以应用软件管理器的任何更改时,您将获得自动解析器触发的所有操作的概述,您需要确认这些操作。

默认情况下,会自动检查依赖关系。每次您更改软件包状态(例如,标记软件包以进行安装或删除)时,都会执行检查。这通常很有用,但在手动解决依赖关系冲突时可能会让人感到疲惫。要禁用此功能,请转到主菜单并停用依赖关系 › 自动检查。使用依赖关系 › 立即检查手动执行依赖关系检查。在您使用接受确认您的选择时,始终会执行一致性检查。

要查看软件包的依赖关系,请右键单击它并选择显示求解器信息。将打开一个显示依赖关系的地图。已安装的软件包将以绿色边框显示。

Note
注意:手动解决软件包冲突

除非您有经验,否则请遵循 YaST 在处理软件包冲突时提出的建议,否则您可能无法解决它们。请记住,您所做的任何更改都可能触发其他冲突,因此您很容易陷入冲突数量不断增加的境地。如果发生这种情况,请取消软件管理器,放弃所有更改并重新开始。

Conflict management of the software manager
图 9.1: 软件管理器的冲突管理

9.2.5 处理软件包推荐 编辑源代码

除了运行程序所需的硬依赖关系(例如某个库)之外,软件包还可以具有弱依赖关系,这些弱依赖关系可以添加例如额外的功能或翻译。这些弱依赖关系称为软件包推荐。

在安装新软件包时,默认情况下仍会安装推荐的软件包。在更新现有软件包时,缺少的推荐不会自动安装。要更改此设置,请在/etc/sysconfig/yast2中设置PKGMGR_RECOMMENDED="yes"。要安装已安装软件包的所有缺少的推荐,请启动YaST › 软件管理器并选择其他 › 安装所有匹配的推荐软件包

要禁用在安装新软件包时安装推荐软件包,请在 YaST 软件管理器中停用依赖关系 › 安装推荐软件包。使用命令行工具 Zypper 安装软件包时,使用选项--no-recommends.

9.3 管理软件仓库和服务 编辑源代码

要安装第三方软件,请将软件仓库添加到您的系统。默认情况下,产品仓库(例如openSUSE Leap-DVD 15.6)和匹配的更新仓库会自动配置。根据最初选择的产品,可能还会配置包含翻译、字典等内容的额外仓库。

要管理仓库,请启动 YaST 并选择软件 › 软件仓库。将打开已配置的软件仓库对话框。您还可以在对话框右下角将视图更改为所有服务来管理服务的订阅。在此上下文中,服务是仓库索引服务 (RIS),可以提供一个或多个软件仓库。此类服务可以由其管理员或供应商动态更改。

每个仓库都提供描述仓库内容(软件包名称、版本等)的文件。YaST 将这些仓库描述文件下载到本地缓存。为了确保其完整性,软件仓库可以使用仓库维护者的 GPG 密钥进行签名。每当您添加新仓库时,YaST 都会提供导入其密钥的能力。

Warning
警告:信任外部软件源

在将外部软件仓库添加到您的仓库列表中之前,请确保可以信任此仓库。SUSE 对从第三方软件仓库安装的软件引起的任何问题不承担责任。

9.3.1 添加软件仓库 编辑源代码

您可以从 DVD/CD、USB 闪存驱动器、本地目录、ISO 镜像或网络源添加仓库。

要从 YaST 的已配置的软件仓库对话框添加仓库,请按以下步骤操作

  1. 单击添加

  2. 选择对话框中列出的选项之一

    Adding a software repository
    图 9.2: 添加软件仓库
    • 要扫描您的网络以查找通过 SLP 广播其服务的安装服务器,请选择使用 SLP 扫描并单击下一步

    • 要从可移动介质添加仓库,请选择相关选项并将介质插入或连接 USB 设备到机器,分别。单击下一步以启动安装。

    • 对于大多数仓库,您将在选择相应选项并单击下一步后,会被要求指定媒体的路径(或 URL)。指定仓库名称是可选的。如果未指定,YaST 将使用产品名称或 URL 作为仓库名称。

    默认情况下,激活了下载仓库描述文件选项。如果您停用该选项,YaST 将在需要时自动下载这些文件。

  3. 根据您添加的仓库,您可能会被要求导入仓库的 GPG 密钥或同意许可协议。

    确认后,YaST 将下载并解析元数据。它会将仓库添加到已配置的仓库列表中。

  4. 如果需要,请按照第 9.3.2 节,“管理仓库属性”中所述调整仓库属性

  5. 使用确定确认您的更改以关闭配置对话框。

  6. 成功添加仓库后,软件管理器启动,您可以从该仓库安装软件包。有关详细信息,请参阅第 9 章,安装或删除软件

9.3.2 管理仓库属性 编辑源代码

在 YaST 的软件仓库已配置的软件仓库概述中,您可以更改以下仓库属性

状态

仓库状态可以是已启用已禁用。您只能从启用的仓库安装软件包。要暂时关闭仓库,请选择它并停用启用。您还可以双击仓库名称以切换其状态。要完全删除仓库,请单击删除

刷新

刷新仓库时,其内容描述(软件包名称、版本等)将被下载到本地缓存,该缓存由 YaST 使用。对于静态仓库(例如 CD 或 DVD),只需执行一次即可,而内容经常更改的仓库应经常刷新。保持仓库缓存最新的最简单方法是选择自动刷新。要手动刷新,请单击刷新并选择其中一个选项。

保留下载的软件包

从远程仓库下载的软件包在成功安装后会被删除。激活保留下载的软件包可防止删除下载的软件包。下载位置在/etc/zypp/zypp.conf中配置,默认情况下为/var/cache/zypp/packages

优先级

仓库的优先级是一个介于1200之间的值,1是最高优先级,200是最低优先级。使用 YaST 添加的任何新仓库默认情况下都具有优先级99。如果您不关心某个仓库的优先级值,也可以将值设置为0,以将默认优先级(99)应用于该仓库。如果一个软件包在多个仓库中可用,则具有最高优先级的仓库优先。这对于避免从 Internet 上不必要地下载软件包很有用,方法是为本地仓库(例如 DVD)赋予更高的优先级。

Important
重要提示:优先级与版本

具有最高优先级的仓库始终优先。因此,请确保更新仓库始终具有最高优先级,否则您可能会安装过时的版本,直到下次在线更新才会更新。

名称和 URL

要更改仓库名称或其 URL,请从列表中单击仓库,然后单击编辑

9.3.3 管理仓库密钥 编辑源代码

为了确保其完整性,软件仓库可以使用仓库维护者的 GPG 密钥进行签名。每当您添加新仓库时,YaST 都会提供导入其密钥。像对待任何其他 GPG 密钥一样验证它,并确保它不会更改。如果您检测到密钥更改,则仓库可能存在问题。禁用仓库作为安装源,直到您知道密钥更改的原因。

要管理所有导入的密钥,请单击已配置的软件仓库对话框中的GPG 密钥。使用鼠标选择一个条目,以在窗口底部显示密钥属性。单击相应的按钮添加编辑删除密钥。

9.4 GNOME 软件包更新程序 编辑源代码

SUSE 提供持续的软件安全补丁和产品更新。可以使用您的桌面提供的工具或运行YaST 在线更新模块来安装它们。本节介绍如何使用 GNOME 桌面上的软件包更新程序更新系统。

与 YaST 在线更新模块不同,GNOME 软件包更新程序不仅提供从更新仓库安装补丁,还提供已安装软件包的新版本。(补丁修复安全问题或故障;功能和版本号通常不会更改。软件包的新版本会增加版本号并添加功能或引入重大更改。)

每当有新的补丁或软件包更新可用时,GNOME 都会在通知区域或锁屏界面上显示通知。

Update notification on GNOME desktop
图 9.3: GNOME 桌面上的更新通知

要配置软件包更新程序的通知设置,请启动 GNOME 设置并选择通知 › 软件包更新程序

过程 9.1: 使用 GNOME 软件包更新程序安装补丁和更新
  1. 要安装补丁和更新,请单击通知消息。这将打开 GNOME 软件包更新程序。或者,从活动中打开更新程序,键入package U并选择软件包更新程序

  2. 更新分为四类

    安全更新(补丁)

    修复严重的安全漏洞,应始终安装。

    推荐更新(补丁)

    修复可能损害您的计算机的问题。强烈建议安装它们。

    可选更新(补丁)

    修复非安全相关的问题或提供增强功能。

    其他更新

    已安装软件包的新版本。

    所有可用的更新都预先选中以进行安装。如果您不想安装所有更新,请先取消选中不需要的更新。强烈建议始终安装所有安全和推荐更新。

    要获取有关更新的详细信息,请单击其标题,然后单击详细信息。信息将显示在软件包列表下方的框中。

  3. 单击安装更新以开始安装。

  4. 某些更新可能需要重新启动机器或注销。检查安装后显示的消息以获取说明。

9.5 使用GNOME Software更新软件包 编辑源代码

除了 GNOME 软件包更新程序之外,GNOME 还提供GNOME Software,它具有以下功能

  • 通过 PackageKit 安装、更新和删除以 RPM 形式提供的软件

  • 安装、更新和删除以 Flatpak 形式提供的软件

  • 安装、更新和删除 GNOME shell 扩展 (https://extensions.gnome.org)

  • 使用Linux Vendor Firmware Service (LVFS, https://fwupd.org) 更新硬件设备的固件

GNOME Software 还提供软件的屏幕截图、评级和评论。

GNOME Software—Updates view
图 9.4: GNOME Software更新视图

GNOME 软件openSUSE Leap 上提供的其他工具相比,存在以下差异

  • 与 YaST 或 Zypper 不同,对于打包为 RPM 的软件,GNOME 软件仅限于提供 AppStream 元数据的软件。这包括大多数桌面应用程序。

  • 虽然 GNOME 软件包更新器更新正在运行的系统中的软件包(强制您重新启动相应的应用程序),但 GNOME 软件下载更新并在重新启动后应用它们。

10 安装附加产品 编辑源文件

摘要

附加产品是系统扩展。您可以安装第三方附加产品或 openSUSE® Leap 的特殊系统扩展(例如,包含其他语言支持的 CD 或包含二进制驱动程序的 CD)。要安装新的附加产品,请启动 YaST 并选择软件 › 附加产品。您可以选择各种类型的产品介质,例如 CD、FTP、USB 大容量存储设备(如 USB 闪存盘或磁盘)或本地目录。您也可以直接使用 ISO 文件。要将附加产品作为 ISO 文件介质添加,请选择本地 ISO 镜像,然后输入路径到 ISO 镜像。仓库名称是任意的。

10.1 附加组件 编辑源文件

要安装新的附加组件,请按以下步骤操作

  1. 在 YaST 中选择 软件 › 附加产品 以查看已安装附加产品的概述。

  2. 要安装新的附加产品,请单击 添加

  3. 从可用的 介质类型 列表中,指定与您的存储库匹配的类型。

  4. 要从可移动介质添加存储库,请选择相应的选项,并分别插入介质或连接 USB 设备到计算机。

  5. 您现在可以选择 下载存储库描述文件。如果取消选择该选项,YaST 将在需要时稍后自动下载这些文件。单击 下一步 以继续。

  6. 从网络添加存储库时,输入系统提示您输入的数据。继续使用 下一步

  7. 根据您添加的存储库,系统可能会询问您是否要导入用于对其进行签名的 GPG 密钥,或者要求您同意许可协议。

    确认这些消息后,YaST 将下载并解析元数据,并将存储库添加到 已配置的存储库 列表中。

  8. 如果需要,请根据 第 9.3.2 节,“管理存储库属性” 中的描述调整存储库 属性,或使用 确定 确认您的更改以关闭配置对话框。

  9. 成功添加附加介质的存储库后,软件管理器将启动,您可以安装软件包。有关详细信息,请参阅 第 9 章,安装或删除软件

10.2 二进制驱动程序 编辑源文件

某些硬件需要仅限二进制的驱动程序才能正常工作。如果您拥有此类硬件,请参阅发行说明以获取有关系统上二进制驱动程序可用性的更多信息。要阅读发行说明,请打开 YaST 并选择 杂项 › 发行说明

11 YaST 在线更新 编辑源文件

SUSE 为您的产品提供持续的软件安全更新。默认情况下,使用更新小程序来保持系统的最新状态。有关更新小程序的信息,请参阅 第 9.4 节,“GNOME 软件包更新器”。本章介绍用于更新软件包的替代工具:YaST 在线更新。

适用于 openSUSE® Leap 的当前补丁可从更新软件存储库获得,该存储库在安装期间自动配置。或者,您可以手动从您信任的来源添加更新存储库。要添加或删除存储库,请在 YaST 中启动存储库管理器,方法是选择 软件 › 软件存储库。有关存储库管理器的更多信息,请参阅 第 9.3 节,“管理软件存储库和服务”

SUSE 提供具有不同相关性级别的更新

安全更新

修复严重的安全漏洞,应始终安装。

推荐更新

修复可能危及您的计算机的问题。

可选更新

修复非安全相关的问题或提供增强功能。

11.1 在线更新对话框 编辑源文件

要打开 YaST 在线更新 对话框,请启动 YaST 并选择 软件  › 在线更新。或者,从命令行使用 yast2 online_update 启动它。

在线更新 窗口由四个部分组成。

YaST online update
图 11.1: YaST 在线更新

左侧的 摘要 部分列出了适用于 openSUSE Leap 的可用补丁。这些补丁按安全相关性排序:securityrecommendedoptional。您可以从 显示补丁类别 中选择以下选项之一来更改 摘要 部分的视图

所需补丁(默认视图)

不安装的补丁,这些补丁适用于安装在您系统上的软件包。

不需要的补丁

适用于未安装在您系统上的软件包的补丁,或者已经满足要求的补丁(因为相关的软件包已经从另一个来源更新)。

所有补丁

适用于 openSUSE Leap 的所有补丁。

摘要 部分中的每个列表条目由一个符号和补丁名称组成。要查看可能的符号及其含义,请按 ShiftF1。对 SecurityRecommended 补丁所需的操作会自动预设。这些操作是 自动安装自动更新自动删除

如果您从更新存储库以外的存储库安装了最新的软件包,则通过此安装可以满足补丁对此软件包的要求。在这种情况下,会在补丁摘要前面显示一个复选标记。补丁在列表中可见,直到您将其标记为安装。这不会安装补丁(因为软件包已经是最新的),但会将补丁标记为已安装。

选择 摘要 部分中的一个条目,可以在对话框左下角查看简短的 补丁描述。右上部分列出了所选补丁中包含的软件包(一个补丁可以包含多个软件包)。单击右上部分中的一个条目以查看有关包含在补丁中的相应软件包的详细信息。

11.2 安装补丁 编辑源文件

YaST 在线更新对话框允许您一次安装所有可用补丁,或手动选择所需的补丁。您还可以撤销已应用于系统的补丁。

默认情况下,当前适用于您的系统的所有新补丁(不包括 optional 补丁)已标记为安装。单击 接受应用 后,将自动应用它们。如果一个或多个补丁需要系统重新启动,您将在补丁安装开始之前收到通知。然后,您可以选择继续安装所选补丁,跳过需要重新启动的所有补丁并安装其余补丁,或返回手动补丁选择。

过程 11.1: 使用 YaST 在线更新应用补丁
  1. 启动 YaST 并选择 软件 › 在线更新

  2. 要自动应用当前适用于您的系统的所有新补丁(不包括 optional 补丁),请单击 应用接受

  3. 首先修改您想要应用的补丁的选择

    1. 使用界面提供的相应过滤器和视图。有关详细信息,请参阅 第 11.1 节,“在线更新对话框”

    2. 通过右键单击补丁并从上下文菜单中选择相应操作来选择或取消选择补丁。

      Important
      重要提示:始终应用安全更新

      除非有充分的理由,否则不要取消选择任何 security 相关的补丁。这些补丁可以修复严重的安全漏洞,并防止您的系统受到利用。

    3. 大多数补丁包括对多个软件包的更新。要更改单个软件包的操作,请右键单击软件包视图中的一个软件包并选择一个操作。

    4. 要确认您的选择并应用所选补丁,请使用 应用接受

  4. 安装完成后,单击 完成 以退出 YaST 在线更新。您的系统现在已更新。

11.3 查看撤回的补丁 编辑源文件

维护更新经过仔细测试,以最大程度地降低引入错误的风险。如果补丁被证明包含错误,则会自动撤回。将发布一个新的更新(版本号更高)以撤销有问题的补丁,并且将被阻止再次安装。您可以在 软件包分类 选项卡上查看撤回的补丁及其历史记录。

Viewing retracted patches and history
图 11.2: 查看撤回的补丁和历史记录

11.4 自动在线更新 编辑源文件

您可以使用 YaST 配置具有每日、每周或每月计划的自动更新。安装 yast2-online-update-configuration 软件包。

默认情况下,更新会下载为 delta RPM。由于从 delta RPM 重建 RPM 软件包是一项占用内存和处理器的任务,因此某些设置或硬件配置可能需要您禁用 delta RPM 的使用以提高性能。

某些补丁,例如内核更新或需要许可协议的软件包,需要用户交互,这将导致自动更新过程停止。您可以配置跳过需要用户交互的补丁。

使用 YaST 软件 模块中的 补丁 选项卡查看可用和已安装的补丁,包括对错误报告和 CVE 公告的引用。

过程 11.2: 配置自动在线更新
  1. 安装后,启动 YaST 并选择 软件 › 在线更新。选择 配置 › 在线更新。如果未安装 yast2-online-update-configuration,系统将提示您安装它。

    YaST online update configuration
    图 11.3: YaST 在线更新配置

    或者,从命令行使用 yast2 online_update_configuration 启动该模块。

  2. 选择更新间隔:每日每周每月

  3. 有时补丁可能需要管理员的关注,例如在重新启动关键服务时。例如,这可能是 Docker 开源引擎的更新,需要重新启动所有容器。在安装这些补丁之前,会告知用户后果并要求确认安装补丁。这些补丁称为 交互式补丁

    在自动安装补丁时,假定您已接受安装交互式补丁。如果您希望在安装之前查看这些补丁,请选中 跳过交互式补丁。在这种情况下,交互式补丁将在自动补丁期间被跳过。请确保定期运行手动在线更新,以检查是否有交互式补丁正在等待安装。

  4. 要自动接受任何许可协议,请激活 同意许可

  5. 要自动安装更新的软件包推荐的所有软件包,请激活 包含推荐软件包

  6. 要禁用 delta RPM 的使用(出于性能原因),请取消选中 使用 Delta RPM

  7. 要按类别过滤补丁(例如安全或推荐),请选中 按类别过滤,并从列表中添加适当的补丁类别。将仅安装所选类别的补丁。养成仅启用自动 安全更新的良好习惯,并手动检查所有其他更新。补丁通常是可靠的,但您可能希望测试非安全补丁,并在遇到任何问题时回滚它们。

    • 软件包管理器和 YaST 为软件包管理和 YaST 功能和模块提供补丁。

    • 安全补丁提供重要的更新和错误修复。

    • 推荐补丁是可选的错误修复和增强功能。

    • 可选是新软件包。

    • 其他等同于杂项。

    • 文档未使用。

  8. 通过单击 确定 确认您的配置。

自动在线更新之后不会自动重启系统。如果有需要系统重启的软件包更新,您需要手动执行此操作。

12 升级系统和系统更改 编辑源文件

摘要

您可以升级现有系统而无需完全重新安装。有两种方式来更新系统或其部分:更新单个软件包和升级整个系统。在 9 章“安装或删除软件”和 11 章“YaST 在线更新”中介绍了更新单个包。以下部分讨论了两种升级系统的方法——请参阅 12.1.3 节“使用 YaST 升级”和 12.1.4 节“使用 Zypper 进行发行版升级”。

12.1 升级系统 编辑源文件

Important
重要提示:openSUSE Leap 15.6 仅提供 64 位版本

openSUSE Leap 15.6 仅提供 64 位版本。不支持将 32 位安装升级到 64 位。请按照 第 1 章,快速安装指南第 3 章,安装步骤 中的说明在您的计算机上安装 openSUSE Leap,或考虑切换到 openSUSE Tumbleweed

发行说明捆绑在安装程序中,您也可以在 openSUSE Leap 发行说明 上在线阅读它们。

软件往往会随着版本的更新而 增长。因此,在更新之前,请使用 df 查看可用的分区空间。如果您怀疑磁盘空间不足,请在更新之前备份您的数据并重新分区您的系统。关于每个分区应该有多少空间没有普遍规则。空间要求取决于您的特定分区配置文件、选择的软件和系统版本号。

12.1.1 准备工作 编辑源文件

在升级之前,将旧的配置文件复制到单独的介质(例如可移动硬盘或 USB 闪存驱动器)以保护数据。这主要适用于存储在 /etc 中的文件,以及 /var 中的某些目录和文件。您可能还希望将 /homeHOME 目录)中的用户数据写入备份介质。以 root 的身份备份此数据。只有 root 才有权读取所有本地文件。

在开始更新之前,请记下根分区。命令 df / 列出根分区的设备名称。在 示例 12.1,“使用 df -h 中,要记下的根分区是 /dev/sda3(挂载为 /)。

示例 12.1:使用 df -h 列出
Filesystem     Size  Used Avail Use% Mounted on
/dev/sda3       74G   22G   53G  29% /
udev           252M  124K  252M   1% /dev
/dev/sda5      116G  5.8G  111G   5% /home
/dev/sda1       39G  1.6G   37G   4% /windows/C
/dev/sda2      4.6G  2.6G  2.1G  57% /windows/D

12.1.2 可能出现的问题 编辑源文件

如果您从以前的版本升级到此版本,YaST 会计算出必要的更改并执行它们。根据您的自定义设置,某些步骤(或整个升级过程)可能会失败,您必须恢复备份数据。在开始系统更新之前,请检查以下问题。

12.1.2.1 检查 /etc 中的 passwd 和 group 编辑源文件

在升级系统之前,请确保 /etc/passwd/etc/group 不包含任何语法错误。为此,以 root 身份启动验证实用程序 pwckgrpck 以消除任何报告的错误。

12.1.2.2 关闭虚拟机 编辑源文件

如果您的机器充当 KVM 或 Xen 的 VM 主机服务器,请确保在更新之前正确关闭所有正在运行的 VM 来宾。否则,您可能无法在更新后访问来宾。

12.1.2.3 PostgreSQL 编辑源文件

在更新 PostgreSQLpostgres)之前,请转储数据库。请参阅 pg_dump 的手册页。只有您实际在使用 PostgreSQL 之前才需要这样做。

12.1.3 使用 YaST 升级 编辑源文件

按照 第 12.1.1 节,“准备工作” 中概述的准备程序,您现在可以升级您的系统

  1. openSUSE Leap DVD 插入驱动器,然后重启计算机以启动安装程序。在具有传统 BIOS 的机器上,您将看到下面的图形启动屏幕。配备 UEFI 的机器使用略有不同的启动屏幕。UEFI 机器上的安全启动受支持。

    使用 F2 更改安装程序的语言。将自动选择相应的键盘布局。有关更改启动参数的更多信息,请参阅 第 2.2.1 节,“具有传统 BIOS 的机器上的启动屏幕”第 2.2.2 节,“配备 UEFI 的机器上的启动屏幕”

  2. 在启动屏幕上选择 升级,然后按 Enter。这将启动系统并加载 openSUSE Leap 安装程序。不要选择 安装

  3. 语言和键盘布局将初始化为在启动屏幕上选择的语言设置。如果需要,可以在此处更改它们。

    阅读许可协议。它以您在启动屏幕上选择的语言呈现。可用的 许可翻译。使用 下一步 继续。

  4. YaST 确定是否有多个根分区。如果只有一个,请继续下一步。如果有多个,请选择正确的分区并使用 下一步 确认(在 第 12.1.1 节,“准备工作” 中示例中选择了 /dev/sda3)。YaST 读取此分区上的旧 fstab 以分析和挂载其中列出的文件系统。

    Tip
    提示:发行说明

    从现在开始,可以在安装过程中的任何屏幕上通过选择发行说明来查看发行说明。

  5. YaST 显示 以前使用的存储库 列表。默认情况下,所有存储库都将被删除。如果您没有添加任何自定义存储库,请不要更改设置。升级的软件包将从 DVD 安装,您可以选择在下一步中启用默认的在线存储库。

    如果您添加了自定义存储库,例如来自 openSUSE 构建服务,您有两个选择

    • 将存储库保留在 已删除 状态。从该存储库安装的软件将在升级期间被删除。如果无法使用与新 openSUSE Leap 版本匹配的存储库版本,请使用此方法。

    • 更新并启用存储库。如果可以为存储库提供与新 openSUSE Leap 版本匹配的版本,请使用此方法。通过单击列表中的存储库,然后单击 更改 来更改其 URL。之后,通过单击 切换状态 直到将其设置为 启用 来启用存储库。

    除非您确定它们也适用于新 openSUSE 版本,否则不要使用与以前版本匹配的存储库。否则,系统可能会不稳定或无法正常工作。

  6. 如果可用互联网连接,您现在可以激活可选的在线存储库。请启用您之前启用过的所有存储库,以确保正确升级所有软件包。强烈建议启用更新存储库,这将确保您获得最新的软件包版本,包括所有安全更新和修复。

    在继续使用 下一步 之后,您需要使用 下一步 确认在线存储库的许可协议。

  7. 使用 安装设置 屏幕查看并(如有必要)更改几个建议的安装设置。为每个设置列出了当前配置。要更改它,请单击标题。

    系统

    通过单击系统查看详细的硬件信息。在结果屏幕中,您还可以更改内核设置—有关更多信息,请参阅第 3.11.7 节,“系统

    更新选项

    默认情况下,YaST 将执行基于模式选择的完整 使用安装新软件和功能进行更新。每个模式包含用于特定功能(例如 Web 和 LAMP 服务器或打印服务器)的几个软件包。

    您可以在此处更改软件包选择或将 更新模式 更改为 仅更新已安装的软件包

    软件包

    您可以在 软件包 屏幕上进一步调整软件包选择。您不仅可以选择模式,还可以列出其内容并搜索单个软件包。有关更多信息,请参阅 第 9 章,安装或删除软件

    如果您打算增强您的系统,建议先完成升级,然后再安装其他软件。

    备份

    您还可以选择备份各种系统组件。选择备份会减慢升级过程。如果您没有最近的系统备份,请使用此选项。

    语言

    本节允许您更改 主要语言 并配置其他 辅助语言。 可选地,您可以将键盘布局和时区调整为所选主要语言。

    键盘布局

    您可以在此处更改键盘布局并调整其他 专家键盘设置

    启动

    本节显示启动加载程序配置。除非确实需要,否则不建议更改默认设置。有关详细信息,请参阅参考手册,第 12 章“启动加载程序 GRUB 2”

  8. 在您完成 安装设置 屏幕上的系统配置后,单击 更新。根据您的软件选择,您可能需要在安装确认屏幕弹出之前同意许可协议。到目前为止,您的系统没有进行任何更改。在您第二次单击 更新 之后,升级过程开始。

一旦完成基本的升级安装,YaST 将重启系统。最后,YaST 会更新剩余的软件(如果有),并在需要时显示发行说明。

12.1.4 使用 Zypper 升级发行版 编辑源文件

使用 zypper 命令行实用程序,您可以升级到下一个版本的发行版。最重要的是,您可以从正在运行的系统启动系统升级过程。

此功能对希望运行远程升级或在许多类似配置的系统上升级的高级用户具有吸引力。

12.1.4.1 使用 Zypper 准备升级 编辑源文件

为了避免在升级过程中使用 zypper 时出现意外错误,请尽量减少风险配置。

  • 尽可能退出许多应用程序并停止不必要的服务,并注销所有普通用户。

  • 在开始升级之前禁用第三方仓库,或者降低这些仓库的优先级,以确保默认系统仓库中的软件包获得优先权。升级完成后再次启用它们,并编辑它们的版本字符串以匹配现在运行的系统的发行版版本号。

12.1.4.2 升级过程 编辑源文件

Warning
警告:检查您的系统备份

在实际开始升级过程之前,请检查您的系统备份是否是最新的并且可以恢复。这尤其重要,因为您需要手动输入以下许多步骤。

程序 zypper 支持长命令名和短命令名。例如,您可以将 zypper install 缩写为 zypper in。在以下文本中,使用了短变体。

  1. 运行在线更新以确保软件管理堆栈是最新的

    > sudo zypper patch
  2. 配置您想要用作更新源的仓库。正确配置这一点至关重要。在以下步骤中使用的仓库的 名称 可能因您的操作系统定制而异。有关更多信息,请参阅 “参考”手册,第 2章“使用命令行工具管理软件”,第 2.1.6节“使用 Zypper 管理仓库”)

    要查看您当前的仓库,请输入

    > zypper --releasever=15.6 lr -u
  3. 在上一条命令的结果中,检查最后一列 (URL)。所有仓库链接都应包含 15.6 作为版本号。如果不是这样,则版本号丢失或硬编码在 /etc/zypp/repos.d/ 下的仓库定义文件中。要修复此问题,请按以下步骤操作

    1. 确定仓库是否仍然需要。如果不需要,请删除它

      > sudo zypper rr NAME

      删除您不再需要的任何仓库。

    2. 对于没有版本号的第三方仓库,请检查仓库提供程序是否支持 openSUSE Leap 15.6。如果是,请保留仓库。如果不是,请按照上述说明删除它。

    3. 您想要保留的所有剩余仓库都需要更新到新版本。为了允许将来无需修改仓库即可进行更新,请将硬编码的版本号替换为变量 $releasever。如果硬编码了 15.3,请运行

      > sudo sed -i 's/15.3/$releasever/' /etc/zypp/repos.d/*.repo

      对每个硬编码的版本号重复此步骤。

      使用您的浏览器检查新的仓库 URL 是否正确。如果不是,则可能尚未存在仓库的新版本。停用仓库并稍后再试。

      > sudo zypper mr -d NAME

      如果所有依赖项仍然满足,则停用的仓库中的软件包不会被删除。

  4. 最后,再次检查当前的仓库配置

    > sudo zypper --releasever=15.6 lr -u

    现在,所有仓库都应指向 15.6 版本(除了支持新发布的没有版本控制的第三方仓库)。仍然指向旧版本的仓库至少应禁用(已启用 列需要显示 )。

  5. 通过运行以下命令更新仓库元数据

    > sudo zypper --releasever=15.6 ref
  6. 启动发行版升级,这将使您的系统提升到新版本

    > sudo zypper --releasever=15.6 dup

    根据软件选择,您可能需要批准一个或多个许可证。检查命令的输出。如果一切正常,请使用 y 批准。

  7. 最后,重新启动您的机器以启动新的 openSUSE Leap 版本

    > sudo shutdown -r now

您可以使用 zypper dup 升级您的系统。在使用此命令时,请注意以下事项

  • 如果您正在使用 zypper dup 并且可用磁盘空间不足,则升级将失败。在这种情况下,使用 --pkg-cache-dir DIR 设置替代软件包缓存目录。

  • 所有具有未解决依赖项的软件包都将被删除。只要满足了它们的依赖项,从禁用的仓库安装的软件包将被保留。在仓库中不再可用的软件包被视为孤立软件包。如果无法满足其依赖项,则卸载这些软件包。如果可以满足,则这些软件包将保持安装状态。

  • zypper dup 确保所有已安装的软件包都来自可用的仓库之一。它不考虑版本或架构,但默认情况下使用 --no-allow-vendor-change 选项来防止更改已安装软件包的供应商。如果您启用了第三方仓库,一些仓库可能会在升级过程中中断。在这种情况下,请使用 --allow-vendor-change 代替。

12.1.5 更新单个软件包 编辑源文件

无论您的整体更新环境如何,您始终可以更新单个软件包。但是,从现在开始,您有责任确保您的系统保持一致。

使用 YaST 软件管理工具更新软件包,如 第 9章,安装或删除软件 中所述。根据您的需要从 YaST 软件包选择列表中选择组件。如果存在软件包的新版本,则已安装版本和可用版本的版本号将以蓝色显示在 已安装 (可用) 列中。如果您选择对系统整体运行至关重要的软件包,YaST 会发出警告。仅应在更新模式下更新此类软件包。例如,许多软件包包含 共享库。在运行系统上更新这些程序和应用程序可能会导致系统不稳定。

12.2 更多信息 编辑源文件

各种版本的常见问题和特殊问题会在网上发布,以便在发现后进行识别。请参阅以下链接。可以使用 YaST 在线更新访问单个软件包的重要更新。有关更多信息,请参阅 第 11章,YaST 在线更新

请参阅 产品亮点 (https://en.opensuse.net.cn/Product_highlights 和 openSUSE wiki 上的 Bug 文章 https://en.opensuse.net.cn/openSUSE:Most_annoying_bugs,以获取有关最新更改和问题的更多信息。

第 IV 部分 Bash shell 编辑源文件

13 Shell 基础知识

在使用 Linux 时,您几乎可以在无需命令行解释器(shell)的情况下与系统进行通信。启动 Linux 系统后,通常会引导您进入图形用户界面,该界面引导您完成登录过程以及与…

14 Bash 和 Bash 脚本

如今,许多人使用带有图形用户界面 (GUI)(如 GNOME)的计算机。虽然 GUI 提供了许多功能,但在执行自动化任务时受到限制。Shell 很好地补充了 GUI,本章概述了 shell 的几个方面,在本例中是 Bash shell。

13 Shell 基础知识 编辑源文件

在使用 Linux 时,您几乎可以在无需命令行解释器(shell)的情况下与系统进行通信。启动 Linux 系统后,通常会引导您进入图形用户界面,该界面引导您完成登录过程以及与操作系统的后续交互。Linux 中的图形用户界面在安装期间最初配置,并由 KDE 或 GNOME 等桌面环境使用。

尽管如此,掌握 shell 的一些基本知识仍然很有用,因为您可能会遇到图形用户界面不可用的情况。例如,如果 X Window System 出现了一些问题。如果您不熟悉 shell,当您开始输入命令时可能会感到有些不舒服,但您使用得越多,就越会意识到命令行通常是执行某些日常任务的最快最简单的方法。

对于 Unix 或 Linux,有几个 shell 可用,它们在行为和接受的命令上略有不同。 openSUSE® Leap 的默认 shell 是 Bash(GNU Bourne-Again Shell)。

以下部分将指导您完成 Bash shell 的第一步,并向您展示如何通过命令行完成一些基本任务。如果您有兴趣了解更多信息,或者已经感觉自己是 shell 高手,请参阅 第 14章,Bash 和 Bash 脚本

13.1 启动 shell 编辑源文件

基本上,有两种不同的方法可以从图形用户界面启动 shell,该界面通常在您启动计算机后显示

  • 您可以离开图形用户界面,或者

  • 您可以在图形用户界面启动一个终端窗口。

虽然始终可以使用第一种选项,但只有在您已经登录到 KDE 或 GNOME 等桌面时,才能使用第二种选项。无论您选择哪种方式,都始终有返回的方法,并且可以在 shell 和图形用户界面之间来回切换。

如果您想尝试一下,请按 CtrlAltF2 离开图形用户界面。图形用户界面消失,您将被带到一个 shell,该 shell提示您登录。键入您的用户名并按 Enter。然后键入您的密码并按 Enter。提示现在会更改并显示以下示例中的一些有用信息

 1   2   3
tux@linux:~>

1

您的登录名。

2

您计算机的主机名。

3

当前目录的路径。登录后,当前目录通常是您的主目录,由 ~ 符号(波浪线)指示。

当您登录到远程计算机时,提示提供的信息始终会向您显示您当前正在使用的系统。

当光标位于此提示符后面时,您可以直接将命令传递给您的计算机系统。例如,您现在可以输入 ls -l 以详细格式列出当前目录的内容。如果这对您与 shell 的第一次接触就足够了,并且您想返回到图形用户界面,您应该先从 shell 会话注销。为此,键入 exit 并按 Enter。然后按 AltF7 切换回图形用户界面。您会发现您的桌面和正在运行的应用程序未更改。

如果您已经登录到 GNOME 或 KDE 桌面,并且想在桌面内启动一个终端窗口,请按 AltF2 并输入 konsole(对于 KDE)或 gnome-terminal(对于 GNOME)。这将在您的桌面上打开一个终端窗口。由于您已经登录到桌面,因此提示会显示有关系统的信息,如上所述。现在您可以输入命令并执行任务,就像在与桌面并行运行的任何 shell 中一样。要切换到桌面上另一个应用程序,只需单击相应的应用程序窗口或从面板的任务栏中选择它。要关闭终端窗口,请按 AltF4

13.2 输入命令 编辑源文件

当提示符出现在 shell 上时,它已准备好接收和执行命令。一个命令可以由几个元素组成。第一个元素是实际的命令,后跟参数或选项。您可以通过以下键输入命令并进行编辑:HomeEnd<—(Backspace)、DelSpace。您可以更正拼写错误或添加选项。只有在您按 Enter 时,才会执行该命令。

Important
重要提示:没有消息就是好消息

shell 不会多话:与某些图形用户界面不同,它通常不会在命令执行后提供确认消息。只有在出现问题或错误时,或者如果您明确要求通过执行带有特定选项的命令时,才会出现消息。

在使用删除对象的命令时,请记住这一点。在输入像 rm(没有任何选项)这样的命令来删除文件之前,你应该知道你是否真的想删除该对象:它将被不可恢复地删除,没有确认。

13.2.1 不带选项的命令 编辑源文件

第 13.6.1 节,“用户、组和其他人的权限” 你已经了解了最基本的命令之一:ls,它用于列出目录的内容。这个命令可以带选项使用,也可以不带选项使用。输入简单的 ls 命令会显示当前目录的内容

> ls
bin Desktop Documents public_html tux.txt
> 

Linux 中的文件可能具有文件扩展名或后缀,例如 .txt,但不必具有。这使得在这个 ls 的输出中很难区分文件和文件夹。默认情况下,Bash shell 中的颜色会给你一个提示:目录通常显示为蓝色,文件显示为黑色。

13.2.2 带选项的命令 编辑源文件

获取目录内容的更详细信息的一个更好的方法是使用带有选项字符串的 ls 命令。选项修改命令的工作方式,以便你可以让它执行特定的任务。选项与命令之间用空格分隔,通常以连字符开头。 ls -l 命令以完整细节(长列表格式)显示相同目录的内容

> ls -l
drwxr-xr-x 1 tux users     48 2015-06-23 16:08 bin
drwx---r-- 1 tux users  53279 2015-06-21 13:16 Desktop
drwx------ 1 tux users    280 2015-06-23 16:08 Documents
drwxr-xr-x 1 tux users  70733 2015-06-21 09:35 public_html
-rw-r--r-- 1 tux users  47896 2015-06-21 09:46 tux.txt
> 

此输出显示每个对象的以下信息

drwxr-xr-x1 12 tux3 users4 485 2006-06-23 16:086 bin7

1

对象类型和访问权限。有关更多信息,请参阅 第 13.6.1 节,“用户、组和其他人的权限”

2

指向此文件的硬链接数。

3

文件或目录的所有者。有关更多信息,请参阅 第 13.6.1 节,“用户、组和其他人的权限”

4

分配给文件或目录的组。有关更多信息,请参阅 第 13.6.1 节,“用户、组和其他人的权限”

5

文件大小(以字节为单位)。

6

上次更改的日期和时间。

7

对象名称。

通常,你可以通过仅在第一个选项前加上连字符,然后连续写入其他选项(不带空格)来组合多个选项。例如,如果你想以长列表格式查看目录中的所有文件,你可以组合 -l-a(显示所有文件)这两个选项用于 ls 命令。执行 ls -la 也会显示目录中的隐藏文件,这些文件前面有一个点(例如,.hiddenfile)。

你使用 ls 获取的内容列表按文件名排序。但是,就像在图形文件管理器中一样,你还可以根据各种标准(例如日期、文件扩展名或文件大小)对 ls -l 的输出进行排序

  • 对于日期和时间,使用 ls -lt(按最新排列)。

  • 对于扩展名,使用 ls -lx(按无扩展名的文件排列)。

  • 对于文件大小,使用 ls -lS(按最大排列)。

要反转排序顺序,将 -r 作为选项添加到你的 ls 命令中。例如,ls -lr 会以相反的字母顺序对内容列表进行排序,ls -ltr 会首先显示最旧的文件。 ls 还有许多其他有用的选项。在下一节中,你将学习如何调查它们。

13.2.3 Bash 快捷键 编辑源文件

输入了几个命令后,你的 shell 将会充满各种命令和相应的输出。在下表中,找到一些用于在 shell 中导航和编辑的有用快捷键。

快捷键

功能

CtrlL

清除屏幕并将当前行移动到页面顶部。

CtrlC

中止当前正在执行的命令。

CtrlU

从光标位置删除到行首。

CtrlK

从光标位置删除到行尾。

CtrlD

关闭 shell 会话。

,

浏览已执行命令的历史记录。

13.3 获取帮助 编辑源文件

如果你记得命令的名称但不确定选项或命令的语法,请选择以下可能性之一

--help/-h 选项

如果你只想查找某个命令的选项,请尝试输入命令后跟一个空格和 --help。许多命令都存在此 --help 选项。例如,ls --help 显示 ls 命令的所有选项。

手册页

要了解有关各种命令的更多信息,你还可以使用手册页。手册页还提供命令作用的简短描述。可以使用 man 后跟命令名称来访问它们,例如,man ls

手册页直接在 shell 中显示。要导航它们,请使用以下键

  • 使用 Page ↑Page ↓ 向上和向下移动

  • 使用 HomeEnd 在文档的开头和结尾之间移动

  • 通过按 Q 退出 man 页面查看器

有关 man 命令的更多信息,请使用 man man

信息页

信息页通常提供有关命令的更多信息。要查看某个命令的信息页,请输入 info 后跟命令名称(例如,info ls)。

信息页直接在 shell 中显示。要导航它们,请使用以下键

  • 使用 Space 向前移动一个部分(节点)。使用 <— 向后移动一个部分。

  • 使用 Page ↑Page ↓ 向上和向下移动

  • 通过按 Q 退出信息页查看器

请注意,并非所有命令都存在手册页和信息页。有时两者都可用(通常用于关键命令),有时仅存在手册页或信息页,有时两者都不存在。

13.4 使用文件和目录 编辑源文件

要引用某个文件或目录,必须指定通往该目录或文件的路径。有两种方法可以指定路径

绝对路径

从根目录(/)到相关文件或目录的完整路径。例如,位于你的 Documents 目录中的名为 file.txt 的文本文件的绝对路径可能是

/home/tux/Documents/file.txt
相对路径

从当前工作目录到相关文件或目录的路径。如果你的当前工作目录是 /home/tux,则 Documents 目录中的相对路径 file.txt

Documents/file.txt

但是,如果你的工作目录是 /home/tux/Music,则你需要向上移动一级到 /home/tux(使用 ..)然后才能进一步向下移动

../Documents/file.txt

路径包含文件名、目录或两者,用斜杠分隔。绝对路径始终以斜杠开头。相对路径不以斜杠开头,但可以有一个或两个点。

在输入命令时,你可以选择以你喜欢的方式或根据输入量来指定路径,两者都会导致相同的结果。要更改目录,请使用 cd 命令并指定目录的路径。

Note
注意:处理文件名或目录名中的空格

如果文件名或目录名包含空格,请使用反斜杠 (\) 在空格前面转义空格,或将文件名括在单引号中。否则,Bash 会将类似 My Documents 的文件名解释为两个文件名或目录,即 MyDocuments

在指定路径时,以下 快捷方式 可以节省你大量的输入

  • 波浪线符号 (~) 是主目录的快捷方式。例如,要列出你的主目录的内容,请使用 ls ~。要列出另一个用户的主目录的内容,请输入 ls ~USERNAME (当然,只有当你具有查看内容的权限时,才能这样做,请参阅 第 13.6 节,“文件访问权限”)。例如,输入 ls ~tux 将列出名为 tux 的用户的主目录的内容。你可以在网络环境中也使用波浪线符号作为主目录的快捷方式,即使你的主目录可能不称为 /home,但可以映射到文件系统中的任何目录。

    从文件系统中的任何位置,你可以通过输入 cd ~ 或直接输入 cd(不带任何选项)来访问你的主目录。

  • 在使用相对路径时,用点 (.) 表示当前目录。这主要用于 cpmv 等命令,通过这些命令可以复制或移动文件和目录。

  • 树中的下一级由两个点 (..) 表示。要切换到当前目录的父目录,请输入 cd ..,要从当前目录向上移动两个级别,请输入 cd ../.. 等。

为了应用你的知识,下面是一些示例。它们涉及使用 Bash 执行的基本任务,涉及文件或文件夹。

13.4.1 使用文件和目录的示例 编辑源文件

假设你想将位于主目录中的某个文件复制到你首先需要创建的 /tmp 的子目录中。

程序 13.1: 创建和更改目录

从你的主目录在 /tmp 中创建一个子目录

  1. 输入

    > mkdir /tmp/test

    mkdir 代表 创建目录。此命令在 /tmp 目录中创建一个名为 test 的新目录。在这种情况下,你使用绝对路径创建 test 目录。

  2. 要检查发生的情况,现在输入

    > ls -l /tmp

    新的目录 test 应该出现在 /tmp 目录的内容列表中。

  3. 使用以下命令切换到新创建的目录

    > cd /tmp/test
程序 13.2: 创建和复制文件

现在在主目录的子目录中创建一个新文件,并将其复制到 /tmp/test。为此任务使用相对路径。

Important
重要:覆盖现有文件

在复制、移动或重命名文件之前,请检查你的目标目录是否已包含同名的文件。如果是,请考虑更改其中一个文件名或使用带有 -i 等选项的 cpmv,这将会在覆盖现有文件之前提示。否则,Bash 将会在没有确认的情况下覆盖现有文件。

  1. 要列出你的主目录的内容,请输入

    > ls -l ~

    它应该默认包含一个名为 Documents 的子目录。如果不是,请使用你已经知道的 mkdir 命令创建此子目录

    > mkdir ~/Documents
  2. 要创建一个名为 myfile.txt 的新空文件,并将其放置在 Documents 目录下,请输入

    > touch ~/Documents/myfile.txt

    通常,touch 命令会更新现有文件的修改和访问日期。 如果您在目标目录中使用 touch 命令,而该文件名不存在,它将创建一个新文件。

  3. 输入

    > ls -l ~/Documents

    新文件应该出现在内容列表中。

  4. 要复制新创建的文件,请输入

    > cp ~/Documents/myfile.txt .

    不要忘记末尾的点。

    此命令告诉 Bash 转到您的主目录,并将 myfile.txtDocuments 子目录复制到当前目录 /tmp/test,而不更改文件名。

  5. 通过输入以下命令检查结果

    > ls -l

    文件 myfile.txt 应该出现在 /tmp/test 的内容列表中。

步骤 13.3: 重命名和删除文件或目录

现在假设您想将 myfile.txt 重命名为 tuxfile.txt。 最后,您决定删除重命名的文件和 test 子目录。

  1. 要重命名文件,请输入

    > mv myfile.txt tuxfile.txt
  2. 要检查发生的情况,请输入

    > ls -l

    在内容列表中,应该显示 tuxfile.txt,而不是 myfile.txt

    mv 代表 move(移动),并带有两个选项使用:第一个选项指定源,第二个选项指定操作的目标。 您可以使用 mv 命令

    • 重命名文件或目录,或者

    • 将文件或目录移动到新位置,或者

    • 一步完成两者。

  3. 既然您认为不再需要该文件,可以通过输入以下命令删除它

    > rm tuxfile.txt

    Bash 会在没有任何确认的情况下删除该文件。

  4. 使用 cd .. 向上移动一级,并使用以下命令检查

    > ls -l test

    现在 test 目录是否为空。

  5. 如果是,可以使用以下命令删除 test 目录

    > rmdir test

13.5 成为 root 编辑源代码

root,也称为超级用户,具有授权其访问系统所有部分并执行管理任务的权限。 他们具有不受限制的更改系统容量,并且可以无限制地访问所有文件。 因此,执行某些管理任务或运行某些程序(例如 YaST)需要 root 权限。

13.5.1 使用 su 编辑源代码

为了在 shell 中临时成为 root,请按以下步骤操作

  1. 输入 su。 系统会提示您输入 root 密码。

  2. 输入密码。 如果您错误地输入了 root 密码,shell 将显示一条消息。 在这种情况下,您必须在重新输入密码之前重新输入 su。 如果您的密码正确,则井号 # 将出现在提示符的末尾,表示您现在正在以 root 身份行事。

  3. 执行您的任务。 例如,将文件的所有权转移给一个新用户,只有 root 才能执行此操作

    > chown wilber kde_quick.xml
  4. 完成作为 root 执行的任务后,切换回您的普通用户帐户。 为此,请输入

    > exit

    井号将消失,您将再次以 普通 用户身份行事。

13.5.2 使用 sudo 编辑源代码

或者,您也可以使用 sudo(superuser do,超级用户执行)来执行通常仅供 root 使用的某些任务。 使用 sudo,管理员可以授予某些用户在某些命令上具有 root 权限。 根据系统配置,用户可以通过输入他们的普通密码来运行 root 命令。 由于时间戳功能,用户在输入密码后仅被授予有限时间内的“票证”。 票证通常在几分钟后过期。 在 openSUSE 中,sudo 默认需要 root 密码(除非您的系统管理员另有配置)。

对于用户来说,sudo 很方便,因为它可防止您两次切换帐户(切换到 root 和切换回来)。 要使用 sudo 更改文件的所有权,只需一个命令,而不是三个

> sudo chown wilber kde_quick.xml

在您输入密码后,系统会执行该命令。 如果您在密码仍然有效的情况下,在不久之后输入第二个 root 命令,则不会再次提示您输入密码,因为您的票证仍然有效。 在一段时间后,票证会自动过期,并且需要再次输入密码。 这也防止了未经授权的人员在用户忘记切换回其普通用户帐户并留下一个 root shell 打开的情况下获得 root 权限。

13.6 文件访问权限 编辑源代码

在 Linux 中,诸如文件或文件夹或进程之类的对象通常属于创建或启动它们的用户。 存在一些例外情况。 有关例外情况的更多信息,请参阅 “安全和加固指南”书籍,第 19 章“Linux 中的访问控制列表”

当您创建新文件或目录时,此对象的初始访问权限将根据预定义的方案设置。 作为文件或目录的所有者,您可以更改此对象的访问权限。 例如,您可以保护包含敏感数据的文件,防止其他用户读取,并且您可以授权您的组或其他用户在适当的情况下写入、读取或执行您的多个文件。 作为 root,您还可以更改文件或文件夹的所有权。

13.6.1 用户、组和其他人权限 编辑源代码

为 Linux 系统上的每个文件对象定义了三个权限集。 这些集合包括对三种类型的用户(所有者、组和其他用户)的读取、写入和执行权限。

以下示例显示了 shell 中 ls -l 命令的输出。 此命令列出目录的内容,并显示该目录中每个文件和文件夹的详细信息。

示例 13.1: 文件和文件夹的访问权限
-rw-r----- 1 tux users      0 2015-06-23 16:08 checklist.txt
-rw-r--r-- 1 tux users  53279 2015-06-21 13:16 gnome_quick.xml
-rw-rw---- 1 tux users      0 2015-06-23 16:08 index.htm
-rw-r--r-- 1 tux users  70733 2015-06-21 09:35 kde-start.xml
-rw-r--r-- 1 tux users  47896 2015-06-21 09:46 kde_quick.xml
drwxr-xr-x 2 tux users     48 2015-06-23 16:09 local
-rwxr--r-- 1 tux users 624398 2015-06-23 15:43 tux.sh

如第三列所示,所有对象都属于用户 tux。 它们被分配给组 users,该组是用户 tux 属于的主要组。 要检索访问权限,必须更仔细地检查列表的第一列。 让我们看一下文件 kde-start.xml

类型

用户权限

组权限

其他人的权限

-

rw-

r--

r--

列表的第一列由一个前导字符后跟三个块中的九个字符组成。 前导字符指示对象的类型:在本例中,连字符 () 表示 kde-start.xml 是一个文件。 如果您找到字符 d,则表示该对象是一个目录,例如 示例 13.1,“文件和文件夹的访问权限” 中的 local

接下来的三个块显示所有者、组和其他用户的访问权限(从左到右)。 每个块遵循相同的模式:第一个位置显示读取权限 (r),下一个位置显示写入权限 (w),最后一个显示执行权限 (x)。 缺少任何权限表示为 -。 在我们的示例中,kde-start.xml 的所有者具有对该文件的读取和写入权限,但无法执行该文件。 users 组可以读取该文件,但无法写入或执行该文件。 其他用户也是如此,如第三个字符块所示。

13.6.2 文件和文件夹 编辑源代码

访问权限对应用于对象类型(文件或目录)的影响略有不同。 下表显示了详细信息

表 13.1: 文件和目录的访问权限

访问权限

文件

文件夹

读取 (r)

用户可以打开并读取文件。

用户可以查看目录的内容。 如果没有此权限,用户无法使用 ls -l 等命令列出此目录的内容。 但是,如果他们仅对该目录具有执行权限,则如果他们知道文件的存在,他们仍然可以访问该目录中的某些文件。

写入 (w)

用户可以更改文件:他们可以添加或删除数据,甚至可以删除文件中的内容。 但是,只要他们没有文件所在目录的写入权限,他们就不能完全从目录中删除该文件。

用户可以在目录中创建、重命名或删除文件。

执行 (x)

用户可以执行该文件。 此权限仅适用于诸如程序或 shell 脚本之类的文件,而不适用于文本文件。 如果操作系统可以直接执行该文件,用户无需读取权限即可执行该文件。 但是,如果该文件必须像 shell 脚本或 perl 程序一样进行解释,则需要额外的读取权限。

用户可以进入目录并执行其中的文件。 如果他们没有对该目录的读取访问权限,他们无法列出文件,但如果他们知道文件的存在,仍然可以访问它们。

请注意,访问特定文件始终取决于文件本身 其所在目录的正确权限组合。

13.6.3 修改文件权限 编辑源代码

在 Linux 中,诸如文件或文件夹或进程之类的对象通常属于创建或启动它们的用户。 组与文件或文件夹关联取决于用户在创建对象时所属的主要组。 当您创建新文件或目录时,此对象的初始访问权限将根据预定义的方案设置。 有关更多详细信息,请参阅 第 13.6 节,“文件访问权限”

作为文件或目录的所有者(当然,作为 root),您可以更改此对象的访问权限。

要更改文件或文件夹之类的对象属性,请使用 chmod 命令,后跟以下参数

  • 要更改权限的用户,

  • 您想要删除、设置或添加的访问权限类型,以及

  • 用空格分隔的您想要更改权限的文件或文件夹。

您可以更改文件访问权限的用户分为以下几类:文件的所有者(用户,u)、拥有文件的组(组,g)和其他用户(其他人,o)。 您可以添加、删除或设置以下权限之一或多个:读取、写入或执行。

作为 root,您还可以更改文件的所有权:使用 chown(更改所有者)命令,您可以将所有权转移给新用户。

13.6.3.1 更改访问权限和所有权的示例 编辑源代码

以下示例显示了 shell 中 ls -l 命令的输出。

示例 13.2: 文件和文件夹的访问权限
-rw-r----- 1 tux users      0 2015-06-23 16:08 checklist.txt
-rw-r--r-- 1 tux users  53279 2015-06-21 13:16 gnome_quick.xml
-rw-rw---- 1 tux users      0 2015-06-23 16:08 index.htm
-rw-r--r-- 1 tux users  70733 2015-06-21 09:35 kde-start.xml
-rw-r--r-- 1 tux users  47896 2015-06-21 09:46 kde_quick.xml
drwxr-xr-x 2 tux users     48 2015-06-23 16:09 local
-r-xr-xr-x 1 tux users 624398 2015-06-23 15:43 tux.jpg

在示例中,用户 tux 拥有文件 kde-start.xml,并具有对该文件的读取和写入权限,但无法执行该文件。 users 组可以读取该文件,但无法写入或执行该文件。 其他用户也是如此,如第三个字符块所示。

步骤 13.4: 更改访问权限

假设您是 tux,并想修改对您文件的访问权限

  1. 如果想授予 users 组对 kde-start.xml 的写入权限,请输入

    > chmod g+w kde-start.xml
  2. 要授予 users 组和其他用户对 kde-start.xml 的写入权限,请输入

    > chmod go+w kde-start.xml
  3. 要删除所有用户的写入权限,请输入

    > chmod -w kde-start.xml

    如果您没有指定任何类型的用户,则更改将应用于所有用户——文件的所有者、所有者组和其他人。 现在,即使所有者 tux 在没有重新建立写入权限的情况下也无法写入该文件。

  4. 要禁止 users 组和其他用户进入目录 local,请输入

    > chmod go-x local
  5. 要授予其他人对两个文件(kde_quick.xmlgnome_quick.xml)的写入权限,请输入

    > chmod o+w  kde_quick.xml gnome_quick.xml
步骤 13.5: 更改所有权

假设您是 tux,并想将文件 kde_quick.xml 的所有权转移给另一个用户,名为 wilber。 在这种情况下,请按以下步骤操作

  1. 输入 root 的用户名和密码。

  2. 输入

    # chown wilber kde_quick.xml
  3. 使用以下命令检查发生的情况

    > ls -l kde_quick.xml

    您应该得到以下输出

    -rw-r--r-- 1 wilber users  47896 2006-06-21 09:46 kde_quick.xml
  4. 如果所有权已按您的意愿设置,请切换回您的普通用户帐户。

13.7 Bash 的省时功能 编辑源代码

在 Bash 中输入命令可能需要大量的键入。本节介绍一些可以节省时间和键入的功能。

历史记录

默认情况下,Bash “记住”您输入的命令。此功能称为“历史记录”。您可以浏览之前输入的命令,选择您想要重复的一个,然后再次执行它。为此,请重复按 ,直到所需的命令出现在提示符处。要向前浏览之前输入的命令列表,请按 。为了更轻松地重复 Bash 历史记录中的某个命令,只需键入该命令的第一个字母,然后按 Page ↑

现在,您可以在执行命令之前编辑所选命令(例如,更改文件名或路径),方法是按 Enter。要编辑命令行,请使用箭头键将光标移动到所需位置,然后开始键入。

您还可以搜索历史记录中的某个命令。按 CtrlR 以启动增量搜索功能,显示以下提示符

> (reverse-i-search)`':

只需键入您正在搜索的命令的一个或多个字母。您输入的每个字符都会缩小搜索范围。相应的搜索结果显示在冒号的右侧,而您的输入显示在冒号的左侧。要接受搜索结果,请按 Esc。提示符现在会更改为正常外观,并显示您选择的命令。现在,您可以编辑该命令或直接通过按 Enter 执行它。

补全

在键入第一个字母后,将文件名或目录名补全到其完整长度是 Bash 的另一个有用功能。为此,键入前几个字母,然后按 →|(Tab 键)。如果文件名或路径可以唯一标识,则会立即补全,光标移动到文件名末尾。然后,如果需要,您可以输入命令的下一个选项。如果文件名或路径无法唯一标识(因为有多个文件名以相同的字母开头),则文件名或路径仅补全到变得不明确为止。然后,您可以再次按 →| 获得列表。之后,您可以输入文件或路径的下一个字母,然后再次尝试通过按 →| 进行补全。在使用 →| 补全文件名和路径时,您可以同时检查您想要输入的文件或路径是否真的存在(并且您可以确保拼写正确)。

通配符

您可以使用通配符进行路径名扩展,以替换文件名中的一个或多个字符。通配符是可以代表其他字符的字符。Bash 中有三种不同的类型

通配符

功能

?

匹配任意单个字符

*

匹配任意数量的字符

[SET]

匹配方括号内指定组中的一个字符,此处由字符串 SET 表示。

13.7.1 使用历史记录、补全和通配符的示例 编辑源代码

以下示例说明了如何利用 Bash 的这些便捷功能。

过程 13.6: 使用历史记录和补全

如果您已经完成了示例 第 13.4.1 节,“使用文件和目录的示例”,您的 shell 缓冲区应该包含可以使用历史记录功能检索的命令。

  1. 重复,直到出现 cd ~

  2. Enter 执行命令并切换到您的主目录。

    默认情况下,您的主目录包含两个以相同字母开头的子目录,DocumentsDesktopDesktop

  3. 键入 cd D 并按 →|

    什么也不会发生,因为 Bash 无法识别您想要更改的子目录。

  4. 再次按 →| 以查看可能的选项列表

    > cd D
    Desktop/ Documents/ Downloads/
    > cd D
  5. 提示符仍然显示您的初始输入。键入您想要进入的子目录的下一个字符,然后再次按 →|

    Bash 现在将补全路径。

  6. 现在可以使用 Enter 执行该命令。

过程 13.7: 使用通配符

现在假设您的主目录包含具有各种文件扩展名的几个文件。它还保存了您以不同的文件名保存的同一个文件的几个版本 myfile1.txtmyfile2.txt 等。您想根据文件的属性搜索某些文件。

  1. 首先,在您的主目录中创建一些测试文件

    1. 使用 touch 命令创建几个(空)文件,具有不同的文件扩展名,例如 .pdf.xml.jpg

      您可以连续执行此操作(不要忘记使用 Bash 历史记录功能),或者使用一个 touch 命令:只需添加用空格分隔的几个文件名。

    2. 创建至少两个具有相同文件扩展名的文件,例如 .html

    3. 要创建同一个文件的几个“版本”,请输入

      > touch myfile{1..5}.txt

      此命令创建五个连续编号的文件:myfile1.txt、…、myfile5.txt

    4. 列出目录的内容。它应该如下所示

      > ls -l
      -rw-r--r-- 1 tux users   0 2006-07-14 13:34 foo.xml
      -rw-r--r-- 1 tux users   0 2006-07-14 13:47 home.html
      -rw-r--r-- 1 tux users   0 2006-07-14 13:47 index.html
      -rw-r--r-- 1 tux users   0 2006-07-14 13:47 toc.html
      -rw-r--r-- 1 tux users   0 2006-07-14 13:34 manual.pdf
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile1.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile2.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile3.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile4.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile5.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:32 tux.png
  2. 使用通配符,根据各种标准选择文件的某些子集

    1. 要列出所有具有 .html 扩展名的文件,请输入

      > ls -l *.html
    2. 要列出 myfile.txt 的所有“版本”,请输入

      > ls -l myfile?.txt

      请注意,您只能在此处使用 ? 通配符,因为文件的编号是单位数。一旦您有一个名为 myfile10.txt 的文件,您必须使用 * 通配符才能查看 myfile.txt 的所有版本(或者添加另一个问号,使您的字符串看起来像 myfile??.txt)。

    3. 要删除例如版本 1-3 和版本 5 的 myfile.txt,请输入

      > rm myfile[1-3,5].txt
    4. 使用以下命令检查结果

      > ls -l

      所有 myfile.txt 版本中,应该只剩下 myfile4.txt

您可以在一个命令中组合多个通配符。在上面的示例中,rm myfile[1-3,5].* 将产生与 rm myfile[1-3,5].txt 相同的结果,因为只有具有 .txt 扩展名的文件可用。

Note
注意:在 rm 命令中使用通配符

rm 命令中使用通配符可能非常有用,但也非常危险:您可能会删除目录中比预期更多的文件。要查看受 rm 影响的文件,请先使用 ls 运行您的通配符字符串,而不是 rm

13.8 编辑文本 编辑源代码

为了从命令行编辑文件,您需要了解 vi 编辑器。vi 是默认编辑器,几乎可以在每个 UNIX/Linux 系统上找到。它可以运行几种操作模式,您按下的键在不同的模式下具有不同的功能。这使得它对于初学者来说不太容易,但您应该至少了解 vi 的基本操作。

基本上,vi 使用三种操作模式

命令 模式

在此模式下,vi 接受某些键组合作为命令。可以执行简单的任务,例如搜索单词或删除一行。

插入 模式

在此模式下,您可以编写普通文本。

扩展 模式

在此模式下,也称为冒号模式(因为您必须输入冒号才能切换到此模式),vi 还可以执行更复杂的任务,例如搜索和替换文本。

在以下(非常简单的)示例中,您将学习如何使用 vi 打开和编辑文件,如何保存更改并退出 vi。

13.8.1 示例:使用 vi 编辑 编辑源代码

Note
注意:键的显示

在以下内容中,找到您可以通过按键在 vi 中输入的几个命令。这些以键盘上的大写字母显示。如果您需要以大写字母输入键,则会明确说明,方法是显示包含 Shift 键的键组合。

  1. 要创建并使用 vi 打开一个新文件,请输入

    > vi textfile.txt

    默认情况下,vi 以 命令 模式打开,在这种模式下您无法输入文本。

  2. I 切换到插入模式。底线会更改,并指示您现在可以插入文本。

  3. 编写一些句子。如果您想插入新行,请先按 Esc 切换回命令模式。按 O 插入新行并再次切换到插入模式。

  4. 在插入模式下,您可以使用箭头键和 Del 编辑文本。

  5. 要退出 vi,请按 Esc 切换回命令模式。然后按 :,这将带您进入扩展模式。底线现在显示一个冒号。

  6. 要退出 vi 并保存更改,键入 wqw 表示 writeq 表示 quit),然后按 Enter。如果您想以不同的名称保存文件,请键入 w FILENAME 并按 Enter

    要不保存地退出 vi,请键入 q! 并按 Enter

13.10 查看文本文件 编辑源代码

使用 grep 搜索文件的内容时,输出会显示找到 searchstring 的行以及文件名。通常,此上下文信息仍然不足以确定您是否要打开和编辑此文件。Bash 提供了几个命令,可以直接在 shell 中快速查看文本文件的内容,而无需打开编辑器。

head

使用 head,您可以查看文本文件的前几行。如果您不进一步指定命令,head 将显示文本文件的前 10 行。

tail

tail 命令是 head 的对应命令。如果您不使用任何其他选项使用 tail,它将显示文本文件的最后 10 行。这对于查看系统的日志文件非常有用,因为最新的消息或日志条目通常位于文件的末尾。

less

使用 less,显示文本文件的全部内容。要上下移动半页,请使用 Page ↑Page ↓。使用 Space 向下滚动一页。Home 将带您到开头,End 将带您到文档的末尾。要结束查看模式,请按 Q

more

您可以选择使用较旧的程序 more 代替 less。它基本上具有相同的功能,但是不太方便,因为它不允许您向后滚动。使用 Space 向前移动。当您到达文档末尾时,查看器将自动关闭。

cat

cat 命令显示文件的内容,将整个内容不间断地打印到屏幕上。由于 cat 不允许您滚动,因此它作为查看器用处不大,但它通常与其他命令结合使用。

13.11 重定向和管道 编辑源代码

有时,如果您可以将命令的输出写入文件以供进一步编辑,或者如果您可以将几个命令组合起来,使用一个命令的输出作为下一个命令的输入,那将很有用。shell 通过重定向或管道提供此功能。

通常,shell 中的标准输出是您的屏幕(或打开的 shell 窗口),标准输入是键盘。使用某些符号,您可以将输入或输出重定向到另一个对象,例如文件或另一个命令。

重定向

使用 > 可以将命令的输出重定向到文件(输出重定向),使用 < 可以使用文件作为命令的输入(输入重定向)。

管道

通过管道符号 | 也可以重定向输出:使用管道,您可以组合多个命令,将一个命令的输出作为下一个命令的输入。与其他的重定向符号 > 和 < 相比,管道的使用不限于文件。

13.11.1 重定向和管道示例 编辑源代码

  1. 要将命令(如 ls)的输出写入文件,请输入

    > ls -l > filelist.txt

    这将创建一个名为 filelist.txt 的文件,其中包含当前目录的内容列表,由 ls 命令生成。

    但是,如果名为 filelist.txt 的文件已经存在,此命令将覆盖现有文件。要防止这种情况,请使用 >> 代替 >。输入

    > ls -l >> filelist.txt

    会将 ls 命令的输出简单地追加到名为 filelist.txt 的现有文件中。如果文件不存在,则会创建该文件。

  2. 重定向也适用于反向操作。您可以将文件用作命令的标准输入,而不是从键盘获取输入

    > sort < filelist.txt

    这将强制 sort 命令从 filelist.txt 的内容获取输入。结果将显示在屏幕上。当然,您也可以使用重定向的组合将结果写入另一个文件

    > sort < filelist.txt > sorted_filelist.txt
  3. 如果命令生成了大量的输出,例如 ls -l 可能会做的那样,将输出管道传输到像 less 这样的查看器可能很有用,以便您可以滚动浏览页面。为此,请输入

    > ls -l | less

    当前目录的内容列表将显示在 less 中。

    管道通常也与 grep 命令结合使用,以便在另一个命令的输出中搜索特定的字符串。例如,如果您想查看目录中由用户 tux 拥有的文件列表,请输入

    > ls -l | grep tux

13.12 启动程序和处理进程 编辑源代码

如您在 第 13.8 节,“编辑文本” 中所见,可以从 shell 启动程序。具有图形用户界面的应用程序需要 X Window System 并且只能从图形用户界面中的终端窗口启动。例如,如果您想在 KDE 或 GNOME 的终端窗口中打开位于您主目录中的名为 vacation.pdf 的文件,只需运行 okular ~/vacation.pdf(或 evince ~/vacation.pdf)即可启动显示您文件的 PDF 查看器。

再次查看终端窗口时,您会发现只要 PDF 查看器打开,命令行就会被阻塞,这意味着您的提示符不可用。要更改此状态,请按 CtrlZ 暂停该进程,然后输入 bg 将该进程发送到后台。

现在,您仍然可以查看 vacation.pdf,同时您的提示符可用于进一步的命令。更简单的方法是在启动时直接将进程发送到后台。为此,请在命令末尾添加一个与符号

> okular ~/vacation.pdf &

如果您从同一个 shell 启动了多个后台进程(也称为作业),则 jobs 命令将为您提供作业的概述。它还会显示方括号中的作业编号及其状态

> jobs
[1]   Running        okular book.opensuse.startup-xep.pdf &
[2]-  Running        okular book.opensuse.reference-xep.pdf &
[3]+  Stopped        man jobs

要将作业带到前台,请输入 fg JOB_NUMBER

虽然 job 仅显示从特定 shell 启动的后台进程,但 ps 命令(不带任何选项)显示所有进程的列表——您启动的那些进程。下面是一个示例输出

> ps
PID TTY          TIME CMD
15500 pts/1    00:00:00 bash
28214 pts/1    00:00:00 okular
30187 pts/1    00:00:00 kwrite
30280 pts/1    00:00:00 ps

如果无法以正常方式终止程序,请使用 kill 命令停止该程序(或进程)。为此,请指定 ps 的输出中显示的进程 ID (PID)。例如,要关闭上面的示例中的 KWrite 编辑器,请输入

> kill 30187

这将发送一个 TERM 信号,指示程序自行关闭。

或者,如果想要终止的程序或进程是 jobs 命令显示的后台作业,也可以使用 kill 命令与作业编号结合使用来终止该进程。在用作业编号标识作业时,必须在数字前加上百分号 (%)

> kill %JOB_NUMBER

如果 kill 无效——有时对于 失控 程序而言——请尝试

> kill -9 PID

这将发送一个 KILL 信号而不是 TERM 信号,通常会结束指定的进程。

本节旨在介绍处理作业和进程的最基本命令集。有关系统管理员的概述,请参阅 “系统分析和调优指南”一书,第 2 章“系统监控实用程序”,第 2.3 节“进程”

13.13 归档和数据压缩 编辑源代码

在 Linux 上,有两种类型的命令可以更轻松地传输数据

  • 归档器,它从几个较小的文件创建更大的文件。最常用的归档器是 tar,另一个示例是 cpio

  • 压缩器,它无损地减小文件大小。最常用的压缩器是 gzipbzip2

将这两种类型的命令结合使用时,其效果与在其他操作系统中流行的压缩归档文件(例如 ZIPRAR)相当。

要将 test 目录及其所有文件和子目录打包到名为 testarchive.tar 的归档文件中,请执行以下操作

步骤 13.8: 归档文件
  1. 打开 shell。

  2. 使用 cd 更改到您的主目录,test 目录位于其中。

  3. 使用以下命令压缩文件

    > tar -cvf testarchive.tar test

    -c 选项创建归档文件,使其成为由 -f 指示的文件。 -v 选项列出正在处理的文件。

    test 目录及其所有文件和目录在您的硬盘上保持不变。

  4. 使用以下命令查看归档文件的内容

    > tar -tf testarchive.tar
  5. 要解包归档文件,请使用

    > tar -xvf testarchive.tar

    如果当前目录中的文件与归档文件中的文件同名,则它们将被覆盖,不会发出任何警告。

要压缩文件,请使用 gzip 或,为了获得更好的压缩效果,请使用 bzip2

步骤 13.9: 压缩文件
  1. 对于此示例,请重用 步骤 13.8,“归档文件” 中的 testarchive.tar 归档文件。

    要压缩归档文件,请使用

    > gzip testarchive.tar

    使用 ls,现在可以看到文件 testarchive.tar 不再存在,并且已创建文件 testarchive.tar.gz

    或者,使用 bzip2 testarchive.tar,其工作方式类似,但提供更好的压缩效果。

  2. 现在再次解压缩和解归档文件

    • 这可以分两步完成,首先解压缩文件,然后解归档文件

      > gzip --decompress testarchive.tar.gz
      > tar -xvf testarchive.tar
    • 您也可以一步解压缩和解归档

      > tar -xvf testarchive.tar

    使用 ls,您可以看到已创建了一个新的 test 目录,其内容与您主目录中的 test 目录相同。

13.14 重要的 Linux 命令 编辑源代码

本节概述了最重要的 Linux 命令。本章列出的命令远不止这些。随着每个命令,都列出了参数,并在适当的情况下介绍了典型的示例应用程序。

根据您的需要调整参数。如果不存在名为 file 的文件,则编写 ls file 是没有意义的。通常可以将多个参数组合起来,例如,通过编写 ls -la 而不是 ls -l -a

13.14.1 文件命令 编辑源代码

以下部分列出了最重要的文件管理命令。它涵盖了从常规文件管理到操作文件系统 ACL 的所有内容。

13.14.1.1 文件管理 编辑源代码

ls OPTIONS FILES

如果您在不带任何其他参数的情况下运行 ls,则该程序将以简短形式列出当前目录的内容。

-l

详细列表

-a

显示隐藏文件

cp OPTIONS SOURCE TARGET

source 复制到 target

-i

如有必要,在覆盖现有的 target 之前等待确认

-r

递归复制(包括子目录)

mv OPTIONS SOURCE TARGET

source 复制到 target,然后删除原始 source

-b

在移动之前创建 source 的备份副本

-i

如有必要,在覆盖现有的 targetfile 之前等待确认

rm OPTIONS FILES

从文件系统中删除指定的 文件。除非使用选项 -r,否则 rm 不会删除目录。

-r

删除任何现有的子目录

-i

在删除每个文件之前等待确认

ln OPTIONS SOURCE TARGET

source 创建到 target 的内部链接。通常,这样的链接直接指向同一文件系统上的 source。但是,如果使用 -s 选项执行 ln,它将创建一个符号链接,该链接仅指向 source 所在的目录,从而实现跨文件系统的链接。

-s

创建符号链接

cd OPTIONS DIRECTORY

更改当前目录。不带任何参数的 cd 会更改为用户的家目录。

mkdir OPTIONS DIRECTORY

创建一个新目录。

rmdir OPTIONS DIRECTORY

如果该目录已经为空,则删除指定的目录。

chown OPTIONS USER_NAME[:GROUP] FILES

将文件的所有权转移给具有指定用户名的用户。

-R

更改所有子目录中的文件和目录

chgrp OPTIONS GROUP_NAME FILES

将给定 file 的组所有权转移给具有指定组名的组。文件所有者只能在同时是当前组和新组的成员时才能更改组所有权。

chmod OPTIONS MODE FILES

更改访问权限。

mode 参数包含三个部分:groupaccessaccess typegroup 接受以下字符

u

用户

g

o

其他

对于 access,使用 + 授予访问权限,使用 - 拒绝访问权限。

access type 由以下选项控制

r

读取

w

写入

x

执行——执行文件或更改为目录

s

Setuid 位——应用程序或程序将以文件所有者的身份启动

或者,可以使用数字代码。此代码的四个数字由值 4、2 和 1 的总和组成——二进制掩码的十进制结果。第一个数字设置 Set User ID (SUID) (4)、Set Group ID (2) 和 Sticky (1) 位。第二个数字定义文件所有者的权限。第三个数字定义组权限,最后一个数字设置所有其他用户的权限。读取权限用 4 设置,写入权限用 2 设置,执行文件的权限用 1 设置。文件的所有者通常会收到 6 或 7 用于可执行文件。

gzip PARAMETERS FILES

此程序使用复杂的数学算法压缩文件的内容。以这种方式压缩的文件具有扩展名 .gz,需要在解压缩后才能使用。要压缩多个文件甚至整个目录,请使用 tar 命令。

-d

解压缩打包的 gzip 文件,使其恢复到原始大小并可以正常处理(如命令 gunzip)

tar OPTIONS ARCHIVE FILES

tar 将一个或多个文件放入归档文件中。压缩是可选的。 tar 是一个相当复杂的命令,具有多个可用选项。最常用的选项是

-f

将输出写入文件,而不是像通常那样写入屏幕

-c

创建一个新的 TAR 归档文件

-r

将文件添加到现有的归档文件

-t

输出归档文件的内容

-u

添加文件,但仅当它们比归档文件中已有的文件更新时

-x

从归档文件中解压文件(提取

-z

使用 gzip 压缩生成的归档文件

-j

使用 bzip2 压缩生成的归档文件

-v

列出处理的文件

tar 创建的归档文件以 .tar 结尾。如果 TAR 归档文件也使用 gzip 压缩,则结尾为 .tgz.tar.gz。如果它使用 bzip2 压缩,则结尾为 .tar.bz2

find 选项

使用 find 在给定目录中搜索文件。第一个参数指定开始搜索的目录。选项 -name 必须后跟一个搜索字符串,该字符串也可以包含通配符。与使用数据库的 locate 不同,find 扫描实际目录。

13.14.1.2 访问文件内容的命令 编辑源文件

file 选项 文件

在 Linux 中,文件可以具有文件扩展名,但不必具有。 file 确定给定文件的文件类型。通过 file 的输出,您可以选择合适的应用程序来打开该文件。

-z

尝试查看压缩文件内部

cat 选项 文件

cat 命令显示文件的内容,将整个内容不间断地打印到屏幕上。

-n

在左边距上对输出进行编号

less 选项 文件

此命令可用于浏览指定文件的内容。使用 Page ↑Page ↓ 向上或向下滚动半页,或使用 Space 向下滚动整页。使用 HomeEnd 跳转到文件的开头或结尾。按 Q 退出程序。

grep 选项 搜索字符串 文件

grep 命令在指定的文件中查找特定的搜索字符串。如果找到搜索字符串,该命令将显示包含 搜索字符串 的行以及文件名。

-i

忽略大小写

-H

仅显示相关文件的名称,而不显示文本行

-n

还显示找到匹配项的行号

-l

仅列出不包含 搜索字符串 的文件

diff 选项 文件_1 文件_2

diff 命令比较两个文件的内容。该程序生成的输出列出所有不匹配的行。这通常被程序员使用,他们只需要发送程序的更改,而不是整个源代码。

-q

仅报告两个文件是否不同

-u

生成““统一””diff,使输出更易读

13.14.1.3 文件系统 编辑源文件

mount 选项 设备 挂载点

此命令可用于将任何数据介质(例如硬盘、CD-ROM 驱动器和其他驱动器)挂载到 Linux 文件系统的目录。

-r

只读挂载

-t 文件系统

指定文件系统:对于 Linux 硬盘,这通常是 ext4xfsbtrfs

对于未在 /etc/fstab 文件中定义的硬盘,还必须指定设备类型。在这种情况下,只有 root 才能挂载它。如果还需要其他用户挂载文件系统,请在 /etc/fstab 文件中相应的行中输入选项 user(用逗号分隔)并保存此更改。有关更多信息,请参阅 mount(1) man 页。

umount 选项 挂载点

此命令从文件系统卸载已挂载的驱动器。为了防止数据丢失,在从驱动器中取出可移动数据介质之前,请运行此命令。通常,只有 root 才能运行 mountumount 命令。要允许其他用户运行这些命令,请编辑 /etc/fstab 文件以指定相关驱动器的选项 user

13.14.2 系统命令 编辑源文件

以下部分列出了检索系统信息以及控制进程和网络所需的一些最重要的命令。

13.14.2.1 系统信息 编辑源文件

df 选项 目录

在没有任何选项的情况下使用时,df 命令显示有关总磁盘空间、当前使用的磁盘空间以及所有已挂载驱动器上的可用空间的信息。如果指定了目录,则信息将限制为位于该目录上的驱动器。

-h

以千兆字节、兆字节或千字节的形式显示已占用块的数量——以人类可读的格式

-T

文件系统类型(ext2、nfs 等)

du 选项 路径

在没有任何参数的情况下执行时,此命令显示当前目录中文件和子目录占用的总磁盘空间。

-a

显示每个单个文件的大小

-h

以人类可读的形式输出

-s

仅显示计算的总大小

free 选项

free 命令显示有关 RAM 和交换空间使用情况的信息,显示两类别的总用量和已用量。有关更多信息,请参阅 “参考”手册,第 15 章“特殊系统功能”,第 15.1.7 节“free 命令”

-b

以字节为单位输出

-k

以千字节为单位输出

-m

以兆字节为单位输出

date 选项

这个简单的程序显示当前的系统时间。如果以 root 身份运行,它也可以用于更改系统时间。有关该程序的详细信息,请参阅 date(1) man 页。

13.14.2.2 进程 编辑源文件

top 选项

top 提供当前正在运行的进程的快速概述。按 H 访问一个页面,该页面简要说明了自定义程序的关键选项。

ps 选项 进程 ID

在没有任何选项的情况下运行,此命令显示您自己所有程序或进程的表——您启动的那些。此命令的选项不由连字符开头。

aux

显示所有进程的详细列表,与所有者无关

kill 选项 进程 ID

不幸的是,有时无法以正常方式终止程序。在大多数情况下,您仍然可以通过执行 kill 命令并指定相应的进程 ID(参见 topps)来停止此类失控程序。 kill 发送一个 TERM 信号,指示程序自行关闭。如果这不起作用,可以使用以下参数

-9

发送 KILL 信号而不是 TERM 信号,几乎在所有情况下都结束指定的进程

killall 选项 进程名称

此命令类似于 kill,但使用进程名称(而不是进程 ID)作为参数,结束所有具有该名称的进程。

13.14.2.3 网络 编辑源文件

ping 选项 主机名或 IP 地址

ping 命令是测试 TCP/IP 网络基本功能的标准工具。它向目标主机发送一个小型数据包,请求立即回复。如果这有效,ping 将显示一条消息,表明网络链路正在运行。

-c数字

确定要发送的总数据包数,并在发送后结束(默认情况下,未设置限制)

-f

flood ping:发送尽可能多的数据包;一种流行的手段,仅供 root 使用,用于测试网络

-i

指定两个数据包之间的间隔(以秒为单位)(默认值:一秒)

host 选项 主机名 服务器

域名系统将域名解析为 IP 地址。使用此工具,向名称服务器(DNS 服务器)发送查询。

ssh 选项 [用户@]主机名 命令

SSH 实际上是一种 Internet 协议,使您能够通过网络在远程主机上工作。SSH 也是 Linux 程序名称,它使用该协议在远程计算机上启用操作。

13.14.2.4 杂项 编辑源文件

passwd 选项 用户名

用户可以随时使用此命令更改自己的密码。管理员 root 可以使用该命令更改系统上任何用户的密码。

su 选项 用户名

su 命令允许您从正在运行的会话中以不同的用户名登录。指定用户名和相应的密码。从 root 不需要密码,因为 root 有权假定任何用户的身份。在使用不指定用户名的命令时,系统会提示您输入 root 密码并更改为超级用户 (root)。使用 su - 启动不同用户的登录 shell。

halt 选项

为了避免数据丢失,您应始终使用此程序关闭系统。

reboot 选项

halt 相同,只是系统会立即重新启动。

clear

此命令清除控制台的可见区域。它没有选项。

13.14.3 更多信息 编辑源文件

本章中列出的命令还有很多。有关其他命令或更详细的信息,请参阅 O'Reilly 出版的 Linux in a Nutshell

14 Bash 和 Bash 脚本 编辑源文件

摘要

如今,许多人使用带有图形用户界面 (GUI)(如 GNOME)的计算机。虽然 GUI 提供了许多功能,但在执行自动化任务时受到限制。Shell 很好地补充了 GUI,本章概述了 shell 的几个方面,在本例中是 Bash shell。

14.1 什么是““shell””? 编辑源文件

传统上,the Linux shell 是 Bash(Bourne again Shell)。当本章谈论 the shell 时,指的是 Bash。还有更多的 shell 可用(ash、csh、ksh、zsh……),每个 shell 采用不同的功能和特性。如果您需要有关其他 shell 的更多信息,请在 YaST 中搜索 shell

14.1.1 Bash 配置文件 编辑源文件

shell 可以被调用为

  1. 交互式登录 shell。  这用于登录机器、使用 --login 选项调用 Bash 或使用 SSH 登录远程机器时。

  2. “普通””交互式 shell。  这通常是在启动 xterm、konsole、gnome-terminal 或类似命令行界面 (CLI) 工具时的情况。

  3. 非交互式 shell。  这在命令行下调用 shell 脚本时被调用。

每个 shell 读取不同的配置文件。下表显示了登录和非登录 shell 的配置文件。

Tip
提示

Bash 会根据运行 shell 的类型,以特定顺序查找其配置文件。有关更多详细信息,请参阅 Bash 手册页 (man 1 bash)。搜索标题 INVOCATION

表 14.1:登录 shell 的 Bash 配置文件

文件

描述

/etc/profile

请勿修改此文件,否则您的修改可能会在下次更新时被破坏。

/etc/profile.local

如果扩展 /etc/profile,请使用此文件

/etc/profile.d/

包含针对特定程序的系统范围配置文件

~/.profile

在此处插入登录 shell 的用户特定配置

登录 shell 还会引用在 表 14.2,“非登录 shell 的 Bash 配置文件” 下列出的配置文件。

表 14.2:非登录 shell 的 Bash 配置文件

/etc/bash.bashrc

请勿修改此文件,否则您的修改可能会在下次更新时被破坏。

/etc/bash.bashrc.local

使用此文件插入仅针对 Bash 的系统范围修改

~/.bashrc

在此处插入用户特定配置

此外,Bash 还会使用多个文件

表 14.3:Bash 的特殊文件

文件

描述

~/.bash_history

包含您键入的所有命令的列表

~/.bash_logout

在注销时执行

~/.alias

用户定义的常用命令的别名。有关定义别名的更多详细信息,请参阅 man 1 alias

非登录 Shell编辑源文件

有一些特殊的 shell 会阻止用户登录系统:/bin/false/sbin/nologin。当用户尝试登录系统时,两者都会静默失败。这最初是作为系统用户的安全措施,尽管现代 Linux 操作系统具有更有效的工具来控制系统访问,例如 PAM 和 AppArmor。

openSUSE Leap 上,默认情况下是将 /bin/bash 分配给普通用户,并将 /bin/false/sbin/nologin 分配给系统用户。出于历史原因,nobody 用户拥有 /bin/bash,因为它是拥有最少权限的用户,过去曾是系统用户的默认用户。但是,使用 nobody 获得的任何一点安全性都会在多个系统用户使用它时丧失。应该可以将其更改为 /sbin/nologin;测试它的最快方法是更改它并查看是否会破坏任何服务或应用程序。

使用以下命令列出分配给所有用户(系统用户和普通用户)在 /etc/passwd 中的 shell。输出因您的系统上的服务和用户而异

> sort -t: -k 7 /etc/passwd | awk -F: '{print $1"\t" $7}' | column -t
tux               /bin/bash
nobody            /bin/bash
root              /bin/bash
avahi             /bin/false
chrony            /bin/false
dhcpd             /bin/false
dnsmasq           /bin/false
ftpsecure         /bin/false
lightdm           /bin/false
mysql             /bin/false
postfix           /bin/false
rtkit             /bin/false
sshd              /bin/false
tftp              /bin/false
unbound           /bin/false
bin               /sbin/nologin
daemon            /sbin/nologin
ftp               /sbin/nologin
lp                /sbin/nologin
mail              /sbin/nologin
man               /sbin/nologin
nscd              /sbin/nologin
polkitd           /sbin/nologin
pulse             /sbin/nologin
qemu              /sbin/nologin
radvd             /sbin/nologin
rpc               /sbin/nologin
statd             /sbin/nologin
svn               /sbin/nologin
systemd-coredump  /sbin/nologin
systemd-network   /sbin/nologin
systemd-timesync  /sbin/nologin
usbmux            /sbin/nologin
vnc               /sbin/nologin
wwwrun            /sbin/nologin
messagebus        /usr/bin/false
scard             /usr/sbin/nologin

14.1.2 目录结构 编辑源文件

下表提供了 Linux 系统上最重要的顶级目录的简要概述。有关目录和重要子目录的更多详细信息,请参阅以下列表。

表 14.4:标准目录树概述

目录

内容

/

根目录——目录树的起点。

/bin

基本二进制文件,例如系统管理员和普通用户都需要的命令。通常也包含 shell,例如 Bash。

/boot

引导加载程序的静态文件。

/dev

访问主机特定设备所需的文件。

/etc

主机特定的系统配置文件。

/home

保存具有系统帐户的所有用户的家目录。但是,root 的家目录不位于 /home 中,而位于 /root 中。

/lib

基本共享库和内核模块。

/media

可移动介质的挂载点。

/mnt

临时挂载文件系统的挂载点。

/opt

附加应用程序软件包。

/root

超级用户 root 的家目录。

/sbin

基本系统二进制文件。

/srv

系统提供的服务的数据。

/tmp

临时文件。

/usr

二级层次结构,具有只读数据。

/var

变量数据,例如日志文件。

/windows

仅当您同时安装了 Microsoft Windows* 和 Linux 时可用。包含 Windows 数据。

以下列表提供了更多详细信息,并给出了一些可以在目录中找到的文件和子目录的示例

/bin

包含 root 和其他用户都可以使用的基本 shell 命令。这些命令包括 lsmkdircpmvrmrmdir/bin 还包含 Bash,这是 openSUSE Leap 中的默认 shell。

/boot

包含启动所需的数据,例如引导加载程序、内核和其他在内核开始执行用户模式程序之前使用的数据。

/dev

保存表示硬件组件的设备文件。

/etc

包含本地配置文件,用于控制 X Window System 等程序的运行。 /etc/init.d 子目录包含可以在启动过程中执行的 LSB 初始化脚本。

/home/USERNAME

保存系统上具有帐户的每个用户的私有数据。此处的 文件只能由其所有者或系统管理员修改。默认情况下,您的电子邮件目录和个人桌面配置位于此处,以隐藏的文件和目录的形式,例如 .gconf/.config

Note
注意:网络环境中的家目录

如果您在网络环境中工作,您的家目录可能映射到文件系统中的目录,而不是 /home

/lib

包含启动系统和运行根文件系统中的命令所需的关键共享库。Windows 中共享库的等效项是 DLL 文件。

/media

包含可移动介质的挂载点,例如 CD-ROM、闪存盘和使用 USB 的数码相机。 /media 通常包含任何类型的驱动器,但您的系统的硬盘除外。当您的可移动介质插入或连接到系统并挂载时,您可以从此处访问它。

/mnt

此目录提供临时挂载文件系统的挂载点。root 可以在此处挂载文件系统。

/opt

保留用于安装第三方软件。可选软件和较大的附加程序包可以在此处找到。

/root

root 用户的家目录。root 的个人数据位于此处。

/run

systemd 和各种组件使用的 tmpfs 目录。/var/run 是指向 /run 的符号链接。

/sbin

正如 s 所指示的那样,此目录保存超级用户的实用程序。/sbin 包含启动、恢复和恢复系统所必需的二进制文件,以及 /bin 中的二进制文件。

/srv

保存系统提供的服务的数据,例如 FTP 和 HTTP。

/tmp

此目录由需要临时存储文件的程序使用。

Important
重要:启动时清理 /tmp

存储在 /tmp 中的数据不能保证在系统重新启动后幸存。它取决于,例如,在 /etc/tmpfiles.d/tmp.conf 中所做的设置。

/usr

/usr 与用户无关,而是 Unix 系统资源的缩写。 /usr 中的数据是静态的、只读的数据,可以在符合 Filesystem Hierarchy Standard (FHS) 的各种主机之间共享。此目录包含所有应用程序程序,包括 GNOME 等图形桌面,并在文件系统中建立二级层次结构。/usr 包含几个子目录,例如 /usr/bin/usr/sbin/usr/local/usr/share/doc

/usr/bin

包含通常可访问的程序。

/usr/sbin

包含保留给系统管理员的程序,例如修复功能。

/usr/local

在此目录中,系统管理员可以安装本地的、与发行版无关的扩展。

/usr/share/doc

保存各种文档文件和系统的发行说明。在 manual 子目录中,找到此手册的在线版本。如果安装了多种语言,此目录可能包含不同语言的手册版本。

packages 下,找到安装在系统上的软件包中包含的文档。对于每个包,都会创建一个子目录 /usr/share/doc/packages/PACKAGENAME,其中通常包含包的 README 文件,有时还包含示例、配置文件或额外的脚本。

如果安装了 HOWTO,/usr/share/doc 还包含 howto 子目录,其中包含有关与 Linux 软件设置和操作相关的许多任务的额外文档。

/var

虽然 /usr 包含静态的、只读的数据,但 /var 用于在系统操作期间写入的数据,因此是变量数据,例如日志文件或假脱机数据。有关可以在 /var/log/ 下找到的最重要的日志文件的概述,请参阅 表 21.1,“日志文件”

/windows

仅当您同时安装了 Microsoft Windows 和 Linux 时可用。包含 Windows 分区上可用的 Windows 数据。您是否可以编辑此目录中的数据取决于 Windows 分区使用的文件系统。如果它是 FAT32,您可以打开和编辑此目录中的文件。对于 NTFS,openSUSE Leap 也包含写入访问支持。但是,NTFS-3g 文件系统驱动程序的功能有限。

14.2 编写 shell 脚本 编辑源文件

Shell 脚本提供了一种方便的方法来执行各种任务:收集数据、在文本中搜索单词或短语以及其他有用的事情。以下示例显示了一个打印文本的小 shell 脚本

示例 14.1:打印文本的 shell 脚本
#!/bin/sh 1
# Output the following line: 2
echo "Hello World" 3

1

第一行以 Shebang 字符 (#!) 开头,指示此文件是一个脚本。在 Shebang 之后指定的解释器将执行该脚本。在这种情况下,指定的解释器是 /bin/sh

2

第二行是以井号开头的注释。我们建议您注释难以理解的行。通过适当的注释,您可以记住该行的目的和功能。此外,其他读者可以更好地理解您的脚本。在开发社区中,注释被认为是良好的实践。

3

第三行使用内置命令 echo 打印相应的文本。

在运行此脚本之前,有一些先决条件

  1. 每个脚本都应包含 Shebang 行(如上面的示例所示)。如果缺少该行,则需要手动调用解释器。

  2. 您可以将脚本保存到任何位置。但是,将其保存到 shell 可以找到它的目录中是一个好主意。Shell 中的搜索路径由环境变量 PATH 确定。普通用户无法写入 /usr/bin。因此,建议将您的脚本保存到用户的目录 ~/bin/ 中。上面的示例名为 hello.sh

  3. 脚本需要可执行权限。使用以下命令设置权限

    > chmod +x ~/bin/hello.sh

如果您满足上述所有先决条件,可以通过以下方式执行脚本

  1. 作为绝对路径。  可以使用绝对路径执行脚本。在本例中,它是 ~/bin/hello.sh

  2. 随处。  如果 PATH 环境变量包含脚本所在的目录,则可以使用 hello.sh 执行脚本。

14.3 重定向命令事件 编辑源文件

每个命令可以使用三个通道,用于输入或输出

  • 标准输出。  这是默认输出通道。每当命令打印内容时,它都会使用标准输出通道。

  • 标准输入。 如果一个命令需要来自用户或其他命令的输入,它会使用这个通道。

  • 标准错误。 命令使用这个通道进行错误报告。

要重定向这些通道,有以下几种可能性

Command > 文件

将命令的输出保存到文件中,现有文件将被删除。例如,ls 命令将其输出写入到文件 listing.txt

> ls > listing.txt
Command >> 文件

将命令的输出追加到文件中。例如,ls 命令将其输出追加到文件 listing.txt

> ls >> listing.txt
Command < 文件

将文件作为给定命令的输入读取。例如,read 命令将文件内容读取到变量中

> read a < foo
Command1 | Command2

将左侧命令的输出重定向为右侧命令的输入。例如,cat 命令输出 /proc/cpuinfo 文件的内容。此输出由 grep 用于过滤仅包含 cpu 的行

> cat /proc/cpuinfo | grep cpu

每个通道都有一个 文件描述符:0(零)代表标准输入,1 代表标准输出,2 代表标准错误。允许在 <> 字符之前插入此文件描述符。例如,以下行搜索以 foo 开头的文件,但通过将其重定向到 /dev/null 来抑制其错误

> find / -name "foo*" 2>/dev/null

14.4 使用别名 编辑源文件

别名是一个或多个命令的快捷定义。别名的语法是

alias NAME=DEFINITION

例如,以下行定义了一个别名 lt,它输出一个长列表(选项 -l),按修改时间对其进行排序(-t),并以反向排序的顺序打印它(-r

> alias lt='ls -ltr'

要查看所有别名定义,请使用 alias。使用 unalias 和相应的别名名称删除你的别名。

14.5 在 Bash 中使用变量 编辑源文件

Shell 变量可以是全局变量或局部变量。全局变量或环境变量可以在所有 shell 中访问。相反,局部变量仅在当前 shell 中可见。

要查看所有环境变量,请使用 printenv 命令。如果你需要知道一个变量的值,请将你的变量名作为参数插入

> printenv PATH

无论全局变量还是局部变量,也可以使用 echo 查看

> echo $PATH

要设置局部变量,请使用变量名,后跟等号,后跟值

> PROJECT="SLED"

不要在等号周围插入空格,否则会收到错误。要设置环境变量,请使用 export

> export NAME="tux"

要删除变量,请使用 unset

> unset NAME

下表包含你可以在 shell 脚本中使用的常见环境变量

表 14.5:有用的环境变量

HOME

当前用户的家目录

HOST

当前主机名

LANG

当工具本地化时,它会使用此环境变量中的语言。也可以将英语设置为 C

PATH

shell 的搜索路径,一个由冒号分隔的目录列表

PS1

指定在每个命令之前打印的常规提示符

PS2

指定在执行多行命令时打印的辅助提示符

PWD

当前工作目录

USER

当前用户

14.5.1 使用参数变量 编辑源文件

例如,如果你有脚本 foo.sh,你可以这样执行它

> foo.sh "Tux Penguin" 2000

要访问传递给你的脚本的所有参数,你需要位置参数。这些是第一个参数的 $1,第二个参数的 $2,依此类推。你最多可以使用九个参数。要获取脚本名称,请使用 $0

以下脚本 foo.sh 打印从 1 到 4 的所有参数

#!/bin/sh
echo \"$1\" \"$2\" \"$3\" \"$4\"

如果你使用上述参数执行此脚本,你将得到

"Tux Penguin" "2000" "" ""

14.5.2 使用变量替换 编辑源文件

变量替换将模式应用于变量的内容,无论是从左侧还是右侧。以下列表包含可能的语法形式

${VAR#pattern}

从左侧删除最短的匹配项

> file=/home/tux/book/book.tar.bz2
> echo ${file#*/}
home/tux/book/book.tar.bz2
${VAR##pattern}

从左侧删除最长的匹配项

> file=/home/tux/book/book.tar.bz2
> echo ${file##*/}
book.tar.bz2
${VAR%pattern}

从右侧删除最短的匹配项

> file=/home/tux/book/book.tar.bz2
> echo ${file%.*}
/home/tux/book/book.tar
${VAR%%pattern}

从右侧删除最长的匹配项

> file=/home/tux/book/book.tar.bz2
> echo ${file%%.*}
/home/tux/book/book
${VAR/pattern_1/pattern_2}

VAR 的内容从 PATTERN_1 替换为 PATTERN_2

> file=/home/tux/book/book.tar.bz2
> echo ${file/tux/wilber}
/home/wilber/book/book.tar.bz2

14.6 分组和组合命令 编辑源文件

Shell 允许你连接和分组命令以进行条件执行。每个命令返回一个退出代码,该代码决定其操作的成功或失败。如果为 0(零),则命令成功,其他任何值都表示特定于该命令的错误。

以下列表显示了如何对命令进行分组

Command1 ; Command2

按顺序执行命令。不检查退出代码。以下行无论其退出代码如何,都使用 cat 显示文件内容,然后使用 ls 打印其文件属性

> cat filelist.txt ; ls -l filelist.txt
Command1 && Command2

如果左侧命令成功(逻辑与),则运行右侧命令。以下行仅在前面的命令成功时(与此列表中的上一个条目进行比较)才显示文件内容并打印其文件属性

> cat filelist.txt && ls -l filelist.txt
Command1 || Command2

当左侧命令失败时(逻辑或),运行右侧命令。以下行仅在 /home/tux/foo 中创建目录失败时,才在 /home/wilber/bar 中创建目录

> mkdir /home/tux/foo || mkdir /home/wilber/bar
funcname(){ ... }

创建一个 shell 函数。你可以使用位置参数来访问其参数。以下行定义了一个函数 hello,用于打印一条简短消息

> hello() { echo "Hello $1"; }

你可以这样调用这个函数

> hello Tux

它会打印

Hello Tux

14.7 使用常见的流程结构 编辑源文件

为了控制你的脚本的流程,shell 具有 whileifforcase 结构。

14.7.1 if 控制命令 编辑源文件

使用 if 命令来检查表达式。例如,以下代码测试当前用户是否为 Tux

if test $USER = "tux"; then
  echo "Hello Tux."
else
  echo "You are not Tux."
fi

测试表达式可以尽可能复杂或简单。以下表达式检查文件 foo.txt 是否存在

if test -e /tmp/foo.txt ; then
  echo "Found foo.txt"
fi

测试表达式也可以用方括号缩写

if [ -e /tmp/foo.txt ] ; then
  echo "Found foo.txt"
fi

https://bash.cyberciti.biz/guide/If..else..fi 上找到更多有用的表达式。

14.7.2 使用 for 命令创建循环 编辑源文件

for 循环允许你对列表中的条目执行命令。例如,以下代码打印有关当前目录中 PNG 文件的某些信息

for i in *.png; do
 ls -l $i
done

14.8 更多信息 编辑源文件

Bash 的重要信息在 man 页面 man bash 中提供。有关此主题的更多信息,请参见以下列表

第 V 部分 硬件配置 编辑源文件

15 设置系统键盘布局

YaST 系统键盘布局 模块允许你定义系统的默认键盘布局(也用于控制台)。用户可以使用桌面的工具修改其个人 X 会话中的键盘布局。

16 设置声卡

YaST 会自动检测大多数声卡并使用适当的值进行配置。要更改默认设置,或要设置无法自动配置的声卡,请使用 YaST 声卡模块。在那里,您还可以设置其他声卡或更改它们的顺序。

17 设置打印机

可以使用 YaST 配置本地和网络打印机。有关打印的更多信息(常规信息、技术细节和故障排除),请参阅 第 7 章,打印机操作

18 设置扫描仪

你可以使用 YaST 配置 USB 或 SCSI 扫描仪。sane-backends 包包含使用扫描器所需的基本硬件驱动程序和其他基本组件。如果你拥有 HP 一体机,请参阅第 18.1 节,“配置 HP 一体机”,有关如何配置网络扫描器的说明可用…

19 持久内存

本章包含有关使用 openSUSE Leap 与非易失性主内存(也称为 持久内存),包括一个或多个 NVDIMM 的其他信息。

15 设置系统键盘布局 编辑源文件

YaST 系统键盘布局 模块允许你定义系统的默认键盘布局(也用于控制台)。用户可以使用桌面的工具修改其个人 X 会话中的键盘布局。

  1. 通过单击 YaST 中的 硬件 › 系统键盘布局 来启动 YaST 系统键盘配置 对话框。或者,你可以从命令行使用 sudo yast2 keyboard 直接启动该模块。

  2. 从列表中选择所需的 键盘布局

  3. 测试 文本框中尝试所选的键盘布局。

  4. 如果结果符合预期,请确认你的更改并关闭对话框。

  5. 结果存储在文件 /etc/vconsole.conf(用于文本控制台)和 /etc/X11/xorg.conf.d/00-keyboard.conf(用于 X11)中。

  6. 可以在 系统 › Sysconfig Editor › 硬件 › 键盘 中配置高级键盘设置。在这里,你可以指定键盘速率和延迟设置,并启用或禁用 NumLock、CapsLock 和 ScrollLock。这些设置存储在 /etc/sysconfig/keyboard 中。

16 设置声卡 编辑源文件

YaST 会自动检测大多数声卡并使用适当的值进行配置。要更改默认设置,或要设置无法自动配置的声卡,请使用 YaST 声卡模块。在那里,您还可以设置其他声卡或更改它们的顺序。

Warning
警告

如果你不了解你的声音系统的所有细节,请不要手动更改其设置。相反,让你的声音子系统—PipeWire 或 PulseAudio—为你配置它。使用专用的桌面应用程序来切换音频设备。作为后备方案,请使用 pavucontrol 图形应用程序。

要启动声音模块,请启动 YaST 并单击 硬件 › 声音。或者,你可以通过以 root 用户身份从命令行运行 yast2 sound & 直接启动 声音配置 对话框。如果声音模块不可用,请使用 sudo zypper install yast2-sound 命令安装它。

过程 16.1:配置声卡

如果您添加了新的声卡,或者 YaST 无法自动配置现有的声卡,请按照以下步骤操作。配置新的声卡时,您需要知道声卡的厂商和型号。如有疑问,请参阅声卡文档以获取所需信息。有关 ALSA 支持的声卡及其对应的声音模块的参考列表,请参阅 https://www.alsa-project.org/main/index.php/Matrix:Main

在配置过程中,您可以选择以下设置选项

快速自动设置

您无需进行任何进一步的配置步骤,声卡将自动配置。您可以稍后设置音量或任何您想要更改的选项。

普通设置

允许您在配置过程中调整输出音量并播放测试声音。

具有选项更改功能的进阶设置

仅供专家使用。允许您自定义声卡的全部参数。

Important
重要提示:进阶配置

只有在您确切知道自己在做什么的情况下才使用此选项。否则,请保持参数不变,并使用普通或自动设置选项。

  1. 启动 YaST 声音模块。

  2. 要配置已检测到但未配置的声卡,请从列表中选择相应的条目,然后单击 编辑

    要配置新的声卡,请单击 添加。选择您的声卡厂商和型号,然后单击 下一步

  3. 选择其中一个设置选项,然后单击 下一步

  4. 如果您选择了 普通设置,现在可以 测试您的声音配置并调整音量。为了避免损坏您的听力或扬声器,建议从大约 10% 的音量开始。

  5. 如果所有选项都已根据您的意愿设置,请单击 下一步

    声音配置对话框显示了新配置或修改的声卡。

  6. 要删除您不再需要的声卡配置,请选择相应的条目,然后单击 删除

  7. 单击 确定以保存更改并退出 YaST 声音模块。

程序 16.2: 修改声卡配置
  1. 要更改单个声卡的配置(仅供专家使用!),请在 声音配置对话框中选择声卡条目,然后单击 编辑

    这将带您进入 声卡进阶选项,您可以在此处微调多个参数。有关更多信息,请单击 帮助

  2. 要调整已配置声卡的音量或测试声卡,请在 声音配置对话框中选择声卡条目,然后单击 其他。选择相应的菜单项。

    Note
    注意:YaST 混音器

    YaST 混音器设置仅提供基本选项。它们用于故障排除(例如,如果测试声音听不见)。从 其他 › 音量访问 YaST 混音器设置。对于日常使用和声音选项的微调,请使用桌面提供商提供的混音器小程序或 alsasound 命令行工具。

  3. 要播放 MIDI 文件,请选择 其他 › 启动音序器

  4. 当检测到受支持的声卡时,您可以安装 SoundFonts 以播放 MIDI 文件

    1. 将原始驱动程序 CD-ROM 插入您的 CD 或 DVD 驱动器。

    2. 选择 其他 › 安装 SoundFonts 以将 SF2 SoundFonts™ 复制到您的硬盘。SoundFonts 将保存在目录 /usr/share/sfbank/creative/ 中。

  5. 如果您在系统中配置了多个声卡,可以调整声卡的顺序。要将声卡设置为主设备,请在 声音配置中选择该声卡,然后单击 其他 › 设置为首选设备。索引为 0 的声音设备是默认设备,因此由系统和应用程序使用。

  6. 默认情况下,openSUSE Leap 使用 PulseAudio 声音系统。这是一个抽象层,有助于混合多个音频流,绕过硬件可能存在的任何限制。要启用或禁用 PulseAudio 声音系统,请单击 其他 › PulseAudio 配置。如果启用,PulseAudio 守护程序将用于播放声音。禁用 PulseAudio 支持 以在系统范围内使用其他内容。

单击 确定并退出 YaST 声音模块时,将保存所有声卡的音量和配置。混音器设置保存到文件 /etc/asound.state。ALSA 配置数据将附加到文件 /etc/modprobe.d/sound 的末尾,并写入 /etc/sysconfig/sound

17 设置打印机 编辑源文件

可以使用 YaST 配置本地和网络打印机。有关打印的更多信息(常规信息、技术细节和故障排除),请参阅 第 7 章,打印机操作

在 YaST 中,单击 硬件 › 打印机 以启动打印机模块。默认情况下,它以 打印机配置视图打开,显示所有可用和已配置的打印机列表。当通过网络访问大量打印机时,这尤其有用。从这里您还可以 打印测试页 和配置打印机。

Note
注意:启动 CUPS

要使用连接到您机器的打印机,您必须在您的系统上安装并运行 CUPS。如果 CUPS 未运行,系统会提示您启动它。如果 CUPS 未在启动时启动,系统也会提示您启用它(推荐)。

17.1 配置打印机 编辑源文件

USB 打印机通常会自动检测到。如果未发生这种情况,请检查打印机是否已打开并连接到机器。

配置打印机是一个三步过程:指定连接类型、选择驱动程序和为该设置命名打印队列。

许多打印机型号可能有多个可用的驱动程序。配置打印机时,YaST 默认选择标记为 推荐 的驱动程序。通常,没有必要更改驱动程序。但是,如果您希望彩色打印机仅以黑白打印,可以使用不支持彩色打印的驱动程序。如果您在使用 PostScript 打印机打印图形时遇到性能问题,请尝试从 PostScript 切换到 PCL 驱动程序(如果您的打印机支持 PCL)。

如果列表中没有您的打印机的驱动程序,请尝试选择具有适当标准语言的通用驱动程序。请参阅您的打印机文档,以了解您的打印机支持哪种语言(控制打印机的命令集)。如果这不起作用,请参阅 第 17.1.1 节,“使用 YaST 添加驱动程序” 以获取替代解决方案。

始终通过打印队列使用打印机。这确保了可以排队并依次处理并发作业。每个打印队列都分配给一个特定的驱动程序,并且打印机可以有多个队列。例如,这使得可以在彩色打印机上设置第二个仅以黑白打印的队列。

程序 17.1: 添加新打印机
  1. 使用 硬件 › 打印机 启动 YaST 打印机模块。

  2. 打印机配置屏幕上,单击 添加

  3. 如果打印机已在 指定连接下列出,请继续下一步。否则,尝试 检测更多 或启动 连接向导

  4. 查找并分配驱动程序下的文本框中,输入厂商名称和型号名称,然后单击 搜索

  5. 选择与您的打印机匹配的驱动程序。建议选择首先列出的驱动程序。如果未显示合适的驱动程序,请尝试以下操作。

    1. 检查搜索词。

    2. 通过单击 查找更多 扩展搜索。

    3. 第 17.1.1 节,“使用 YaST 添加驱动程序” 中所述,添加驱动程序。

  6. 指定 默认纸张大小

  7. 设置任意名称字段中,输入打印队列的唯一名称。

  8. 现在使用默认设置配置了打印机,可以随时使用。单击 确定 返回 打印机配置视图。新配置的打印机现在显示在打印机列表中。

17.1.1 使用 YaST 添加驱动程序 编辑源文件

并非所有可用于 openSUSE Leap 的打印机驱动程序都默认安装。添加打印机时,如果在 查找并分配驱动程序对话框中没有可用的合适的驱动程序,请安装包含打印机驱动程序的驱动程序包

程序 17.2: 安装其他驱动程序包
  1. 使用 硬件 › 打印机 启动 YaST 打印机模块。

  2. 打印机配置屏幕上,单击 添加

  3. 查找并分配驱动程序部分中,单击 驱动程序包

  4. 从列表中选择一个或多个合适的驱动程序包。不要指定打印机描述文件的路径。

  5. 选择 确定 并确认软件包安装。

  6. 要直接使用这些驱动程序,请按照 程序 17.1,“添加新打印机” 中所述进行操作。

PostScript 打印机不需要打印机驱动程序软件。PostScript 打印机只需要与特定型号匹配的 PostScript 打印机描述 (PPD) 文件。PPD 文件由打印机制造商提供。

如果在添加 PostScript 打印机时,查找并分配驱动程序对话框中没有可用的合适的 PPD 文件,请安装包含您打印机的 PPD 文件的驱动程序包

有几个 PPD 文件来源。建议首先尝试随 openSUSE Leap 提供的但默认未安装的附加驱动程序包(有关安装说明,请参见下文)。如果这些软件包不包含适用于您的打印机的驱动程序,请直接从您的打印机供应商或 PostScript 打印机的驱动程序 CD 获取 PPD 文件。有关详细信息,请参阅 第 7.8.2 节,“PostScript 打印机没有可用的合适的 PPD 文件”。或者,在 https://www.openprinting.org/printers 上找到 PPD 文件,即 OpenPrinting.org 打印机数据库。在使用 OpenPrinting 上的 PPD 文件时,请记住它们可能不受 openSUSE Leap 支持。

程序 17.3: 添加 PostScript 打印机的 PPD 文件
  1. 使用 硬件 › 打印机 启动 YaST 打印机模块。

  2. 打印机配置屏幕上,单击 添加

  3. 查找并分配驱动程序部分中,单击 驱动程序包

  4. 提供打印机描述文件下的文本框中,输入 PPD 文件的完整路径。

  5. 单击 确定 返回 添加新打印机配置屏幕。

  6. 要直接使用此 PPD 文件,请按照 程序 17.1,“添加新打印机” 中所述进行操作。

17.1.2 编辑本地打印机配置 编辑源文件

通过编辑现有打印机配置,您可以更改基本设置,例如连接类型和驱动程序。还可以调整默认设置,例如纸张大小、分辨率、介质源等。您可以通过更改打印机描述或位置来更改打印机的标识符。

  1. 使用 硬件 › 打印机 启动 YaST 打印机模块。

  2. 打印机配置屏幕上,从列表中选择本地打印机配置,然后单击 编辑

  3. 程序 17.1,“添加新打印机” 中所述,更改连接类型或驱动程序。只有在当前配置出现问题时才需要这样做。

  4. 可选地,通过选中 默认打印机 使此打印机成为默认打印机。

  5. 通过单击 当前驱动程序的所有选项 调整默认设置。要更改设置,请单击 + 符号展开选项列表。通过单击选项更改默认值。使用 确定 应用您的更改。

17.2 使用 YaST 配置网络打印 编辑源文件

网络打印机不会自动检测到。必须使用 YaST 打印机模块手动配置它们。根据您的网络设置,您可以打印到打印服务器 (CUPS、LPD、SMB 或 IPX),或直接打印到网络打印机(最好通过 TCP)。通过从 YaST 打印机模块的左侧窗格中选择 通过网络打印 访问网络打印配置视图。

17.2.1 使用 CUPS 编辑源文件

在 Linux 环境中,CUPS 用于通过网络打印。最简单的设置是仅通过一个 CUPS 服务器打印,所有客户端都可以直接访问该服务器。通过多个 CUPS 服务器打印需要运行本地 CUPS 守护进程,该守护进程与远程 CUPS 服务器通信。

Important
重要:浏览网络打印队列

CUPS 服务器通过传统的 CUPS 浏览协议或 Bonjour/DNS-SD 通过网络广播其打印队列。客户端需要浏览这些列表,以便用户可以选择特定的打印机来发送其打印作业。要浏览网络打印队列,必须在所有通过 CUPS 服务器打印的客户端上运行软件包 cups-filters-cups-browsed 提供的服务 cups-browsed。使用 YaST 配置网络打印时,会自动启动 cups-browsed

如果在启动 cups-browsed 后浏览不起作用,CUPS 服务器可能通过 Bonjour/DNS-SD 广播网络打印队列。在这种情况下,您需要额外安装软件包 avahi,并使用 sudo systemctl start avahi-daemon 在所有客户端上启动关联的服务。

步骤 17.4: 通过单个 CUPS 服务器打印
  1. 使用 硬件 › 打印机 启动 YaST 打印机模块。

  2. 从左侧窗格中,选择 通过网络打印

  3. 选中 直接通过单个 CUPS 服务器完成所有打印,并指定服务器的名称或 IP 地址。

  4. 单击 测试服务器,以确保您选择了正确的名称或 IP 地址。

  5. 单击 确定,返回到 打印机配置 屏幕。现在将列出通过 CUPS 服务器可用的所有打印机。

步骤 17.5: 通过多个 CUPS 服务器打印
  1. 使用 硬件 › 打印机 启动 YaST 打印机模块。

  2. 从左侧窗格中,选择 通过网络打印

  3. 选中 接受来自 CUPS 服务器的打印机广播

  4. 常规设置 下,指定要使用的服务器。您可以接受来自可用所有网络的连接,或来自特定主机的连接。如果选择后者,则需要指定主机名或 IP 地址。

  5. 单击 确定,然后在提示时单击 以启动本地 CUPS 服务器。服务器启动后,YaST 将返回到 打印机配置 屏幕。单击 刷新列表 以查看迄今为止检测到的打印机。

17.2.2 使用 CUPS 以外的打印服务器 编辑源

如果您的网络通过 CUPS 以外的打印服务器提供打印服务,请使用 硬件 › 打印机 启动 YaST 打印机模块,并从左侧窗格中选择 通过网络打印。启动 连接向导,并选择合适的 连接类型。请咨询您的网络管理员,了解有关在您的环境中配置网络打印机的详细信息。

17.3 通过网络共享打印机 编辑源

由本地 CUPS 守护进程管理的打印机可以通过网络共享,从而有效地将您的机器变成 CUPS 服务器。您通过在 CUPS 中启用所谓的 浏览模式 来共享打印机。如果启用了浏览,则本地打印队列将在网络上提供给侦听的远程 CUPS 守护进程。也可以设置一个专用的 CUPS 服务器,该服务器管理所有打印队列,并且可以直接由远程客户端访问。在这种情况下,无需启用浏览。

步骤 17.6: 共享打印机
  1. 使用 硬件 › 打印机 启动 YaST 打印机模块。

  2. 从左侧窗格中,选择 共享打印机

  3. 选择 允许远程访问。还选中 对于本地网络内的计算机,并通过同时选中 默认在本地网络内发布打印机 来启用浏览模式。

  4. 单击 确定 以重新启动 CUPS 服务器并返回到 打印机配置 屏幕。

  5. 有关 CUPS 和防火墙设置,请参阅 https://en.opensuse.net.cn/SDB:CUPS_and_SANE_Firewall_settings

18 设置扫描仪 编辑源

您可以使用 YaST 配置 USB 或 SCSI 扫描仪。软件包 sane-backends 包含使用扫描仪所需的硬件驱动程序和其他基本组件。如果您拥有 HP 多功能一体机,请参阅 第 18.1 节,“配置 HP 多功能一体机”,有关配置网络扫描仪的说明,请参阅 第 18.3 节,“通过网络扫描”

步骤 18.1: 配置 USB 或 SCSI 扫描仪
  1. 将 USB 或 SCSI 扫描仪连接到您的计算机并打开它。

  2. 启动 YaST 并选择 硬件 › 扫描仪。YaST 构建扫描仪数据库并尝试自动检测您的扫描仪型号。

    如果未正确检测到 USB 或 SCSI 扫描仪,请尝试 其他 › 重新启动检测

  3. 要激活扫描仪,请从检测到的扫描仪列表中选择它,然后单击 编辑

  4. 从列表中选择您的型号,然后单击 下一步完成

  5. 使用 其他 › 测试 确保您选择了正确的驱动程序。

  6. 使用 确定 退出配置屏幕。

18.1 配置 HP 多功能一体机 编辑源

即使通过网络提供,也可以使用 YaST 配置 HP 多功能一体机。如果您拥有 USB HP 多功能一体机,请按照 步骤 18.1,“配置 USB 或 SCSI 扫描仪” 中所述的方式开始配置。如果正确检测到并且 测试 成功,则已准备好使用。

如果未正确检测到您的 USB 设备,或者您的 HP 多功能一体机连接到网络,请运行 HP 设备管理器

  1. 启动 YaST 并选择 硬件 › 扫描仪。YaST 加载扫描仪数据库。

  2. 使用 其他 › 运行 hp-setup 启动 HP 设备管理器,并按照屏幕上的说明进行操作。完成 HP 设备管理器后,YaST 自动重新启动自动检测。

  3. 通过选择 其他 › 测试 进行测试。

  4. 使用 确定 退出配置屏幕。

18.2 通过网络共享扫描仪 编辑源

openSUSE Leap 允许通过网络共享扫描仪。为此,请按如下方式配置您的扫描仪

  1. 按照 第 18 章,设置扫描仪 中所述的方式配置扫描仪。

  2. 选择 其他 › 通过网络扫描

  3. 服务器设置 › 允许使用 saned 的客户端 下,输入允许使用扫描仪的客户端的主机名(用逗号分隔),并使用 确定 退出配置对话框。

18.3 通过网络扫描 编辑源

要使用通过网络共享的扫描仪,请按如下操作

  1. 启动 YaST 并选择 硬件 › 扫描仪

  2. 通过 其他 › 通过网络扫描 打开网络扫描仪配置菜单。

  3. 客户端设置 › 用于 net Metadriver 的服务器 下,输入连接扫描仪的机器的主机名

  4. 使用 确定 退出。现在,网络扫描仪已列在扫描仪配置窗口中,可以随时使用。

19 持久内存 编辑源

摘要

本章包含有关使用 openSUSE Leap 与非易失性主内存(也称为 持久内存),包括一个或多个 NVDIMM 的其他信息。

19.1 简介 编辑源

持久内存是一种新型计算机存储,结合了接近动态 RAM (DRAM) 的速度,以及 DRAM 的字节级寻址能力,以及固态驱动器 (SSD) 的持久性。

SUSE 目前支持在具有 AMD64/Intel 64 和 POWER 架构的机器上使用 openSUSE Leap 的持久内存。

与传统的 RAM 类似,持久内存直接安装到主板内存插槽中。因此,它以与 RAM 相同的物理形式因子提供——作为 DIMM。这些被称为 NVDIMM:非易失性双列内存模块。

然而,与 RAM 不同,持久内存也与基于闪存的 SSD 类似。两者都基于固态存储电路的形式,但尽管如此,两者都提供非易失性存储:当系统关闭或重新启动时,其内容会保留。对于这两种介质,写入数据比读取数据慢,并且两者都支持有限数量的重写周期。最后,也像 SSD 一样,如果这更适合特定应用程序,则可以对持久内存进行扇区级访问。

不同的型号使用不同的电子存储介质形式,例如 Intel 3D XPoint,或 NAND 闪存和 DRAM 的组合。新的非易失性 RAM 也在开发中。这意味着不同供应商和型号的 NVDIMM 提供不同的性能和耐用性特征。

由于所涉及的存储技术仍处于早期开发阶段,不同供应商的硬件可能会施加不同的限制。因此,以下陈述是概括。

持久内存比 DRAM 慢 10 倍,但比闪存快 1000 倍。它可以按字节级进行重写,而不是闪存的整个扇区擦除和重写过程。最后,虽然重写周期有限,但大多数形式的持久内存可以处理数百万次的重写,而闪存只能处理数千次的重写。

这有两个重要后果

  • 目前的技术无法仅使用持久内存运行系统,从而实现非易失性主内存。您必须使用传统 RAM 和 NVDIMM 的混合体。操作系统和应用程序将在传统 RAM 中执行,NVDIMM 提供快速的辅助存储。

  • 不同供应商的持久内存的性能特征意味着程序员可能需要了解特定服务器中 NVDIMM 的硬件规格,包括有多少 NVDIMM 以及它们安装在哪些内存插槽中。这将影响虚拟机管理程序的使用、软件在不同主机之间的迁移等等。

这个新的存储子系统定义在 ACPI 标准的第 6 版中。但是,libnvdimm 支持预标准 NVDIMM,并且可以以相同的方式使用它们。

Tip
提示:Intel Optane DC 持久内存

Intel Optane DIMM 内存可以在特定模式下使用

  • 应用程序直接模式 中,Intel Optane 内存用作快速持久存储,作为 SSD 和 NVMe 设备的替代品。此模式下的数据在系统关闭时会保留。

  • 内存模式 下,英特尔 Optane 内存作为 DRAM 的一种经济高效、大容量替代方案。在这种模式下,单独的 DRAM DIMM 作为最常访问数据的缓存,而 Optane DIMM 内存提供大容量内存。但是,与仅使用 DRAM 的系统相比,此模式在随机访问工作负载下速度较慢。如果您运行没有利用此模式的 Optane 特定增强功能的应用程序,则内存性能可能会下降。在此模式下,系统关机时数据会丢失。

  • 混合模式 下,英特尔 Optane 内存被分区,因此它可以同时以两种模式运行。

19.2 术语 编辑源文件

区域

一个 区域 是一个持久内存块,可以划分为一个或多个 命名空间。在首先将其分配到命名空间之前,无法访问区域的持久内存。

命名空间

一个单独的连续寻址的非易失性存储范围,可与 NVM Express SSD 命名空间或 SCSI 逻辑单元 (LUN) 进行比较。命名空间出现在服务器的 /dev 目录中,作为单独的块设备。根据所需的访问方法,命名空间可以合并来自多个 NVDIMM 的存储以形成更大的卷,或者允许将其划分为更小的卷。

模式

每个命名空间还具有一个 模式,定义了为该命名空间启用的 NVDIMM 功能。同一父区域的同级命名空间始终具有相同的类型,但可以配置为具有不同的模式。命名空间模式包括

devdax

设备-DAX 模式。创建一个单字符设备文件 ( /dev/daxX.Y )。不需要创建文件系统。

fsdax

文件系统-DAX 模式。如果没有指定其他模式,则为默认模式。创建一个块设备 (/dev/pmemX [.Y]),该设备支持 ext4XFS 的 DAX。

sector

用于不校验元数据的传统文件系统。适用于小型启动卷。与其他操作系统兼容。

raw

一个没有标签或元数据的内存磁盘。不支持 DAX。与其他操作系统兼容。

Note
注意

raw 模式不受 SUSE 支持。无法在 raw 命名空间上挂载文件系统。

类型

每个命名空间和区域都有一个 类型,定义了与该命名空间或区域关联的持久内存的访问方式。命名空间始终与其父区域具有相同的类型。有两种不同的类型:持久内存,可以以两种不同的方式配置,以及已弃用的块模式。

持久内存 (PMEM)

PMEM 存储提供类似 RAM 的字节级访问。使用 PMEM,单个命名空间可以包含多个交错的 NVDIMM,从而使它们全部用作单个设备。

有两种配置 PMEM 命名空间的方法。

具有 DAX 的 PMEM

配置为直接访问 (DAX) 的 PMEM 命名空间意味着访问内存会绕过内核页面缓存并直接到达介质。软件可以直接读取或写入命名空间的每个字节。

具有块转换表 (BTT) 的 PMEM

配置为以 BTT 模式运行的 PMEM 命名空间以扇区为单位进行访问,就像传统的磁盘驱动器一样,而不是更像 RAM 的字节寻址模型。转换表机制将访问批量处理为扇区大小的单位。

BTT 的优势是数据保护。存储子系统确保将每个扇区完全写入底层介质。如果无法完全写入扇区(即,如果写入操作由于某种原因而失败),则整个扇区将回滚到其先前状态。因此,不能部分写入给定的扇区。

此外,对 BTT 命名空间的访问由内核缓存。

缺点是 BTT 命名空间无法使用 DAX。

块模式 (BLK)

块模式存储将每个 NVDIMM 寻址为单独的设备。其使用已被弃用,不再受支持。

除了 devdax 命名空间之外,所有其他类型都必须使用文件系统进行格式化,就像使用传统驱动器一样。openSUSE Leap 支持此的 ext2ext4XFS 文件系统。

直接访问 (DAX)

DAX 允许将持久内存直接映射到进程的地址空间,例如,使用 mmap 系统调用。

DIMM 物理地址 (DPA)

一个内存地址,作为单个 DIMM 内存中的偏移量;即,从该 DIMM 上可寻址的最低字节开始为零。

标签

存储在 NVDIMM 上的元数据,例如命名空间定义。可以使用 DSM 访问这些元数据。

设备特定方法 (DSM)

ACPI 方法,用于访问 NVDIMM 上的固件。

19.3 用例 编辑源文件

19.3.1 具有 DAX 的 PMEM 编辑源文件

这种内存访问形式 不是事务性的。如果发生电源故障或其他系统故障,数据可能无法写入存储。仅当应用程序能够处理部分写入数据的情况时,PMEM 存储才适用。

19.3.1.1 受益于大量字节寻址存储的应用程序 编辑源文件

如果服务器将托管可以直接使用大量快速存储的应用程序,则程序员可以使用 mmap 系统调用将持久内存块直接放置在应用程序的地址空间中,而无需使用任何额外的系统 RAM。

19.3.1.2 避免使用内核页面缓存 编辑源文件

避免使用内核页面缓存以节省 RAM 的使用,并将其交给您的应用程序。例如,可以将非易失性内存专门用于保存虚拟机 (VM) 镜像。由于这些镜像不会被缓存,这将减少主机上的缓存使用量,从而允许每个主机使用更多的 VM。

19.3.2 具有 BTT 的 PMEM 编辑源文件

当您希望将 NVDIMM 上的持久内存用作快速存储的磁盘型池时,这将很有用。例如,将文件系统日志放在具有 BTT 的 PMEM 上可以提高在电源故障或其他突然中断后的文件系统恢复的可靠性(请参阅 第 19.5.3 节,“创建具有 BTT 的 PMEM 命名空间”)。

对于应用程序,这些设备看起来像快速的 SSD,并且可以像任何其他存储设备一样使用。例如,可以在持久内存之上分层 LVM,并且它将像往常一样工作。

BTT 的优势是保证了扇区写入原子性,因此即使依赖数据完整性的复杂应用程序也会继续工作。媒体错误报告通过标准错误报告通道进行。

19.4 管理持久内存的工具 编辑源文件

要管理持久内存,需要安装 ndctl 包。这还会安装 libndctl 包,该包提供一组用户空间库来配置 NVDIMM。

这些工具通过 libnvdimm 库工作,该库支持三种类型的 NVDIMM

  • PMEM

  • BLK

  • 同时使用 PMEM 和 BLK

ndctl 实用程序有一组有用的 man 页面,可以通过以下命令访问

> ndctl help subcommand

要查看可用的子命令列表,请使用

> ndctl --list-cmds

可用的子命令包括

version

显示 NVDIMM 支持工具的当前版本。

enable-namespace

使指定的命名空间可供使用。

disable-namespace

防止使用指定的命名空间。

create-namespace

从指定的存储设备创建新的命名空间。

destroy-namespace

删除指定的命名空间。

enable-region

使指定的区域可供使用。

disable-region

防止使用指定的区域。

zero-labels

擦除设备上的元数据。

read-labels

检索指定设备的元数据。

list

显示可用设备。

help

显示有关使用该工具的信息。

19.5 设置持久内存 编辑源文件

19.5.1 查看可用的 NVDIMM 存储 编辑源文件

可以使用 ndctl list 命令列出系统中的所有可用 NVDIMM。

在以下示例中,系统具有三个 NVDIMM,它们位于单个三通道交错集中。

# ndctl list --dimms

[
 {
  "dev":"nmem2",
  "id":"8089-00-0000-12325476"
 },
 {
  "dev":"nmem1",
  "id":"8089-00-0000-11325476"
 },
 {
  "dev":"nmem0",
  "id":"8089-00-0000-10325476"
 }
]

使用不同的参数,ndctl list 还会列出可用的区域。

Note
注意

区域可能不会按数字顺序出现。

请注意,虽然只有三个 NVDIMM,但它们显示为四个区域。

# ndctl list --regions

[
 {
  "dev":"region1",
  "size":68182605824,
  "available_size":68182605824,
  "type":"blk"
 },
 {
  "dev":"region3",
  "size":202937204736,
  "available_size":202937204736,
  "type":"pmem",
  "iset_id":5903239628671731251
  },
  {
   "dev":"region0",
   "size":68182605824,
   "available_size":68182605824,
   "type":"blk"
  },
  {
   "dev":"region2",
   "size":68182605824,
   "available_size":68182605824,
   "type":"blk"
  }
]

空间以两种不同的形式可用:要么是三个单独的 64 区域的 BLK 类型,要么是一个组合的 189 GB 区域的 PMEM 类型,该类型将三个交错 NVDIMM 上的所有空间作为一个卷呈现。

请注意,显示的 available_size 值与 size 值相同。这意味着尚未分配任何空间。

19.5.2 将存储配置为单个 PMEM 命名空间,并使用 DAX 编辑源文件

对于第一个示例,我们将三个 NVDIMM 配置为具有直接访问 (DAX) 的单个 PMEM 命名空间。

第一步是创建一个新的命名空间。

# ndctl create-namespace --type=pmem --mode=fsdax --map=memory
{
 "dev":"namespace3.0",
 "mode":"memory",
 "size":199764213760,
 "uuid":"dc8ebb84-c564-4248-9e8d-e18543c39b69",
 "blockdev":"pmem3"
}

这将创建一个块设备 /dev/pmem3,该设备支持 DAX。设备名称中的 3 继承自父区域编号,在本例中为 region3

--map=memory 选项预留了 NVDIMM 上 PMEM 存储空间的一部分,以便可以用于分配内部内核数据结构,称为 struct pages。这允许新的 PMEM 命名空间与 O_DIRECT I/ORDMA 等功能一起使用。

为内核数据结构预留一些持久内存是为什么生成的 PMEM 命名空间比父 PMEM 区域的容量更小。

接下来,我们验证新的块设备是否可供操作系统使用

# fdisk -l /dev/pmem3
Disk /dev/pmem3: 186 GiB, 199764213760 bytes, 390164480 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

在使用之前,像任何其他驱动器一样,必须对其进行格式化。在此示例中,我们使用 XFS 对其进行格式化

# mkfs.xfs /dev/pmem3
meta-data=/dev/pmem3      isize=256    agcount=4, agsize=12192640 blks
         =                sectsz=4096  attr=2, projid32bit=1
         =                crc=0        finobt=0, sparse=0
data     =                bsize=4096   blocks=48770560, imaxpct=25
         =                sunit=0      swidth=0 blks
naming   =version 2       bsize=4096   ascii-ci=0 ftype=1
log      =internal log    bsize=4096   blocks=23813, version=2
         =                sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none            extsz=4096   blocks=0, rtextents=0

接下来,我们可以将新的驱动器挂载到目录

# mount -o dax /dev/pmem3 /mnt/pmem3

然后我们可以验证我们现在有一个支持 DAX 的设备

# mount | grep dax
/dev/pmem3 on /mnt/pmem3 type xfs (rw,relatime,attr2,dax,inode64,noquota)

结果是,我们现在有一个使用 XFS 文件系统格式化并使用 DAX 挂载的 PMEM 命名空间。

该文件系统中对 mmap() 的任何调用都将返回直接映射到 NVDIMM 上持久内存的虚拟地址,从而绕过页面缓存。

对该文件系统中 fsyncmsync 的任何调用仍然会确保修改后的数据已完全写入 NVDIMM。这些调用刷新与用户空间通过 mmap 映射修改的任何页面关联的处理器缓存行。

19.5.2.1 删除命名空间 编辑源文件

在创建使用相同存储的任何其他类型的卷之前,我们必须先卸载然后删除此 PMEM 卷。

首先,卸载它

# umount /mnt/pmem3

然后禁用命名空间

# ndctl disable-namespace namespace3.0
disabled 1 namespace

然后删除它

# ndctl destroy-namespace namespace3.0
destroyed 1 namespace

19.5.3 创建具有 BTT 的 PMEM 命名空间 编辑源文件

BTT 提供扇区写入原子性,这使其成为需要数据保护时的不错选择,例如 Ext4 和 XFS 日志。如果发生电源故障,日志将受到保护并应可恢复。以下示例演示如何创建具有 BTT 的 PMEM 命名空间,并将其置于文件系统日志中。

# ndctl create-namespace --type=pmem --mode=sector
{
 "dev":"namespace3.0",
 "mode":"sector",
 "uuid":"51ab652d-7f20-44ea-b51d-5670454f8b9b",
 "sector_size":4096,
 "blockdev":"pmem3s"
}

接下来,验证新的设备是否存在

# fdisk -l /dev/pmem3s
Disk /dev/pmem3s: 188.8 GiB, 202738135040 bytes, 49496615 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

与我们先前配置的具有 DAX 的 PMEM 命名空间一样,此具有 BTT 的 PMEM 命名空间消耗了 NVDIMM 上的所有可用存储。

Note
注意

设备名称中的尾随 s(例如 /dev/pmem3s)表示 sector(扇区),可用于轻松区分配置为使用 BTT 的命名空间。

可以像前面的示例一样格式化和挂载卷。

此处显示的 PMEM 命名空间不能使用 DAX。相反,它使用 BTT 来提供 扇区写入原子性。在通过 PMEM 块驱动程序写入每个扇区时,BTT 将分配一个新的扇区来接收新数据。BTT 在新数据完全写入后以原子方式更新其内部映射结构,因此新写入的数据将可供应用程序使用。如果在该过程的任何点发生断电,写入将被丢失,并且应用程序将访问其旧数据,数据仍然完整。这可以防止被称为 撕裂扇区 的情况。

这个启用了 BTT 的 PMEM 命名空间可以像任何其他标准块设备一样格式化并与文件系统一起使用。它不能与 DAX 一起使用。但是,此块设备上文件的 mmap 映射将使用页面缓存。

19.5.4 将文件系统日志放置在 PMEM/BTT 上 编辑源文件

当您将文件系统日志放置在单独的设备上时,它必须使用与文件系统相同的块大小。最常见的是 4096,您可以使用以下命令找到块大小:

# blockdev --getbsz /dev/sda3

以下示例在单独的 NVDIMM 设备上创建新的 Ext4 日志,在 SATA 设备上创建文件系统,然后将新的文件系统附加到日志。

# mke2fs -b 4096 -O journal_dev /dev/pmem3s
# mkfs.ext4 -J device=/dev/pmem3s /dev/sda3

以下示例在 SATA 驱动器上创建新的 XFS 文件系统,并在单独的 NVDIMM 设备上创建日志。

# mkfs.xfs -l logdev=/dev/pmem3s  /dev/sda3

有关详细信息,请参阅 man 8 mkfs.ext4man 8 mkfs.ext4

19.6 更多信息 编辑源文件

有关此主题的更多信息可以在以下列表中找到:

  • 持久内存 Wiki

    包含有关配置 NVDIMM 系统、测试信息以及与启用 NVDIMM 相关的规范的说明。随着 Linux 中 NVDIMM 支持的发展,该站点也在不断发展。

  • 持久内存编程

    有关在 Linux 和其他操作系统下配置、使用和编程具有非易失性内存的系统的信息。涵盖了 NVM 库 (NVML),旨在为用户空间中的持久内存编程提供有用的 API。

  • LIBNVDIMM:非易失设备

    面向内核开发人员,这是当前 Linux 内核树中的 Documentation 目录的一部分。它讨论了参与 NVDIMM 启用的不同内核模块,阐述了内核实现的详细信息,并讨论了内核的 sysfs 接口,该接口由 ndctl 工具使用。

  • GitHub: pmem/ndctl

    用于管理 Linux 内核中的 libnvdimm 子系统的实用程序库。还包含用户空间库以及单元测试和文档。

第 VI 部分 帮助和故障排除 编辑源文件

20 帮助和文档

openSUSE® Leap 提供了多种信息和文档来源,可以在线获取或集成到您已安装的系统中。

21 常见问题及其解决方案

本章描述了一系列潜在问题及其解决方案。即使您的状况未精确列出,也可能有一个足够相似的情况,可以为解决您的问题提供提示。

20 帮助和文档 编辑源文件

openSUSE® Leap 提供了多种信息和文档来源,可以在线获取或集成到您已安装的系统中。

产品文档

可在此处找到 openSUSE Leap 的大量文档:https://doc.opensuse.net.cn。涵盖的主题范围从部署、升级和系统管理到虚拟化、系统调整和安全性等。

位于 /usr/share/doc 的文档

此目录包含系统的发行说明(在 release-notes 子目录中)。它还包含已安装软件包的信息(在 packages 子目录中)。有关更多详细信息,请参阅 第 20.1 节,“文档目录”

Shell 命令的手册页和信息页

在使用 shell 时,您不需要记住命令的选项。传统上,shell 通过 man 页面和 info 页面提供集成的帮助。有关更多信息,请参阅 第 20.2 节,“Man 页面”第 20.3 节,“Info 页面”

桌面帮助中心

GNOME 桌面帮助中心(帮助)提供对 GNOME 桌面文档的集中访问。

某些应用程序的单独帮助包

在通过 YaST 安装新软件时,通常会自动安装软件文档并显示在您桌面的帮助中心中。但是,某些应用程序(例如 GIMP)可能有不同的在线帮助包,可以使用 YaST 单独安装,并且不会集成到帮助中心中。

20.1 文档目录 编辑源文件

在您的已安装 Linux 系统上查找文档的传统目录是 /usr/share/doc。该目录包含发行说明和有关已安装软件包的信息,以及手册等。

Note
注意:内容取决于已安装的软件包

在 Linux 世界中,手册和其他类型的文档以软件包的形式提供,就像软件一样。您在 /usr/share/doc 中找到的信息的数量和类型也取决于(文档)软件包的安装情况。如果您找不到此处提及的子目录,请检查您的系统上是否安装了相应的软件包,并在需要时使用 YaST 添加它们。

20.1.1 发行说明 编辑源文件

我们提供 openSUSE Leap 发行说明的 HTML、PDF、RTF 和文本版本。它们可在您的已安装系统中的 /usr/share/doc/release-notes/ 下找到,或在您的产品特定网页 https://doc.opensuse.net.cn/release-notes/ 上找到。

20.1.2 软件包文档 编辑源文件

packages 下,找到包含在已安装的软件软件包中包含的文档。对于每个软件包,都会创建一个子目录 /usr/share/doc/packages/PACKAGENAME。它通常包含软件包的 README 文件,有时还包含示例、配置文件或额外的脚本。以下列表介绍了在 /usr/share/doc/packages 下找到的典型文件。并非所有条目都是必需的,许多软件包仅包含其中的几个。

AUTHORS

主要开发人员列表。

BUGS

已知错误或故障。还可能包含指向 Bugzilla 网页的链接,您可以在其中搜索所有错误。

CHANGES , ChangeLog

从版本到版本的更改摘要。它对开发人员来说很有趣,因为它很详细。

COPYING , LICENSE

许可信息。

FAQ

从邮件列表或新闻组收集的问题和答案。

INSTALL

如何在您的系统上安装此软件包。由于您在阅读此文件时软件包已经安装,因此可以安全地忽略此文件的内容。

README, README.*

有关软件的一般信息。例如,其用途和如何使用它。

TODO

未来计划的功能。

MANIFEST

带有简短摘要的文件列表。

NEWS

描述此版本中的新内容。

20.2 Man 页面 编辑源文件

Man 页面是任何 Linux 系统的基本组成部分。它们解释了命令的用法以及所有可用的选项和参数。可以使用 man 后跟命令的名称来访问 man 页面,例如 man ls

Man 页面直接在 shell 中显示。要导航它们,请使用 Page ↑Page ↓ 上下移动。使用 HomeEnd 在文档的开头和结尾之间移动。按 Q 结束查看模式。详细了解 man 命令本身,请使用 man man。Man 页面分为几类,如 表 20.1,“Man 页面—类别和描述”(摘自 man 页面本身)所示。

表 20.1: Man 页面—类别和描述

编号

描述

1

可执行程序或 shell 命令

2

系统调用(内核提供的函数)

3

库调用(程序库中的函数)

4

特殊文件(通常在 /dev 中找到)

5

文件格式和约定(/etc/fstab

6

游戏

7

杂项(包括宏包和约定),例如 man(7)、groff(7)

8

系统管理命令(通常仅供 root 使用)

9

内核例程(非标准)

每个 man 页面由几个标记为 NAMESYNOPSISDESCRIPTIONSEE ALSOLICENSINGAUTHOR 的部分组成。根据命令的类型,可能还有其他部分可用。

20.3 Info 页面 编辑源文件

Info 页面是系统上的另一个重要信息来源。通常,它们比 man 页面更详细。它们包含的不仅仅是命令行选项,有时还包含完整的教程或参考文档。要查看某个命令的 info 页面,请输入 info 后跟命令的名称,例如 info ls。您可以使用查看器直接在 shell 中浏览 info 页面并显示不同的部分,称为 节点。使用 Space 向前移动,使用 <— 向后移动。在节点内,您还可以使用 Page ↑Page ↓ 浏览,但只有 Space<— 才能将您带到前一个或后一个节点。按 Q 结束查看模式。并非每个命令都有 info 页面,反之亦然。

20.4 在线资源 编辑源文件

要概述 openSUSE Leap 可用的所有文档,请查看产品特定的文档网页 https://doc.opensuse.net.cn/

如果您正在搜索其他与产品相关的信息,还可以参考以下网站

用户社区

openSUSE 论坛

GNOME 文档

GNOME 文档(GNOME 用户、管理员和开发人员)可在 https://help.gnome.org/ 上找到。

Linux 文档项目

Linux 文档项目 (TLDP) 由一个志愿者团队运行,他们编写与 Linux 相关的文档(参见 https://tldp.cn/)。它是一个全面的 Linux 文档资源。文档集包含初学者的教程,但主要面向有经验的用户和专业系统管理员。TLDP 以免费许可发布 HOWTO、FAQ 和指南(手册)。TLDP 的部分文档也可用在 openSUSE Leap 上。

21 常见问题及其解决方案 编辑源文件

本章描述了一系列潜在问题及其解决方案。即使您的状况未精确列出,也可能有一个足够相似的情况,可以为解决您的问题提供提示。

21.1 查找和收集信息 编辑源文件

Linux 以详细的方式报告信息。当您遇到系统问题时,有几个地方可以查找。其中大多数是 Linux 系统的标准,并且有几个与 openSUSE Leap 系统相关。大多数日志文件可以使用 YaST(杂项 › 启动日志)查看。

YaST 提供了收集支持团队所需的所有系统信息的功能。使用 其他 › 支持 并选择问题类别。收集所有信息后,将其附加到您的支持请求。

以下是通常检查的日志文件列表,以及它们的典型用途的描述。包含 ~ 的路径引用当前用户的家目录。

表 21.1: 日志文件

日志文件

描述

~/.xsession-errors

当前正在运行的桌面应用程序的消息。

/var/log/apparmor/

AppArmor 的日志文件,请参阅 “安全和加固指南” 以获取详细信息。

/var/log/audit/audit.log

Audit 的日志文件,用于跟踪对系统文件、目录或资源的任何访问,并跟踪系统调用。请参阅 “安全和加固指南” 以获取详细信息。

/var/log/mail.*

邮件系统的消息。

/var/log/NetworkManager

NetworkManager 的日志文件,用于收集网络连接问题。

/var/log/samba/

包含 Samba 服务器和客户端日志消息的目录。

/var/log/warn

内核和系统日志守护程序的所有消息,级别为“警告”或更高。

/var/log/wtmp

包含当前机器会话的用户登录记录的二进制文件。使用 last 查看它。

/var/log/Xorg.*.log

X Window System 的启动和运行时日志文件。对于调试失败的 X 启动非常有用。

/var/log/YaST2/

包含 YaST 的操作及其结果的目录。

/var/log/zypper.log

Zypper 的日志文件。

除了日志文件之外,您的机器还为您提供有关正在运行的系统的信息。请参阅 表 21.2:使用 /proc 文件系统的系统信息

表 21.2: 使用 /proc 文件系统的系统信息

文件

描述

/proc/cpuinfo

包含处理器信息,包括其类型、制造商、型号和性能。

/proc/dma

显示当前正在使用的 DMA 通道。

/proc/interrupts

显示哪些中断正在使用,以及使用了多少个中断。

/proc/iomem

显示 I/O(输入/输出)内存的状态。

/proc/ioports

显示当前正在使用的 I/O 端口。

/proc/meminfo

显示内存状态。

/proc/modules

显示各个模块。

/proc/mounts

显示当前挂载的设备。

/proc/partitions

显示所有硬盘的分区情况。

/proc/version

显示当前 Linux 版本。

除了 /proc 文件系统之外,Linux 内核还使用 sysfs 模块导出信息,这是一个内存文件系统。该模块表示内核对象、其属性和关系。有关 sysfs 的更多信息,请参阅 “参考” 中的 udev 上下文,第 16 章“使用 udev 进行动态内核设备管理”。表 21.3 包含 /sys 下最常见目录的概述。

表 21.3: 使用 /sys 文件系统的系统信息

文件

描述

/sys/block

包含系统中发现的每个块设备的子目录。通常,这些主要是磁盘类型设备。

/sys/bus

包含每个物理总线类型的子目录。

/sys/class

包含分组在一起的设备的功能类型子目录(如图形、网络、打印机等)。

/sys/device

包含全局设备层次结构。

Linux 带有用于系统分析和监视的几个工具。请参阅 “系统分析和调优指南”,第 2 章“系统监视实用程序”,了解在系统诊断中使用的最重要的工具选择。

以下每个场景都以描述问题的标题开头,然后是提供建议解决方案、可用于更详细解决方案的参考以及与其他相关场景的交叉引用的段落或两个段落。

21.2 启动问题 编辑源文件

启动问题是指您的系统无法正确启动(未启动到预期的目标和登录屏幕)的情况。

21.2.1 GRUB 2 引导加载程序无法加载 编辑源文件

如果硬件正常工作,则引导加载程序可能已损坏,Linux 无法在机器上启动。在这种情况下,需要修复引导加载程序。为此,您需要启动 Rescue System,如 第 21.5.2 节,“使用救援系统” 中所述,并遵循 第 21.5.2.4 节,“修改和重新安装引导加载程序” 中的说明。

或者,您可以使用 Rescue System 修复引导加载程序,如下所示。从安装介质启动计算机。在启动屏幕上,选择 更多 › 启动 Linux 系统。选择包含已安装系统的磁盘和内核,并使用默认内核选项。

Select disk
图 21.1: 选择磁盘

当系统启动后,启动 YaST 并切换到 系统 › 引导加载程序。确保启用 将通用引导代码写入 MBR 选项,然后单击 确定。这将通过覆盖它来修复损坏的引导加载程序,或者在它丢失时安装引导加载程序。

机器无法启动的其它原因可能是 BIOS 相关问题

BIOS 设置

检查您的 BIOS 是否引用了您的硬盘。如果硬盘本身无法在当前 BIOS 设置下找到,GRUB 2 可能根本不会启动。

BIOS 启动顺序

检查您的系统启动顺序是否包含硬盘。如果未启用硬盘选项,您的系统可能会正确安装,但在需要访问硬盘时无法启动。

21.2.2 未出现登录或提示符 编辑源文件

此行为通常发生在内核升级失败之后,被称为 内核恐慌,因为系统控制台上的错误类型有时可以在过程的最后阶段看到。如果事实上机器刚刚在软件更新后重新启动,立即目标是使用旧的、经过验证的 Linux 内核和相关文件重新启动它。这可以在 GRUB 2 引导加载程序屏幕的启动过程中完成,如下所示

  1. 使用复位按钮重新启动计算机,或将其关闭并再次打开。

  2. 当 GRUB 2 引导屏幕可见时,选择 高级选项 条目,并从菜单中选择以前的内核。机器将使用先前版本的内核及其相关文件启动。

  3. 完成启动过程后,删除新安装的内核,如果需要,使用 YaST 引导加载程序 模块将默认引导条目设置为旧内核。有关更多信息,请参阅 “参考” 中的第 12 章“引导加载程序 GRUB 2”,第 12.3 节“使用 YaST 配置引导加载程序”。但是,这没有必要,因为自动更新工具通常会在回滚过程中为您修改它。

  4. 重新启动。

如果这不能解决问题,请使用安装介质启动计算机。机器启动后,继续执行 步骤 3

21.2.3 没有图形登录 编辑源文件

如果机器启动,但未启动到图形登录管理器,预计会出现默认 systemd 目标或 X Window System 配置的问题。要检查当前的 systemd 默认目标,请运行命令 sudo systemctl get-default。如果返回值 不是 graphical.target,则运行命令 sudo systemctl isolate graphical.target。如果图形登录屏幕启动,请登录并启动 YaST › 系统 › 服务管理器,并将 默认系统目标 设置为 图形界面。从现在开始,系统应启动到图形登录屏幕。

即使已启动或切换到图形目标,图形登录屏幕仍未启动,您的桌面或 X Window 软件可能配置错误或已损坏。检查 /var/log/Xorg.*.log 中的日志文件,以获取 X 服务器尝试启动时的详细消息。如果桌面在启动期间失败,它可能会将错误消息记录到系统日志中,可以使用命令 journalctl 查询(有关更多信息,请参阅 “参考” 中的第 11 章“journalctl:查询 systemd 日志”)。如果这些错误消息提示 X 服务器中的配置问题,请尝试修复这些问题。如果图形系统仍然无法启动,请考虑重新安装图形桌面。

21.2.4 无法挂载根 Btrfs 分区 编辑源文件

如果 btrfs 根分区已损坏,请尝试以下选项

  • 使用 -o recovery 选项挂载分区。

  • 如果失败,请在您的根分区上运行 btrfs-zero-log

21.2.5 强制检查根分区 编辑源文件

如果根分区已损坏,请在引导提示符中使用参数 forcefsck。这将把选项 -f(强制)传递给 fsck 命令。

21.2.6 禁用交换以启用引导 编辑源文件

当交换设备不可用并且系统无法在引导期间启用它时,引导可能会失败。尝试禁用所有交换设备,方法是在内核命令行中追加以下选项

systemd.device_wants_unit=off systemd.mask=swap.target

您还可以尝试禁用特定的交换设备

systemd.mask=dev-sda1.swap

21.2.7 GRUB 2 在双引导系统重新启动时失败 编辑源文件

如果 GRUB 2 在重新启动时失败,请禁用 BIOS 中的 快速启动 设置。

21.3 登录问题 编辑源文件

登录问题是指您的系统拒绝接受用户名和密码,或接受它们但无法启动图形桌面、产生错误或降至命令行,例如。

21.3.1 有效的用户名和密码组合失败 编辑源文件

这通常发生在系统配置为使用网络身份验证或目录服务,并且无法从其配置的服务器检索结果时。只有本地用户 root 才能登录到这些机器。以下是机器似乎功能正常但无法正确处理登录的常见原因

  • 网络无法工作。有关更多方向,请参阅 第 21.4 节,“网络问题”

  • DNS 当前无法工作(这会阻止 GNOME 正常工作,并且系统无法向安全服务器发出经过验证的请求)。这表明机器响应任何操作需要很长时间。在 第 21.4 节,“网络问题” 中可以找到有关此主题的更多信息。

  • 如果系统配置为使用 Kerberos,则系统本地时间可能已漂移超过与 Kerberos 服务器时间允许的偏差(通常为 300 秒)。如果 NTP(网络时间协议)无法正常工作或本地 NTP 服务器无法正常工作,Kerberos 身份验证将停止工作,因为它依赖于网络上常见的时钟同步。

  • 系统的身份验证配置配置错误。检查涉及的 PAM 配置文件是否存在任何拼写错误或指令顺序错误。有关 PAM 和涉及的配置文件语法的更多背景信息,请参阅 “安全和加固指南”,第 2 章“使用 PAM 进行身份验证”

  • 主目录已加密。有关此主题的更多信息,请参阅 第 21.3.3 节,“登录加密主目录失败”

在不涉及外部网络问题的情况下,解决方案是作为 root 登录并修复配置。如果无法登录到正在运行的系统,请按照 “参考” 中的第 12 章“引导加载程序 GRUB 2”,第 12.5 节“进入救援模式”中概述的方式将其重新启动到救援模式。

21.3.2 无效用户名和密码 编辑源文件

这是用户遇到的最常见的问题,因为导致这种情况的原因有很多。根据您使用本地用户管理和身份验证还是网络身份验证,登录失败的原因不同。

本地用户管理可能因以下原因而失败

  • 用户可能输入了错误的密码。

  • 包含桌面配置文件的主目录已损坏或受写保护。

  • X Window 系统在身份验证特定用户时可能存在问题,尤其是在用户的主目录之前已用于另一个 Linux 发行版的情况下。

要确定本地登录失败的原因,请按以下步骤操作

  1. 在开始调试整个身份验证机制之前,请检查用户是否正确记住了他们的密码。如果用户可能没有正确记住他们的密码,请使用 YaST 用户管理模块更改用户的密码。注意 Caps Lock 键并根据需要解锁它。

  2. root 身份登录,并使用 journalctl -e 检查系统日志,查找登录过程和 PAM 的错误消息。

  3. 尝试从控制台登录(使用 CtrlAltF1)。如果成功,则不能将责任归咎于 PAM,因为可以在此机器上对该用户进行身份验证。尝试定位 X Window 系统或 GNOME 桌面的任何问题。有关更多信息,请参阅 第 21.3.4 节,“GNOME桌面存在问题”

  4. 如果用户的主目录已用于另一个 Linux 发行版,请删除用户主目录中的 Xauthority 文件。使用控制台登录通过 CtrlAltF1 并以该用户身份运行 rm .Xauthority。这应该消除该用户的 X 身份验证问题。再次尝试图形登录。

  5. 如果由于配置文件损坏而无法启动桌面,请按照 第 21.3.4 节,“GNOME桌面存在问题” 中的说明进行操作。

在以下内容中,列出了网络身份验证对于特定用户在特定机器上失败的常见原因

  • 用户可能输入了错误的密码。

  • 用户名存在于机器的本地身份验证文件中,也由网络身份验证系统提供,从而导致冲突。

  • 主目录存在但已损坏或不可用。也许它受到写保护或位于当前无法访问的服务器上。

  • 用户没有权限登录到身份验证系统中的特定主机。

  • 出于某种原因,机器已更改主机名,并且用户没有权限登录到该主机。

  • 机器无法访问包含该用户信息的身份验证服务器或目录服务器。

  • X Window 系统在身份验证特定用户时可能存在问题,尤其是在用户的主目录之前已用于另一个 Linux 发行版的情况下。

要确定使用网络身份验证的登录失败的原因,请按以下步骤操作

  1. 在开始调试整个身份验证机制之前,请检查用户是否正确记住了他们的密码。

  2. 确定机器依赖于哪个目录服务器进行身份验证,并确保其已启动并正在与其他机器正确通信。

  3. 确定用户的用户名和密码在其他机器上是否有效,以确保其身份验证数据存在并已正确分发。

  4. 查看另一个用户是否可以登录到出现故障的机器。如果另一个用户可以毫不费力地登录,或者 root 可以登录,请登录并使用 journalctl -e > 文件检查系统日志。找到与登录尝试相对应的时间戳,并确定 PAM 是否生成了任何错误消息。

  5. 尝试从控制台登录(使用 CtrlAltF1)。如果成功,则问题不在于 PAM 或托管用户主目录的目录服务器,因为可以在此机器上对该用户进行身份验证。尝试定位 X Window 系统或 GNOME 桌面的任何问题。有关更多信息,请参阅 第 21.3.4 节,“GNOME桌面存在问题”

  6. 如果用户的主目录已用于另一个 Linux 发行版,请删除用户主目录中的 Xauthority 文件。使用控制台登录通过 CtrlAltF1 并以该用户身份运行 rm .Xauthority。这应该消除该用户的 X 身份验证问题。再次尝试图形登录。

  7. 如果由于配置文件损坏而无法启动桌面,请按照 第 21.3.4 节,“GNOME桌面存在问题” 中的说明进行操作。

21.3.3 登录到加密主分区失败 编辑源文件

建议对笔记本电脑使用加密主分区。如果您无法登录到笔记本电脑,原因可能是您的分区无法解锁。

在启动时,您需要输入密码才能解锁加密分区。如果您没有输入它,启动过程将继续,使分区保持锁定状态。

要解锁加密分区,请按以下步骤操作

  1. 使用 CtrlAltF1 切换到文本控制台。

  2. 成为 root

  3. 使用以下命令再次启动解锁过程

    # systemctl restart home.mount
  4. 输入您的密码以解锁加密分区。

  5. 退出文本控制台,并使用 AltF7 切换回登录屏幕。

  6. 像往常一样登录。

21.3.4 GNOME桌面存在问题 编辑源文件

如果您遇到 GNOME 桌面问题,有几种方法可以对出现故障的图形桌面环境进行故障排除。下面描述的推荐过程提供了修复损坏的 GNOME 桌面的最安全选项。

Procedure 21.1: 故障排除 GNOME
  1. 启动 YaST 并切换到 安全与用户

  2. 打开 用户和组管理 对话框,然后单击 添加

  3. 填写必填字段,然后单击 确定 以创建新用户。

  4. 注销并以新用户身份登录。这将为您提供一个全新的 GNOME 环境。

  5. 将旧用户帐户的 ~/.local/~/.config/ 目录中的各个子目录复制到新用户帐户的相应目录。

    每次复制操作后注销并再次以新用户身份登录,以检查 GNOME 是否仍然可以正常工作。

  6. 重复上一步,直到找到导致 GNOME 崩溃的配置文件。

  7. 以旧用户身份登录,并将违规配置文件移动到其他位置。注销并再次以旧用户身份登录。

  8. 删除之前创建的用户。

21.4 网络问题 编辑源文件

您系统的许多问题可能与网络相关,尽管症状各不相同。例如,系统不允许用户登录的原因可能是网络问题。本节介绍一个简单的检查清单,您可以应用它来识别遇到的任何网络问题的根本原因。

Procedure 21.2: 如何识别网络问题

在检查机器的网络连接时,请按以下步骤操作

  1. 如果您使用以太网连接,请首先检查硬件。确保您的网线已正确插入您的计算机和路由器(或集线器等)。以太网连接器旁边的控制灯通常都处于活动状态。

    如果连接失败,请检查您的网线是否适用于其他机器。如果可以,则您的网卡导致故障。如果您的网络设置中包含集线器或交换机,它们也可能存在故障。

  2. 如果使用无线连接,请检查其他机器是否可以建立无线链路。如果不能,请联系无线网络管理员。

  3. 在检查了基本的网络连接后,尝试找出哪个服务没有响应。收集设置中所需的所有网络服务器的地址信息。查找 YaST 模块中的相应信息或询问您的系统管理员。以下列表给出了设置中涉及的典型网络服务器以及故障的症状。

    DNS(名称服务)

    损坏或功能失调的名称服务会以多种方式影响网络的运行。如果本地机器依赖于任何网络服务器进行身份验证,并且由于名称解析问题而无法找到这些服务器,则用户甚至无法登录。由损坏的名称服务器管理的网络中的机器将无法“看到”彼此并进行通信。

    NTP(时间服务)

    功能失调或损坏的 NTP 服务可能会影响 Kerberos 身份验证和 X 服务器功能。

    NFS(文件服务)

    如果任何应用程序需要存储在 NFS 挂载目录中的数据,如果此服务关闭或配置错误,则它将无法启动或正常运行。在最坏的情况下,如果包含 .gconf 子目录的用户个人桌面配置无法找到,因为 NFS 服务器出现故障,则用户的个人桌面配置将无法启动。

    Samba(文件服务)

    如果任何应用程序需要存储在故障 Samba 服务器上的目录中的数据,则它将无法启动或正常运行。

    NIS(用户管理)

    如果您的 openSUSE Leap 系统依赖于故障 NIS 服务器来提供用户数据,则用户无法登录到此机器。

    LDAP(用户管理)

    如果您的 openSUSE Leap 系统依赖于故障 LDAP 服务器来提供用户数据,则用户无法登录到此机器。

    Kerberos(身份验证)

    身份验证不起作用,登录到任何机器都失败。

    CUPS(网络打印)

    用户无法打印。

  4. 检查网络服务器是否正在运行以及您的网络设置是否允许您建立连接

    Important
    重要:限制

    下面描述的调试过程仅适用于不涉及任何内部路由的简单网络服务器/客户端设置。它假定服务器和客户端都位于同一子网中,无需额外的路由。

    1. 使用 ping IP_ADDRESS/HOSTNAME(替换为服务器的主机名或 IP 地址)检查它们中的每一个是否已启动并响应网络。如果此命令成功,则表示您正在查找的主机已启动并正在运行,并且您的网络的名称服务已配置正确。

      如果 ping 失败并显示 destination host unreachable,则您的系统或所需服务器未正确配置或已关闭。通过从另一台机器运行 ping IP 地址YOUR_HOSTNAME 来检查您的系统是否可访问。如果您可以从另一台机器访问您的机器,则服务器未运行或未正确配置。

      如果 ping 失败并显示 unknown host,则名称服务未配置正确或使用的主机名不正确。有关此事的进一步检查,请参阅 步骤 4.b。如果 ping 仍然失败,则您的网卡未正确配置或您的网络硬件存在故障。

    2. 使用 host HOSTNAME 检查您尝试连接的服务器的主机名是否已正确转换为 IP 地址,反之亦然。如果此命令返回此主机的 IP 地址,则名称服务已启动并正在运行。如果 host 命令失败,请检查主机上与名称和地址解析相关的所有网络配置文件

      /var/run/netconfig/resolv.conf

      此文件用于跟踪您当前使用的名称服务器和域。它是指向 /run/netconfig/resolv.conf 的符号链接,通常由 YaST 或 DHCP 自动调整。确保此文件具有以下结构,并且所有网络地址和域名都正确

      search FULLY_QUALIFIED_DOMAIN_NAME
      nameserver IPADDRESS_OF_NAMESERVER

      此文件可以包含多个名称服务器地址,但至少必须有一个是正确的才能为您的主机提供名称解析。如有必要,使用 YaST 网络设置模块(主机名/DNS 选项卡)调整此文件。

      如果您的网络连接通过 DHCP 处理,请启用 DHCP 以更改主机名和名称服务信息,方法是在 YaST 网络设置模块(主机名/DNS 选项卡)中选择 通过 DHCP 设置主机名(可以全局为任何接口或每个接口设置)和 通过 DHCP 更新名称服务器和搜索列表

      /etc/nsswitch.conf

      此文件告诉 Linux 在哪里查找名称服务信息。它应该如下所示

       ...
      hosts: files dns
      networks: files dns
      ...

      DNS 条目至关重要。它告诉 Linux 使用外部名称服务器。通常,这些条目由 YaST 自动管理,但检查一下是明智的。

      如果主机上的所有相关条目都正确,请让您的系统管理员检查 DNS 服务器配置,以获取正确的区域信息。 有关 DNS 的详细信息,请参阅 “参考”一书,第 19 章“域名系统” 如果您已确保主机和 DNS 服务器的 DNS 配置正确,请继续检查您的网络和网络设备的配置。

    3. 如果您的系统无法建立与网络服务器的连接,并且您已将名称服务问题排除在可能的故障原因之外,请检查您的网卡配置。

      使用命令 ip addr show NETWORK_DEVICE 来检查该设备是否已正确配置。确保配置了带有子网掩码 (/MASK) 的 inet address。IP 地址中的错误或网络掩码中缺失的位将使您的网络配置无法使用。如有必要,也对服务器执行此检查。

    4. 如果名称服务和网络硬件配置正确且正在运行,但某些外部网络连接仍然出现长时间超时或完全失败,请使用 traceroute FULLY_QUALIFIED_DOMAIN_NAME (以 root 身份执行) 来跟踪这些请求的网络路由。此命令列出您的机器在到达目的地时经过的任何网关(跃点)。它列出每个跃点的响应时间以及该跃点是否可达。结合 traceroute 和 ping 来追踪故障原因,并告知管理员。

当您确定网络问题的根源后,您可以自行解决(如果问题位于您的机器上),或者告知您的网络系统管理员您的发现,以便他们重新配置服务或修复必要的系统。

21.4.1 NetworkManager 问题 编辑源文件

如果您在使用网络连接时遇到问题,请按照 过程 21.2,“如何识别网络问题” 中的描述缩小问题范围。如果 NetworkManager 看起来可疑,请按以下步骤获取提供故障提示的日志

  1. 打开 shell 并以 root 用户身份登录。

  2. 重启 NetworkManager

    > sudo systemctl restart NetworkManager
  3. 以普通用户打开一个网页,例如 https://opensuse.net.cn,以查看您是否可以连接。

  4. 收集 /var/log/NetworkManager 中有关 NetworkManager 状态的任何信息。

有关 NetworkManager 的更多信息,请参阅 “参考”一书,第 28 章“使用 NetworkManager”

21.5 数据问题 编辑源文件

数据问题是指机器可能无法正确启动,但无论如何,很明显系统上的数据已损坏,并且需要恢复系统。这些情况需要备份您的关键数据,以便您可以从系统故障之前恢复系统状态。

21.5.1 管理分区镜像 编辑源文件

有时您需要从整个分区甚至硬盘备份。Linux 带有 dd 工具,它可以创建您磁盘的精确副本。结合 gzip 可以节省空间。

过程 21.3: 备份和恢复硬盘
  1. root 用户身份启动 Shell。

  2. 选择您的源设备。通常,这类似于 /dev/sda(标记为 SOURCE)。

  3. 确定要存储镜像的位置(标记为 BACKUP_PATH)。它必须与您的源设备不同。换句话说:如果您从 /dev/sda 备份,您的镜像文件不能存储在 /dev/sda 下。

  4. 运行命令以创建压缩的镜像文件

    # dd if=/dev/SOURCE | gzip > /BACKUP_PATH/image.gz
  5. 使用以下命令恢复硬盘

    # gzip -dc /BACKUP_PATH/image.gz | dd of=/dev/SOURCE

如果您只需要备份一个分区,请将 SOURCE 占位符替换为您的相应分区。在这种情况下,您的镜像文件可以位于同一硬盘上,但位于不同的分区上。

21.5.2 使用救援系统 编辑源文件

有几个原因可能导致系统无法启动并正常运行。系统崩溃后的损坏的文件系统、损坏的配置文件或损坏的引导加载程序配置是最常见的原因。

为了帮助您解决这些情况,openSUSE Leap 包含一个救援系统,您可以启动它。救援系统是一个小的 Linux 系统,可以加载到 RAM 磁盘中并作为根文件系统挂载,从而允许您从外部访问您的 Linux 分区。使用救援系统,您可以恢复或修改系统的任何重要方面。

  • 操作任何类型的配置文件。

  • 检查文件系统是否存在缺陷并启动自动修复过程。

  • change root 环境访问已安装的系统。

  • 检查、修改和重新安装引导加载程序配置。

  • 从安装不当的设备驱动程序或无法使用的内核中恢复。

  • 使用 parted 命令调整分区大小。在 GNU Parted 网站上找到有关此工具的更多信息 https://gnu.ac.cn/software/parted/parted.html

救援系统可以从各种来源和位置加载。最简单的方法是从原始安装介质启动救援系统。

  1. 将安装介质插入您的 DVD 驱动器。

  2. 重新启动系统。

  3. 在启动屏幕上,按 F4 并选择 DVD-ROM。然后从主菜单中选择 救援系统

  4. Rescue: 提示符下输入 root。不需要密码。

如果您的硬件设置不包含 DVD 驱动器,您可以从网络源启动救援系统。以下示例适用于远程启动场景——如果使用其他启动介质(例如 DVD),请相应地修改 info 文件并像正常安装一样启动。

  1. 输入您的 PXE 启动配置,并添加 install=PROTOCOL://INSTSOURCErescue=1 行。如果您需要启动修复系统,请使用 repair=1。与正常安装一样,PROTOCOL 代表任何受支持的网络协议(NFS、HTTP、FTP 等),INSTSOURCE 代表您的网络安装源的路径。

  2. 使用 Wake on LAN 启动系统。

  3. Rescue: 提示符下输入 root。不需要密码。

进入救援系统后,可以使用 AltF1AltF6 访问虚拟控制台。

shell 和其他有用的实用程序(例如 mount 程序)位于 /bin 目录中。 /sbin 目录包含重要的文件和网络实用程序,用于查看和修复文件系统。此目录还包含用于系统维护的最重要的二进制文件,例如 fdiskmkfsmkswapmountshutdownipss 用于维护网络。 /usr/bin 目录包含 vi 编辑器、find、less 和 SSH。

要查看系统消息,可以使用命令 dmesg 或使用 journalctl 查看系统日志。

21.5.2.1 检查和操作配置文件 编辑源文件

作为一个可以使用救援系统修复的配置示例,假设您有一个损坏的配置文件,该配置文件阻止系统正确启动。您可以使用救援系统修复它。

要操作配置文件,请按以下步骤操作

  1. 使用上述方法之一启动救援系统。

  2. 要将位于 /dev/sda6 下的根文件系统挂载到救援系统,请使用以下命令

    > sudo mount /dev/sda6 /mnt

    系统的所有目录现在位于 /mnt

  3. 更改目录到挂载的根文件系统

    > sudo cd /mnt
  4. 在 vi 编辑器中打开有问题 的配置文件。调整并保存配置。

  5. 从救援系统卸载根文件系统

    > sudo umount /mnt
  6. 重新启动机器。

21.5.2.2 修复和检查文件系统 编辑源文件

通常,无法在正在运行的系统上修复文件系统。如果您遇到严重问题,您甚至可能无法挂载根文件系统,并且系统启动可能会以 kernel panic 结束。在这种情况下,唯一的方法是从外部修复系统。该系统包含 fsck 实用程序,用于检查和修复多种文件系统类型,例如 ext2ext3ext4msdosvfat。使用 -t 选项指定要检查的文件系统。

以下命令检查在 /etc/fstab 规范中找到的所有 ext4 文件系统

> sudo fsck -t ext4 -A
Tip
提示

对于 Btrfs,您可以使用 btrfs check 命令,该命令位于 btrfsprogs 包中。

在以下位置找到有关 Btrfs 文件系统的相关主题

21.5.2.3 访问已安装的系统 编辑源文件

如果您需要从救援系统访问已安装的系统,您需要在 change root 环境中执行此操作。例如,要修改引导加载程序配置,或执行硬件配置实用程序。

要基于已安装的系统设置 change root 环境,请按以下步骤操作

  1. Tip
    提示:导入 LVM 卷组

    如果您正在使用 LVM 设置(请参阅 “参考”一书,第 5 章“专家分区程序”,第 5.3 节“LVM 配置” 以获取更多常规详细信息),请导入所有现有的卷组以能够找到并挂载设备

    rootvgimport -a

    运行 lsblk 以检查哪个节点对应于根分区。在我们的示例中,它是 /dev/sda2

    > lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    sda           8:0    0 149,1G  0 disk
    ├─sda1        8:1    0     2G  0 part  [SWAP]
    ├─sda2        8:2    0    20G  0 part  /
    └─sda3        8:3    0   127G  0 part
      └─cr_home 254:0    0   127G  0 crypt /home
  2. 将已安装系统中的根分区挂载

    > sudo mount /dev/sda2 /mnt
  3. 挂载 /proc/dev/sys 分区

    > sudo mount -t proc none /mnt/proc
    > sudo mount --rbind /dev /mnt/dev
    > sudo mount --rbind /sys /mnt/sys
  4. 现在您可以 change root 进入新环境,保留 bash shell

    > chroot /mnt /bin/bash
  5. 最后,从已安装的系统挂载剩余的分区

    > mount -a
  6. 现在您可以使用已安装的系统。重新启动系统之前,使用 umount -a 卸载分区,并使用 exit 退出 change root 环境。

Warning
警告:限制

虽然您可以完全访问已安装系统的文件和应用程序,但有一些限制。正在运行的内核是随救援系统启动的内核,而不是随 change root 环境启动的内核。它仅支持基本硬件,并且除非内核版本相同,否则无法从已安装的系统添加内核模块。始终使用 uname -r 检查当前正在运行(救援)内核的版本,然后在 /lib/modules 目录中查找 change root 环境中是否存在匹配的子目录。如果是,您可以使用已安装的模块,否则您需要在其他介质(例如闪存盘)上提供正确的版本。通常救援内核版本与已安装的版本不同——然后您无法简单地访问声卡,例如。也不可能启动图形用户界面。

另请注意,当您使用 AltF1AltF6 切换控制台时,您将离开 change root 环境。

21.5.2.4 修改和重新安装引导加载程序 编辑源文件

有时系统无法启动,因为启动加载程序配置已损坏。例如,启动例程无法将物理驱动器转换为 Linux 文件系统中的实际位置,而没有可用的启动加载程序。

要检查启动加载程序配置并重新安装启动加载程序,请按以下步骤操作

  1. 按照第 21.5.2.3 节,“访问已安装的系统”中描述的必要步骤访问已安装的系统。

  2. 检查 GRUB 2 启动加载程序是否已安装在系统上。如果未安装,请安装软件包 grub2 并运行

    > sudo grub2-install /dev/sda
  3. 检查以下文件是否根据 “参考”手册,第 12 章“启动加载程序 GRUB 2” 中概述的 GRUB 2 配置原则正确配置,并在必要时应用修复。

    • /etc/default/grub

    • /boot/grub2/device.map

    • /boot/grub2/grub.cfg (此文件是生成的,请勿编辑)

    • /etc/sysconfig/bootloader

  4. 使用以下命令序列重新安装启动加载程序

    > sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  5. 卸载分区,退出 更改根目录 环境,并重新启动系统

    > umount -a
    exit
    reboot

21.5.2.5 修复内核安装 编辑源文件

内核更新可能会引入新的错误,从而影响系统的运行。例如,系统中某个硬件的驱动程序可能存在缺陷,导致您无法访问和使用它。在这种情况下,请恢复到上一个可用的内核(如果系统上有),或从安装介质安装原始内核。

Tip
提示:如何更新后保留上一个内核

为了防止在有缺陷的内核更新后无法启动,请使用内核多版本功能,并告诉 libzypp 您希望在更新后保留哪些内核。

例如,要始终保留最后两个内核和当前正在运行的内核,请添加

multiversion.kernels = latest,latest-1,running

/etc/zypp/zypp.conf 文件中。有关更多信息,请参阅 “参考”手册,第 6 章“安装多个内核版本”

类似的情况是,当您需要重新安装或更新不支持 openSUSE Leap 的设备的损坏驱动程序时。例如,当硬件供应商使用特定的设备(如硬件 RAID 控制器)时,该设备需要二进制驱动程序才能被操作系统识别。供应商通常会发布驱动程序更新磁盘 (DUD),其中包含已修复或更新的所需驱动程序的版本。

在两种情况下,您都需要以救援模式访问已安装的系统并修复与内核相关的问题,否则系统可能无法正确启动

  1. openSUSE Leap 安装介质启动。

  2. 如果您正在从有缺陷的内核更新后恢复,请跳过此步骤。如果您需要使用驱动程序更新磁盘 (DUD),请在启动菜单出现后按 F6 加载驱动程序更新,然后选择驱动程序更新的路径或 URL 并使用 确认。

  3. 从启动菜单中选择 救援系统 并按 Enter。如果您选择使用 DUD,系统将要求您指定存储驱动程序更新的位置。

  4. Rescue: 提示符下输入 root。不需要密码。

  5. 手动挂载目标系统并 更改根目录 到新环境。有关更多信息,请参阅 第 21.5.2.3 节,“访问已安装的系统”

  6. 如果使用 DUD,请安装/重新安装/更新有缺陷的设备驱动程序包。务必确保安装的内核版本与您正在安装的驱动程序的版本完全匹配。

    如果正在修复有缺陷的内核更新安装,可以使用以下过程从安装介质安装原始内核。

    1. 使用 hwinfo --cdrom 识别您的 DVD 设备,并使用 mount /dev/sr0 /mnt 挂载它。

    2. 导航到 DVD 上存储内核文件的目录,例如 cd /mnt/suse/x86_64/

    3. 使用 rpm -i 命令安装所需的 kernel-*kernel-*-basekernel-*-extra 包。

  7. 如果需要,请更新配置文件并重新初始化启动加载程序。有关更多信息,请参阅 第 21.5.2.4 节,“修改和重新安装启动加载程序”

  8. 从系统驱动器中移除任何可引导介质并重新启动。

打印此页面