Alat sinkronisasi dotfiles Linux

Dulu, menjalankan setup Linux yang sama di tiga mesin berarti mengkloning drive dan berharap hardwarenya bertepatan. Standar baru adalah: sinkronkan dotfile kami dengan satu alat, simpan daftar paket di Git, dan biarkan file kami menyinkronkan sendiri melalui saluran terpisah. Ketujuh alat desktop ini mencakup tiga lapisan, dari sinkronisasi dua file ~/.zshrc hingga rebuild deklaratif Nix penuh.

Hal yang perlu diperhatikan dalam alat sinkronisasi dotfile

Beberapa pertanyaan menentukan bentuknya:

Perbandingan cepat

Aplikasi Terbaik untuk Paket gratis Berbayar Platform Menonjol
chezmoi Dotfiles bertemplat dengan rahasia Ya Gratis Linux, macOS, Windows Templat, enkripsi, config yang sadar mesin
GNU Stow Pertanian symlink dari repo Git Ya Gratis Linux, macOS Alur kerja tertua, paling sederhana
yadm Git asli untuk dotfile kami Ya Gratis Linux, macOS Skrip bootstrap, cabang alt per mesin
dotbot Setup symlink deklaratif YAML Ya Gratis Linux, macOS Lintas platform, jejak minimal
Ansible Konfigurasi mesin penuh, bukan hanya dotfiles Ya AAP berbayar Linux, macOS, Windows Satu alat untuk armada atau satu laptop
Syncthing Sinkronisasi file P2P berkelanjutan Ya Gratis Linux, macOS, Windows Tidak ada cloud, sinkronisasi langsung antar mesin
Nix Home Manager Lingkungan pengguna yang dapat direproduksi Ya Gratis Linux, macOS Config yang sama menghasilkan setup yang sama setiap saat

Aplikasinya

1. chezmoi — terbaik untuk dotfiles bertemplat dengan rahasia

chezmoi memperlakukan dotfile kami sebagai kode sumber, dengan templat per-mesin (Go’s text/template) dan enkripsi asli melalui age atau GPG. Satu repo mencakup Mac kerja kami, kotak Linux rumah, dan server headless, dan perbedaannya (email, plugin editor, entri khusus pekerjaan) hidup dalam kondisional templat.

Di mana kekurangannya: Kurva pembelajaran untuk sintaks templat. Menggabungkan hasil templat dengan file yang dikelola sistem memerlukan pola spesifik yang paling orang pelajari dengan cara yang sulit.

Harga: Gratis, sumber terbuka.

Platform: Linux, macOS, Windows.

Unduh: chezmoi

Garis bawah: Default saat ini untuk siapa pun yang telah mengatasi skrip symlink.

2. GNU Stow — terbaik untuk alur kerja paling sederhana

GNU Stow ditulis pada tahun 1994 dan masih melakukan satu hal: membuat symlink dari direktori paket ke rumah kami. Repo dotfiles menjadi “paket” Stow, dan stow zsh membuat symlink ke kontennya. Tanpa templat, tanpa rahasia, tanpa keajaiban.

Di mana kekurangannya: Config khusus mesin berarti banyak cabang atau paket per-host. Rahasia harus tinggal di tempat lain (mount terenkripsi, manajer kata sandi).

Harga: Gratis, sumber terbuka.

Platform: Linux, macOS, Windows (melalui WSL).

Unduh: GNU Stow

Garis bawah: Pilihan yang tepat ketika setup kami kecil dan kami tidak pernah ingin memikirkan alat sinkronisasi lagi.

3. yadm — terbaik untuk memperlakukan dotfiles sebagai satu repo Git

yadm (Yet Another Dotfiles Manager) adalah Git plus kenyamanan khusus dotfile: skrip bootstrap, file alt per host atau OS, dan enkripsi melalui GPG. Karena itu benar-benar hanya wrapper di sekitar Git, semuanya yang sudah kami ketahui masih berfungsi.

Di mana kekurangannya: Konvensi file alt kuat tetapi kurang dapat ditemukan daripada templating chezmoi. Cerita enkripsi dasar dibandingkan dengan tools berbasis age.

Harga: Gratis, sumber terbuka.

Platform: Linux, macOS.

Unduh: yadm

Garis bawah: Langkah paling lembut dari repo Git biasa dari dotfiles.

4. dotbot — setup kecil deklaratif terbaik

dotbot membaca file instalasi YAML dan membuat symlink, mengkloning repo, dan menjalankan perintah shell. Ini cukup kecil untuk vendor ke repo dotfiles kami, jadi mengkloning repo dan menjalankan ./install adalah seluruh bootstrap di mesin segar.

