береженого кольт бережет
береженого кольт бережет

Установка и настройка CHEZMOI

chezmoi помогает вам управлять вашими личными файлами конфигурации (файлами с точкой, такими как ~/.gitconfig) на нескольких компьютерах.

chezmoi полезен, если вы потратили время на настройку используемых вами инструментов (например, оболочки, редакторы и системы контроля версий) и хотите, чтобы машины работали под разными учетными записями (например, домашняя и рабочая) и/или с разными операционными системами (например, Linux, macOS, и Windows) синхронизированы, но при этом могут легко справляться с различиями от машины к машине.

chezmoi масштабируется от тривиального например, копирование нескольких файлов конфигураций на Raspberry Pi, контейнер разработки или виртуальную машину, до сложных сред разработки например, сохранение любого количества домашних и рабочих компьютеров, Linux, macOS и Windows. Во всех случаях вам нужно поддерживать только один источник конфигураций (одна ветка в git), а для начала работы требуется только добавить один двоичный файл на вашу машину (что вы можете сделать с помощью curlwget, или 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 applychezmoi вычисляет желаемое содержимое и разрешения для каждого файла, а затем вносит необходимые изменения, чтобы ваши файлы соответствовали этому состоянию.

Начните использовать 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/