5

Я работаю на нескольких разных машинах, все из которых * nix. У меня есть много конкретных вещей, которые мне нравятся, или моя подсказка, или псевдонимы, и т.д., И т.д., И т.д. Я уверен, что все вы, ребята, тоже с этим сталкиваетесь.

Как вы думаете, как лучше сохранить снаряды всех моих машин одинаковыми?

Прежде всего, я знаю, что разным машинам понадобятся разные пути к корзинам и другие различия, поэтому я в первую очередь хочу просто включить файл в конец моего профиля, это тот, который мы будем синхронизировать.

Каков наилучший способ синхронизации файлов? Я могу поместить файл в удаленную систему и, возможно, использовать git, чтобы протолкнуть, а затем извлекать мои изменения время от времени. Однако разве Rsync лучше не подходит для этого?

2 ответа2

15

Вот как я это делаю:

  1. Я никогда не помещаю реальное содержимое в файлы ~/.bashrc или ~/.bash_profile , вместо этого эти файлы являются просто символическими ссылками на реальные файлы конфигурации, хранящиеся в подкаталоге моей домашней папки, например ~/dotfiles/bashrc и ~/dotfiles/bash_profile .

  2. Я держу папку ~/dotfiles под контролем исходного кода с помощью Git и размещена на GitHub.com

  3. Когда я устанавливаю новую систему, я просто клонирую репозиторий GitHub в новую локальную папку ~/dotfiles и создаю все символические ссылки (в настоящее время вручную, хотя этот шаг должно быть легко автоматизировать).

  4. Я использую эту же процедуру для других конфигурационных файлов, таких как .hgrc (для Mercurial), .vimrc и несколько других.

  5. Всякий раз, когда я редактирую один из файлов конфигурации, я просто фиксирую и нажимаю на GitHub, а затем загружаю любую другую машину.

Это все еще несколько трудоемко и вручную, но я был счастлив с этим.

Это текущее содержимое моей папки ~/dotfiles :

~/dotfiles
|-- bash
|   |-- aliases
|   |-- config
|   |-- env
|   `-- promptcolors
|-- bash_profile
|-- bashrc
|-- gitconfig
|-- gvimrc
|-- hg-templates
|   |-- map-cmdline.dlog
|   |-- map-cmdline.nlog
|   |-- map-cmdline.sglog
|   `-- map-cmdline.slog
|-- hgrc
|-- ssh
|   `-- config
|-- vim
|   |-- after
|   |-- colemak-mappings.vim
|   |-- colors
|   |-- doc
|   |-- filetype.vim
|   |-- ftplugin
|   `-- plugin
`-- vimrc

Я украл эту идею из великолепной заставки Peepcode Advanced Command line (на мой взгляд, за 9 долларов).

И здесь я храню свой репозиторий GitHub, на случай, если вы захотите взглянуть. Не ожидайте ничего интересного, я просто новичок в bash/ командной строке.

http://github.com/sergio/dotfiles

1

Есть целый ряд различных инструментов, которые помогут достичь этой цели.

Или посмотрите большой список всех точечных файлов, связанных по адресу http://dotfiles.github.io/

(Полное раскрытие: я - первоначальный автор Отшельника и все еще один из главных сопровождающих)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .