32.4. 使用命令行配置 SCPM

本节介绍 SCPM 的命令行配置。了解如何启动、配置 SCPML 并使用配置文件。

32.4.1. 启动 SCPM 并定义资源组

在使用前,必须激活 SCPM。使用 scpmenable 激活 SCPM。如果是第一次运行,则将初始化 SCPM,这需要花几秒钟。可以随时用 scpm disable 取消 SCPM,以防止意外切换配置文件。随后的重新激活只恢复初始化。

默认情况下,SCPM 处理网络和打印机设置以及 X.Org 配置。要管理特殊的服务或配置文件,请激活相应的资源组。要列出预定义的资源组,请使用 scpmlist_groups。要只查看已经激活的资源组,请使用 scpmlist_groups -a。请在命令行以 root 用户身份发出这些命令。

scpm list_groups -a

nis                 Network Information Service client
mail                Mail subsystem
ntpd                Network Time Protocol daemon
xf86                X Server settings
autofs              Automounter service
network             Basic network settings
printer             Printer settings

使用 scpm activate_group NAMEscpm deactivate_group NAME 可以激活或取消激活某个组。用相关组名替换 NAME

32.4.2. 创建和管理配置文件

激活 SCPM 后,名为 default 的配置文件已经存在。可以使用 scpm list 获得所有可用配置文件的列表。这一现有的配置文件也是活动配置文件,可以使用 scpm active 进行校验。配置文件 default 是一个基本配置,其它配置文件都是从该配置派生的。为此,应该首先创建应在所有配置文件中相同的所有设置。然后,用 scpm reload 将这些修改储存在活动配置文件中。可以以 default 配置文件为基础,进行复制和重命名以生成新配置文件。

可以使用两种方法来添加新配置文件。如果新配置文件(这里名为 work)以配置文件 default 为基础,则用 scpmcopy default work 创建此配置文件。命令 scpmswitch work 可以切换为新配置文件,然后可以对其进行修改。您可能要为特殊目的修改系统配置并将更改保存到新配置文件中。命令 scpmadd work 将创建一个新配置文件,方法是将当前系统配置保存在配置文件 work 中并将其标记为活动配置文件。随后运行 scpm reload 将更改保存到配置文件 work 中。

可以使用 scpmrename x yscpmdelete z 重命名或删除配置文件。例如,要将 work 重命名为 project,请输入 scpmrename work project。要删除 project,请输入 scpm delete project。不能删除活动配置文件。

32.4.3. 切换配置配置文件

可以使用命令 scpm switch work 切换到另一个配置文件(在本例中是配置文件 work)。切换到活动配置文件以将系统配置的已修改设置包括在配置文件中。此操作对应于命令 scpmreload

切换配置文件时,SCPM 首先检查已修改了活动配置文件的哪些资源。然后,SCPM 查询是将每个资源的修改添加到活动配置文件中,还是将它们删除。如果需要这些资源的单独列表(SCPM 以前的版本采用这种形式),则使用带有 -r 参数的切换命令:scpm switch -r work

scpm switch -r work

Checking for modified resources 
Checking for Resources to be started/shut down 
Checking for dependencies 
Restoring profile default 

随后,SCPM 将当前系统配置与要切换到的配置文件进行比较。在这个阶段,SCPM 评估由于相互依赖性或为反映配置中的更改,需要停止或重启动哪些系统服务。这类似于部分系统重引导,系统的一小部分进行重引导,而其余部分继续运行,无任何影响。也就是在此时系统服务停止,写入所有已修改的资源(例如配置文件),然后重启动系统服务。

32.4.4. 高级配置文件设置

您可以为通过 scpmlist 显示的每个配置文件输入说明。对于活动配置文件,使用 scpmset description "text" 进行设置。对于不活动的配置文件,请提供配置文件名,例如 scpm set description "text" work。有时在切换配置文件时可能需要执行一些不是由 SCPM 提供的其它操作。每个配置文件最多可以附加 4 个可执行文件。将在切换进程的不同阶段调用这些文件。这些阶段被称为:

prestop

离开配置文件时,在停止服务之前

poststop

离开配置文件时,在停止服务之后

prestart

激活配置文件时,在启动服务之前

poststart

激活配置文件时,在启动服务之后

使用命令 set 插入这些操作,方法是输入 scpm set prestop filenamescpm set poststop filenamescpm set prestart filenamescpm set poststart filename。这些脚本必须可执行并且引用了正确的解释器。

[Warning]集成自定义脚本

对超级用户 (root) 来说,将由 SCPM 执行的其它脚本必须是可读的和可执行的。必须阻止所有其它用户对这些文件的访问。输入命令 chmod 700 filenamechown root:root filenameroot 用户授予对这些文件的独占权限。

setget 查询输入的所有其它设置。例如,命令 scpm get poststart 返回 poststart 调用的名称,如果未附加任何对象,则不返回任何内容。使用 "" 覆盖可以重设置这些设置。使用命令 scpm set prestop "" 可以去除附加的 prestop 程序。

可以使用与添加注释相同的方法将所有 setget 命令应用到任何一个配置文件中。例如,scpm get prestop filename workscpm get prestop work