Существует множество возможностей, как это сделать. Обычный способ, который, как я видел, люди использовали с давних пор, заключался в создании сценария, который содержит всю их конфигурацию только tar
; затем они просто загружают файл tar
и распаковывают. Он может включать файл с именем myconf
с таким содержимым, как:
.vimrc
.bashrc
.profile
.xinitrc
.vifm
.xmonad
Затем вы запускаете
tar -czvf myconf.tgz -T myconf
Download на другом компьютере и распаковываете.
Проблема с этим подходом всегда заключалась в полноте файлов. Например: вы работали на машине A и там вы создали свой .vimrc
, затем вы работали на машине B (на которую вы скопировали свою конфигурацию) и обновили .vimrc
. Когда вы вернулись к машине A, вам нужно было скопировать конфигурацию с машины B. После того, как были задействованы десятки машин, произошел беспорядок.
Я также видел, как для этой цели использовались средства монтирования NFS. Либо сохраняя все каталоги / home
, либо сохраняя файлы конфигурации, на которые пользователи устанавливали программные ссылки.
NFS-монтирование работает намного лучше, чем tar
копирование и копирование, но имеет свои проблемы: если вам нужно работать на машинах, на которых у вас нет root-доступа, монтирование не подходит. Более того, создание монтирования NFS через Интернет может оказаться медленным.
Это мой любимый. С появлением бесплатных и легкодоступных репозиториев исходного кода люди продолжали искать новые способы использования VCS
s. Вы можете использовать систему управления версиями кода в качестве держателя файлов конфигурации.
Создайте репозиторий, содержащий ваши сценарии конфигурации и git clone
(или hg
, или svn
, как вам больше нравится) на используемых вами машинах. Вы можете зафиксировать и отправить обратно в репозиторий при обновлении конфигурации и синхронизировать ее на других машинах при переключении на них.
С другой стороны, эта опция не обходится без собственного набора проблем:
Не создавайте репозиторий исходного кода непосредственно в вашем домашнем каталоге, некоторые VCS
не хотят иметь исходный код деревья внутри других исходных деревьев. Создайте дополнительный каталог в вашем доме для хранения репозитория (хорошее название для него может быть myconf
или rc
) и мягко связать нужные файлы (например, ln - s rc / .vimrc ~ / .vimrc
).
Никогда не отправляйте ключи API или другие данные, которые должны быть конфиденциальными, в общедоступный исходный репозиторий. Github отправляет вам предупреждение по электронной почте, если вы нажимаете что-то, похожее на ключ API, что, вероятно, является хорошим показателем того, как часто это происходит в репозиториях github.
Насколько я понимаю, tar --exclude = '._ *' -cvf newTar.
должен работать: Finder создает файлы ._ *
, но newTar
не должен их содержать.
Но вы можете полностью обойти эти файлы, вызвав tar в режиме сквозной передачи. Например, чтобы скопировать только файлы из oldTar
, которые находятся в some / path
, используйте
tar -cf newTar --include='some/path/*' @oldTar
._ файлы - это то, как OS X bsdtar
обрабатывает специфичные для OS X расширенные атрибуты и вилки ресурсов. (Это механизм, известный как AppleDouble, и на самом деле он применяется не только к архивам TAR, поскольку он находится в нескольких форматах хранения, где нет собственного механизма для хранения вилок ресурсов MacOS и информации Finder.)
Чтобы они не были добавлены в ваши файлы tar, вы можете передать COPYFILE_DISABLE = 1
в качестве переменной среды в tar.
COPYFILE_DISABLE = 1 tar cf newTar.tar / your / files
Эти файлы, начинающиеся с "._ *", являются файлами индикаторов местоположения Apple согласно ЭТОЙ ЗАПИСИ , и вы, очевидно, не можете избавиться от них, войдя в свой терминал в OSX, опять же согласно на той же странице. Вам нужно загрузить файл в операционную систему, отличную от Apple, избавиться от этих файлов и снова заархивировать их. Кажется, это единственное решение.