Я создал пользовательские .vimrc
и .bashrc
на моей локальной машине.
Также у меня есть пара плагинов vim
которые я считаю полезными. Сейчас у меня ssh
удаленные серверы работают очень часто. Но каждый раз, чтобы работать, мне нужно тратить / терять некоторое время на копирование своей локальной среды, чтобы я мог работать (например, .vimrc
т.д.).
Мне было интересно, есть ли способ для меня, чтобы не делать это, но как-то моя конфигурация стала доступной / "видимой" на каждом удаленном сервере, который я ssh
?
3 ответа
Вы можете создать git или mercurial репозиторий с вашими пользовательскими скриптами, например, в ~/myscripts
. Клонируйте его туда, где это необходимо. Кроме того, добавьте сценарий для создания символических ссылок в каталог myscripts в вашем домашнем каталоге ~/
и, возможно, сценарий для извлечения изменений из любого места и обновления.
Ну, адаптируйте его под свои нужды ...
Как и pvoosten, я предлагаю сохранить git-репо. Я поместил псевдоним в мой .bashrc, чтобы клонировать его, а затем запустил скрипт, который символически связывает файлы ~/homedir с этим извлечением из репо.
Это очень быстро и грязно, но выглядит примерно так (не стесняйтесь улучшать - я предлагаю сделать что-то вроде ls ~/repo/home/ | grep -v setup-links.sh
в setup-links.sh, чтобы избежать необходимость в дрянном filePaths =):
Вы также можете сделать так, чтобы псевдоним .bashrc использовал ssh и scp для удаленной работы на компьютере и избегал шагов 2 и 3, описанных ниже, но в любом случае это работает для меня.
Это означает, что вы можете сделать:
- ssh-copy-id (host) настройка ssh без пароля
- scp .bashrc (хост) скопируйте ваш bashrc поверх
- ssh (host) -А логин на хост и пересылка ssh agent
- setuphome делает клон git-репо и устанавливает ссылки
Очевидно, что не помещайте ваши ssh-ключи в git-репозиторий или gpg keyring
.bashrc (который находится в git и после шага 4 станет символической ссылкой):
alias setuphome='git clone (your git repo) ~/repo/home && cd ~/repo/home && ~/repo/home/setup-links.sh 2>/dev/null remove ; ~/repo/home/setup-links.sh make 2>/dev/null; cd ~'
setup-links.sh
filePaths=".bashrc
.tmux.conf
.vimrc
.bash_profile
.gitconfig
.ssh/config
.vim"
if [ "$1" == 'make' ]; then
echo 'Making links'
for filePath in $filePaths; do
grep '/' <<< $filePath >/dev/null && mkdir -p $(dirname $filePath) 2>/dev/null
ln -s $(pwd)/$filePath ~/$filePath
done
elif [ "$1" == 'remove' ]; then
echo 'Removing links'
for filePath in $filePaths; do
unlink ~/$filePath
done
else
echo 'Error, $1 should be "make" or "remove"'
exit 1
fi
Держите ваши вещи в git-репо, который включает в себя скрипт для настройки вещей.
В качестве примера, вот мои точечные файлы:
https://github.com/wincent/wincent
И вот скрипт, который я запускаю, чтобы "установить" их:
https://github.com/wincent/wincent/blob/master/bootstrap.rb
Есть много других репозиториев на GitHub, если вы просто ищете "github dot files".