多系统管理 dotfile 的最佳实践 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
winson030
V2EX    程序员

多系统管理 dotfile 的最佳实践

  •  
  •   winson030 2024-01-07 07:33:08 +08:00 3371 次点击
    这是一个创建于 650 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    工作和生活会用到三个系统

    • Windows
    • macOS
    • Linux

    三个系统都安装了 neovim ranger tmux zsh (+wsl ) idea 等程序 这些软件在本地的配置文件都是单独存在的,每次都需要单独配置,很麻烦

    需求

    • 这些配置文件如何跨系统同步?想实现三个系统只用一份配置文件。

    最后

    欢迎 v 友们分享经验!非常感谢

    19 条回复    2024-01-08 17:28:53 +08:00
    lizhengbo
        1
    lizhengbo  
       2024-01-07 07:38:59 +08:00
    要看跨平台下软件的配置文件是怎么处理的.

    有些软件相同的配置, 换台电脑都用不了, 更别提跨平台的.

    假如配置文件可以跨平台, 解决办法非常简单.

    配置文件一般都很小的, 整个免费或收费的云空间

    各平台找到文件同步软件, Linux rsync, Windows 一大堆, Mac 没用过.

    这个方案适合同时间只使用一个平台.
    lizhengbo
        2
    lizhengbo  
       2024-01-07 07:42:24 +08:00
    最好的方案还是自己在使用的平台写个备份和还原配置文件的脚本, 用的时候方便, 不需要折腾来折腾去.
    palfortime
        3
    palfortime  
       2024-01-07 08:10:39 +08:00 via Android   2
    我 linux+mac 用 chezmoi
    gjh
        4
    ghjh  
       2024-01-07 08:19:30 +08:00 via Android   1
    我自己使用 stow ,三楼提到的 chezmoi 也可以
    https://farseerfc.me/using-gnu-stow-to-manage-your-dotfiles.html
    leonshaw
        5
    leonshaw  
       2024-01-07 08:23:37 +08:00 via Android
    git
    darksword21
        6
    darksword21  
    PRO
       2024-01-07 08:28:30 +08:00 via iPhone
    nix
    lucifer9
        7
    lucifer9  
       2024-01-07 08:36:57 +08:00 via iPhone
    stow ,自己打那个 dot-file 的补丁
    zxf4399
        8
    zxf4399  
       2024-01-07 09:23:29 +08:00
    chezmoi+1
    kawaiidora
        9
    kawaiidora  
       2024-01-07 09:29:50 +08:00 via Android   1
    git 管理配置文件,然后自己写一个适配三系统的脚本(主要功能是给配置文件创建快捷方式)
    winson030
        10
    winson030  
    OP
       2024-01-07 09:41:03 +08:00
    @lizhengbo 这里提到的软件配置文件都是一样的,三个系统能用同一份配置内容。
    zeroDev
        11
    zeroDev 
       2024-01-07 09:43:51 +08:00 via Android
    Volekingsg
        12
    Volekingsg  
       2024-01-07 10:13:49 +08:00   1
    EyebrowsWhite
        13
    EyebrowsWhite  
       2024-01-07 10:57:25 +08:00   1
    git 用来同步,放一个 shell 脚本用来首次安装,这里的“安装”指的是软链接,这样的好处是每次 git pull 之后配置也会自动更新。这里放一下我自己的仓库供参考: https://github.com/eyebrowkang/dotfiles
    Alliot
        14
    Alliot  
       2024-01-07 11:24:53 +08:00 via Android
    chezmoi 就够了
    h404bi
        15
    h404bi  
       2024-01-07 12:17:26 +08:00   1
    chezmoi 比较多人用。我是 git 加自制 bootstrap 脚本,自由度高些,不过我已经很久没切系统了。
    https://github.com/chawyehsu/dotfiles
    MrGba2z
        16
    MrGba2z  
       2024-01-07 12:19:30 +08:00   1
    我是自己写了个 sh 脚本根据系统类型自动做初始化安装(因为玩 pve 所以经常要一键设置很多东西)
    有个缺点是无法同步 dotfiles ,只能更新
    但我的使用场景一般不会频繁修改
    yelite
        17
    yelite  
       2024-01-07 12:51:50 +08:00 via iPhone   1
    Nix + HomeManager ,优点是可以连同 binary packages 一起管理,reproducibility 很好。缺点是复杂,学起来会比较慢。

    分享两篇文章参考
    htps://medium.com/version-1/explore-nixos-a-dive-into-the-world-of-declarative-linux-63735ee3be41
    https://greenfield.blog/posts/manage-system-with-nix/00-intro/
    winson030
        18
    winson030  
    OP
       2024-01-07 15:02:07 +08:00
    @h404bi 赶紧抄作业!
    OliverDD
        19
    OliverDD  
       2024-01-08 17:28:53 +08:00
    yadm
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1012 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:47 PVG 02:47 LAX 11:47 JFK 14:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86