2

Я создал пользовательские .vimrc и .bashrc на моей локальной машине.
Также у меня есть пара плагинов vim которые я считаю полезными. Сейчас у меня ssh удаленные серверы работают очень часто. Но каждый раз, чтобы работать, мне нужно тратить / терять некоторое время на копирование своей локальной среды, чтобы я мог работать (например, .vimrc т.д.).
Мне было интересно, есть ли способ для меня, чтобы не делать это, но как-то моя конфигурация стала доступной / "видимой" на каждом удаленном сервере, который я ssh?

3 ответа3

5

Вы можете создать git или mercurial репозиторий с вашими пользовательскими скриптами, например, в ~/myscripts . Клонируйте его туда, где это необходимо. Кроме того, добавьте сценарий для создания символических ссылок в каталог myscripts в вашем домашнем каталоге ~/ и, возможно, сценарий для извлечения изменений из любого места и обновления.

Ну, адаптируйте его под свои нужды ...

1

Как и pvoosten, я предлагаю сохранить git-репо. Я поместил псевдоним в мой .bashrc, чтобы клонировать его, а затем запустил скрипт, который символически связывает файлы ~/homedir с этим извлечением из репо.

Это очень быстро и грязно, но выглядит примерно так (не стесняйтесь улучшать - я предлагаю сделать что-то вроде ls ~/repo/home/ | grep -v setup-links.sh в setup-links.sh, чтобы избежать необходимость в дрянном filePaths =):

Вы также можете сделать так, чтобы псевдоним .bashrc использовал ssh и scp для удаленной работы на компьютере и избегал шагов 2 и 3, описанных ниже, но в любом случае это работает для меня.

Это означает, что вы можете сделать:

  1. ssh-copy-id (host) настройка ssh без пароля
  2. scp .bashrc (хост) скопируйте ваш bashrc поверх
  3. ssh (host) -А логин на хост и пересылка ssh agent
  4. 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

0

Держите ваши вещи в git-репо, который включает в себя скрипт для настройки вещей.

В качестве примера, вот мои точечные файлы:

https://github.com/wincent/wincent

И вот скрипт, который я запускаю, чтобы "установить" их:

https://github.com/wincent/wincent/blob/master/bootstrap.rb

Есть много других репозиториев на GitHub, если вы просто ищете "github dot files".

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