云网牛站
所在位置:首页 > Linux教程 > 在Linux系统下安装和使用Chezmoi以管理点文件

在Linux系统下安装和使用Chezmoi以管理点文件

2020-04-05 21:23:40作者:申仲稿源:云网牛站

本文将介绍在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

这里重要的是它还向您显示了它支持的密码管理器:

在Linux系统下安装和使用Chezmoi以管理点文件

您可以使用这些客户端,也可以使用通用客户端,也可以使用系统的密钥环。

对于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

在Linux系统下安装和使用Chezmoi以管理点文件

现在,您的秘密已在密码管理器中妥善保护,您的配置可以公开共享而没有任何风险。

 

相关主题

什么是bashrc配置文件,如何对其进行编辑

精选文章
热门文章