chezmoi помогает вам управлять вашими личными файлами конфигурации (файлами с точкой, такими как ~/.gitconfig
) на нескольких компьютерах.
chezmoi полезен, если вы потратили время на настройку используемых вами инструментов (например, оболочки, редакторы и системы контроля версий) и хотите, чтобы машины работали под разными учетными записями (например, домашняя и рабочая) и/или с разными операционными системами (например, Linux, macOS, и Windows) синхронизированы, но при этом могут легко справляться с различиями от машины к машине.
chezmoi масштабируется от тривиального например, копирование нескольких файлов конфигураций на Raspberry Pi, контейнер разработки или виртуальную машину, до сложных сред разработки например, сохранение любого количества домашних и рабочих компьютеров, Linux, macOS и Windows. Во всех случаях вам нужно поддерживать только один источник конфигураций (одна ветка в git), а для начала работы требуется только добавить один двоичный файл на вашу машину (что вы можете сделать с помощью curl
, wget
, или scp
).
chezmoi имеет мощную поддержку безопасности, позволяя вам безопасно и беспрепятственно управлять секретами (например, паролями, токенами доступа и закрытыми ключами) с помощью менеджера паролей и/или шифровать целые файлы с помощью вашего любимого инструмента шифрования.
Если вы не персонализируете свою конфигурацию или используете только одну операционную систему с одной учетной записью и ни один из ваших точечных файлов не содержит секретов, вам не нужен chezmoi. В противном случае читайте дальше…
Каковы ключевые особенности chezmoi?
Гибкий
Вы можете совместно использовать столько конфигураций на разных машинах, сколько захотите, и в то же время иметь возможность управлять специфическими для машины деталями. Ваши dot-файлы могут быть шаблонами (используя text/template
синтаксис). Предопределенные переменные позволяют изменять поведение в зависимости от операционной системы, архитектуры и имени хоста. chezmoi работает на всех широко используемых платформах, таких как Linux, macOS и Windows. Он также работает на менее часто используемых платформах, таких как FreeBSD, OpenBSD и Termux.
Персонально и безопасно
Ничто не покидает вашу машину, если вы этого не хотите. Ваша конфигурация остается в репозитории git под вашим контролем. Вы можете написать файл конфигурации в любом формате по вашему выбору. chezmoi может извлекать секреты из 1Password , Bitwarden , gopass , KeePassXC , LastPass , pass , Vault , Keychain, Keyring или любой утилиты командной строки по вашему выбору. Вы можете зашифровать отдельные файлы с помощью GnuPG или age . Вы можете проверить свое хранилище dotfiles на любом количестве машин, не раскрывая никому никаких секретов.
Прозрачный
chezmoi включает в себя подробный режим и режим пробного запуска, так что вы можете точно просмотреть, какие изменения он внесет в ваш домашний каталог, прежде чем вносить их. Исходный формат chezmoi использует только обычные файлы и каталоги, которые однозначно сопоставляются с файлами, каталогами и символическими ссылками в вашем домашнем каталоге, которым вы решили управлять. Если вы решите не использовать chezmoi в будущем, ваши данные легко переместить в другое место.
Декларативный и надежный
Вы объявляете желаемое состояние файлов, каталогов и символических ссылок в вашем источнике и chezmoi обновляет ваш домашний каталог, чтобы соответствовать этому состоянию. То, что вы хотите, это то, что вы получаете. chezmoi автоматически обновляет все файлы и символические ссылки. Вы никогда не останетесь с незавершенными файлами, которые могут заблокировать вас, даже если процесс обновления будет прерван.
Быстрый и простой в использовании
Использование chezmoi похоже на использование git: команды похожи, а chezmoi выполняется за доли секунды. chezmoi выполняет большинство повседневных операций одной строкой, включая установку, инициализацию и обновление ваших машин. chezmoi может получать и применять изменения из вашего репозитория dotfiles с помощью одной команды, а также автоматически фиксировать и отправлять изменения.
Установка
curl
sh -c "$(curl -fsLS chezmoi.io/get)"
wget
sh -c "$(wget -qO- chezmoi.io/get)"
powershell
(iwr -UseBasicParsing https://chezmoi.io/get.ps1).Content | powershell -c -
Install from source
$ git clone https://github.com/twpayne/chezmoi.git
$ cd chezmoi
$ make install
Install on MacOs Brew
brew install chezmoi
Если у вас уже есть репозиторий dotfiles с использованием chezmoi на GitHub https://github.com/<github-username>/dotfiles
, вы можете установить chezmoi и свои dotfiles с помощью одной команды:
sh -c "$(curl -fsLS chezmoi.io/get)" -- init --apply <github-username>
Концепции
chezmoi сохраняет желаемое состояние ваших файлов конфигурации в каталоге ~/.local/share/chezmoi
. При запуске chezmoi apply
chezmoi вычисляет желаемое содержимое и разрешения для каждого файла, а затем вносит необходимые изменения, чтобы ваши файлы соответствовали этому состоянию.
Начните использовать chezmoi на вашей текущей машине
Предполагая, что вы уже установили chezmoi , инициализируйте chezmoi командой:
chezmoi init
Это создаст новый локальный репозиторий git, в ~/.local/share/chezmoi
котором chezmoi будет хранить исходное состояние. По умолчанию chezmoi изменяет файлы только в рабочей копии.
Управляйте своим первым файлом с помощью chezmoi:
chezmoi add ~/.bashrc
команда скопирует ~/.bashrc
в ~/.local/share/chezmoi/dot_bashrc
.
Отредактируйте исходное состояние:
chezmoi edit ~/.bashrc
после чего откроется ~/.local/share/chezmoi/dot_bashrc
в вашем $EDITOR
. Внесите некоторые изменения и сохраните файл.
Посмотрите, какие изменения внес бы chezmoi:
chezmoi diff
Примените изменения:
chezmoi -v apply
Все команды chezmoi принимают -v
флаг (подробный), чтобы точно увидеть изменения, которые они будут вносить в файловую систему, и -n
флаг (пробный запуск), чтобы не вносить никаких фактических изменений. Комбинация -n
-v
очень полезна, если вы хотите точно увидеть, какие изменения будут внесены.
Затем откройте оболочку в исходном каталоге, чтобы зафиксировать изменения:
chezmoi cd
git add .
git commit -m "Initial commit"
Создайте новый репозиторий на GitHub с именем , dotfiles
а затем нажмите репозиторий:
git remote add origin git@github.com:username/dotfiles.git
git branch -M main
git push -u origin main
chezmoi также можно использовать с GitLab , BitBucket , Source Hut или любым другим сервисом хостинга git.
Наконец, выйдите из оболочки в исходном каталоге, чтобы вернуться туда, где вы были:
exit
Использование chezmoi на нескольких машинах
На второй машине инициализируйте chezmoi с вашим репозиторием dotfiles:
chezmoi init https://github.com/username/dotfiles.git
Это проверит репо и любые подмодули и, возможно, создаст для вас файл конфигурации chezmoi.
Проверьте, какие изменения chezmoi внесет в ваш домашний каталог, запустив:
chezmoi diff
Если вас устраивают изменения, внесенные chezmoi, запустите:
chezmoi apply -v
Если вас не устраивают изменения в файле, отредактируйте его с помощью:
chezmoi edit $FILE
Или вызовите инструмент слияния (по умолчанию vimdiff
), чтобы объединить изменения между текущим содержимым файла, файлом в вашей рабочей копии и измененным содержимым файла:
chezmoi merge $FILE
На любой машине вы можете получить и применить последние изменения из вашего репозитория с помощью:
chezmoi update -v
Кроме того, вы можете установить свои dotfiles на новый компьютер с помощью одной команды:
chezmoi init --apply https://github.com/username/dotfiles.git
Настройте новую машину с помощью одной команды
Вы можете установить свои dotfiles на новый компьютер с помощью одной команды:
chezmoi init --apply https://github.com/username/dotfiles.git
Для получения полного списка команд выполните:
chezmoi help
проект на GitHub
https://github.com/twpayne/chezmoi/