techstay
V2EX  ›  Linux

老生常谈的问题,请问大家如何管理 dotfiles

By techstay at 2022 年 5 月 28 日 · 5345 次点击

我目前用的是 yadm ,感觉还行,bootstrap 、encrypt 这几个功能也不错。

但是现在有个问题,我想把 dotfiles 分成两部分,一部分是 zshrc 这种可以公开的配置,单独弄个仓库;另一种是带有自己密钥的,弄成私人仓库自己用。

现在我是同时维护两个仓库,感觉改点东西麻烦死。这时候是不是可以用什么 git submodule 之类的整合一下。有没有类似经验的老哥分享一下。

20 条回复  •  2022-06-08 17:59:10 +08:00
yuhangch
   1
yuhangch  
   2022 年 5 月 28 日
不如直接全部私有算了
wd
   2
wd  
   2022 年 5 月 28 日 via iPhone
又不是大佬 公开了也没人看 还不如私有来的简单
thedrwu
   3
thedrwu  
   2022 年 5 月 28 日 via Android
公开 dotfiles 没必要。
一方面,作为新人,我为什么要抄别人的 dotfiles ,直接用默认的多方便,换了环境立刻能上手。
另一方面,我的 dotfiles 也只有我能用得惯,没必要公开。

密钥就交给密码管理器。在 dotfiles 调用密码管理器得到密码或者密钥。
ampedee
   4
ampedee  
   2022 年 5 月 28 日 via iPhone
不会真的有人会直接用公开的 dotfiles 吧?
直接私有不就得了
techstay
   5
techstay  
OP
   2022 年 5 月 28 日
啊这,大家说的好有道理😂,直接全私有得了
nightwitch
   6
nightwitch  
   2022 年 5 月 28 日 via Android   ❤️ 1
dotfiles 直接私有呗,绝大多数都是只对你有意义的东西。
有些你自己写的函数或者配置觉得还可以的,可以抽出来放到 gist 里或者写博客里,有缘人自会搜索到
Biwood
   7
Biwood  
   2022 年 5 月 28 日
一开始也想学别人公开,后来备份的东西多了,感觉全部公开也不好,就索性全部私有了。

另外问一下,大家是用的自动化备份方案吗,我是用 chezmoi 这个工具,每次还是得手动添加和提交。话说有一次不小心把 .zshrc 里面的内容全部给覆盖了,惊恐万分,跑去 dotfiles 仓库看了下,幸好有备份,只是版本稍微老了一点。由此意识到文件备份的重要性。
vbs
   8
vbs  
   2022 年 5 月 28 日   ❤️ 1
推荐:The best way to store your dotfiles: A bare Git repository https://www.atlassian.com/git/tutorials/dotfiles
baobao1270
   9
baobao1270  
   2022 年 5 月 29 日
全部私有吧
saltbo
   10
saltbo  
   2022 年 5 月 29 日
大家都不用 yadm 的加密功能吗
alzee
   11
alzee  
   2022 年 5 月 29 日
https://github.com/alzee/ash
每人习惯不一样,仅提供思路。
密钥之类的我不会放到仓库里。实际上每个主机我都会生成不一样的密钥。
RayGZJ
   12
RayGZJ  
   2022 年 5 月 29 日 via iPhone
mac 下不如用 zsh 写个脚本 cp -r 移动到 icloud 文件夹自动同步…
RayGZJ
   13
RayGZJ  
   2022 年 5 月 29 日 via iPhone
@RayGZJ #12 要是想加密数据就生成下压缩包? linux 用 cron git pull 到私有库
kaiger
   14
kaiger  
   2022 年 6 月 7 日
@thedrwu

有好用的密码管理器推荐吗
thedrwu
   15
thedrwu  
   2022 年 6 月 7 日 via Android   ❤️ 1
@kaiger

我用 pass ,因为我本来就在用 gpg 加密邮件,并且用 gpg 作为 ssh 的 rsa key 。文件格式简单,而且轻量不带 gui 。

pass 有浏览器的插件,走 native message 。Windows 下能无缝接上装在 wsl 里的密码管理器。

这种方式还有个阶进操作:
有些地方,比如服务器上,不想 copy 整个密码管理器的数据,可以把 gpg 加密后的密码作为 comment 写到对应程序的 config 文件里,执行 config 的时候再 grep/sed 自己本身,把含有密码的那几行 comments 送到 gpg 解密出对应程序的密码。gpg 的 socket 可以被 ssh forward ,所以不需要在服务器上保存 gpg 的密钥或者在服务器输入总密码也依然能远程自动填密码。
kaiger
   16
kaiger  
   2022 年 6 月 8 日
@thedrwu

多谢,pass 很好用,但是我没找到浏览器插件,我用的 chrome ,方便提供一下插件下载地址吗
thedrwu
   17
thedrwu  
   2022 年 6 月 8 日 via Android   ❤️ 1
kaiger
   18
kaiger  
   2022 年 6 月 8 日
@thedrwu

本地 native message 程序安装过程中有点小问题,请教一下,

Browserpass 是通过 apt 安装的 apt install webext-browserpass

配置的时候,进入 /usr/lib/browserpass 目录运行 make hosts-chrome-user 命令

提示:
'/home/wukaige/.config/google-chrome/NativeMessagingHosts/com.github.browserpass.native.json' -> '/usr/lib/browserpass/hosts/chromium/com.github.browserpass.native.json'
Error: the symlink points to a non-existent location

我的 /usr/lib/browserpass 目录并没有 hosts 这个目录,是什么情况
thedrwu
   19
thedrwu  
   2022 年 6 月 8 日 via Android
@kaiger
也许是 deb 打包的锅,手动装一下,把 json 里的可执行文件的路径填对,那个 json 文件放对位置就行。
kaiger
   20
kaiger  
   2022 年 6 月 8 日
@thedrwu 好的好的,我试试
Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
© 2026 V2EX · 46ms · 3.9.8.5