本文将介绍在Linux系统下安装和使用Chezmoi的方法,带您进入Chezmoi入门。Chezmoi是一种用于管理您的点文件的工具,它不会盲目地从存储库复制或符号链接文件,Chezmoi更像是模板引擎,可以根据系统变量、模板、机密管理器和Chezmoi自己的配置文件来生成您的点文件。在Linux系统中,点文件是隐藏的文本文件,用于将许多配置设置(如Bash和Git)存储到i3或VSCode等更复杂的应用程序中,这些文件大多数都包含在~/.config目录中或主目录中。
安装Chezmoi及基本使用 目前,Chezmoi不在默认Fedora存储库中,您可以使用以下命令下载Chezmoi的1.7.17版本: $ sudo dnf install https://github.com/twpayne/chezmoi/releases/download/v1.7.17/chezmoi-1.7.17-x86_64.rpm 注:其他版本需要到https://github.com/twpayne/chezmoi/releases中下载。 这会将预打包的RPM安装到您的系统中。 其他的Linux发行版可用snap命令安装,运行snap install chezmoi --classic命令。或者使用Linuxbrew命令(参考:Ubuntu/Debian/Arch Linux/Fedora/OpenSUSE安装Linuxbrew的方法),运行brew install twpayne/taps/chezmoi命令。Arch Linux可用pacman -S chezmoi命令安装。Alpine Linux可用apk add chezmoi命令安装。NixOS Linux可用nix-env -i chezmoi命令安装。 让我们继续使用以下方法创建您的存储库: $ chezmoi init 它将在~/.local/share/chezmoi/中创建您的新存储库,您可以使用以下命令轻松地将该目录CD到: $ chezmoi cd 让我们添加第一个文件: chezmoi add ~/.bashrc 将您的bashrc文件添加到chezmoi存储库。 注意:如果您的bashrc文件实际上是一个符号链接,则需要添加-f标志以跟随它并读取实际文件的内容。 现在,您可以使用以下命令编辑该文件: $ chezmoi edit ~/.bashrc 现在让我们添加一个私有文件,这是一个具有600或类似权限的文件,我在.ssh/config中有一个文件,我想通过使用添加: $ chezmoi add ~/.ssh/config Chezmoi使用特殊的前缀来跟踪隐藏文件和私有文件,以解决Git的限制,运行以下命令以查看它: $ chezmoi cd 请注意,标记为私有的文件实际上不是私有的,它们仍以纯文本格式保存在git repo中,以后再说。 您可以使用以下方法应用任何更改: $ chezmoi apply 并检查使用有什么不同: $ chezmoi diff
使用变量和模板 要导出Chezmoi可以收集的所有数据,请运行: $ chezmoi data 其中大多数是有关用户名、arch、主机名、操作系统类型和操作系统名称的信息,但是您也可以添加我们自己的变量。 继续运行: $ chezmoi edit-config 然后输入以下内容: [data] email = "ywnz@example.com" name = "Ywnz Linux" 保存文件,然后再次运行chezmoi数据,您将在底部看到您的电子邮件和姓名现已被添加。现在,您可以将这些与Chezmoi的模板一起使用: $ chezmoi add -T --autotemplate ~/.gitconfig 将您的gitconfig作为模板添加到Chezmoi中,如果Chezmoi成功地正确推断了模板,您将获得以下信息: [user] email = "{{ .email }}" name = "{{ .name }}" 如果不是,则可以将文件更改为此。 使用以下方法检查文件: $ chezmoi edit ~/.gitconfig 使用后: $ chezmoi cat ~/.gitconfig 查看chezmoi将为此文件生成什么,我生成的示例如下: [root@a6e273a8d010 ~]# chezmoi cat ~/.gitconfig [user] email = "ywnz@example.com" name = "Ywnz Linux" [root@a6e273a8d010 ~]# 它将在我们的chezmoi配置中生成一个充满变量的文件。 您也可以使用变量执行简单的逻辑语句,一个例子是: {{- if eq .chezmoi.hostname "fsteel" }} # this will only be included if the host name is equal to "fsteel" {{- end }} 请注意,要使其正常工作,文件必须是模板。您可以通过在chezmoi cd中查看文件是否在文件名后附加“.tmpl”,或使用-T选项读取文件来进行检查。
密码管理器 要对设置进行故障排除,请使用以下命令: $ chezmoi doctor 这里重要的是它还向您显示了它支持的密码管理器:
您可以使用这些客户端,也可以使用通用客户端,也可以使用系统的密钥环。 对于GPG,您需要使用以下命令将以下内容添加到配置中: $ chezmoi edit-config 内容: [gpg] recipient = "<Your GPG keys Recipient" 您可以使用: $ chezmoi add --encrypt 要添加任何文件,这些文件将在您的源存储库中加密,并且不会以纯文本格式公开,Chezmoi会在申请时自动将其解密。 我们也可以在模板中使用它们,例如,存储在Pass中的秘密令牌。继续并生成您的秘密。 在此示例中,它称为“githubtoken”: rwaltr@fsteel:~] $ pass ls Password Store └── githubtoken [rwaltr@fsteel:~] $ 接下来,编辑您的模板,例如我们之前创建的.gitconfig并添加以下行: token = {{ pass "githubtoken" }} 然后让我们使用以下命令进行检查: $ chezmoi cat ~/.gitconfig
现在,您的秘密已在密码管理器中妥善保护,您的配置可以公开共享而没有任何风险。
相关主题 |