Di mana kekurangannya: Tidak ada templating. Tidak ada enkripsi asli. Mesin kompleks berakhir dengan file install.yaml panjang yang menjadi sulit dibaca.

Harga: Gratis, sumber terbuka.

Platform: Linux, macOS.

Unduh: dotbot di GitHub

Garis bawah: Pilihan yang tepat ketika kami menginginkan file instalasi deklaratif dan tidak ada yang lain.

5. Ansible — terbaik ketika konfigurasi melampaui direktori rumah

Ansible mengelola seluruh mesin dari serangkaian playbook. Untuk setup pribadi, satu playbook memasang paket, menetapkan parameter kernel, menghilangkan dotfiles, dan mengonfigurasi layanan dalam satu pass. Playbook yang sama berjalan di laptop atau node homelab.

Di mana kekurangannya: Berlebihan untuk masalah dotfile murni. Playbook run lebih lambat dari pertanian symlink. Kelelahan YAML nyata setelah melampaui beberapa ratus baris.

Harga: Gratis, sumber terbuka. Tingkat enterprise berbayar Ansible Automation Platform.

Platform: Linux, macOS, Windows.

Unduh: Ansible

Garis bawah: Alat untuk siapa pun yang menginginkan satu alur kerja untuk laptop dan server mereka.

6. Syncthing — terbaik untuk file, bukan config

Syncthing adalah sinkronisasi file peer-to-peer yang harus kami duduk di sebelah manajer dotfile kami. Simpan config deklaratif di Git, tetapi biarkan Syncthing memindahkan beberapa ratus gigabyte Documents, Music, dan file awal proyek di seluruh mesin tanpa penyedia cloud yang pernah menyentuhnya.

Di mana kekurangannya: Bukan alat dotfile sama sekali. Bawa kebiasaan resolusi konflik kami sendiri. Sinkronisasi awal folder besar memakan waktu sesuai dengan link yang lebih lambat.

Harga: Gratis, sumber terbuka.

Platform: Linux, macOS, Windows.

Unduh: Syncthing

Garis bawah: Setengah lainnya dari setup multi-mesin nyata, yang tidak akan digantikan oleh alat dotfile kami saja.

7. Nix Home Manager — terbaik untuk reproducibilitas penuh

Nix Home Manager menggambarkan seluruh lingkungan pengguna kami dalam ekspresi Nix: paket, dotfiles, layanan, semuanya. Mesin segar mendapat nix run home-manager -- switch dan naik identik ke setiap mesin lain di flake.

Di mana kekurangannya: Kurva pembelajaran Nix itu nyata. Beberapa aplikasi proprietary tidak memiliki paket Nix. Rollback adalah sihir ketika mereka bekerja dan menyakitkan ketika saluran putus.

Harga: Gratis, sumber terbuka.

Platform: Linux, macOS.

Unduh: Nix Home Manager

Garis bawah: Pilihan yang tepat untuk siapa pun yang bersedia berinvestasi di Nix di depan untuk reproducibilitas sejati.

Cara memilih yang tepat

Pertanyaan Umum

Di mana kami menyimpan rahasia di repo dotfiles? Tidak pernah dalam teks biasa. chezmoi dan yadm keduanya mengenkripsi saat istirahat. Untuk repo Git biasa, gunakan age atau GPG pada file tertentu, atau simpan rahasia sepenuhnya di luar repo.

Apakah alat ini bekerja di macOS? Setiap alat dalam daftar ini mendukung macOS. Nix Home Manager dan chezmoi jauh lebih ramah macOS.

Bagaimana kami menangani config khusus mesin? Templat (chezmoi), file alt (yadm), cabang (yadm dan Stow), atau blok yang dijaga host di Ansible. Pola templat paling baik setelah dua mesin.

Apakah kami harus melakukan commit repo dotfiles kami secara publik? Hanya setelah audit. Bahkan config kecil sering membawa email atau alias hanya kerja. Pribadi lebih aman.

Bagaimana kami menyinkronkan file yang berubah terus-menerus, seperti bookmark browser atau shell history? Syncthing, bukan alat dotfile. Dotfiles terkontrol versi tidak menyukai churn setiap jam.

Apakah Nix layak dipelajari hanya untuk dotfiles? Untuk dotfiles saja, tidak. Untuk siapa pun yang membangun homelabs, dev containers, dan builds yang dapat direproduksi, ya.