Répercussions sur le partage de .bashrc sur des machines avec Dropbox?

Je travaille sur beaucoup de machines différentes, toutes sous Ubuntu (pas toujours la même version). J’ai quelques personnalisations très basiques dans mon invite que j’aimerais pouvoir utiliser sur toutes les machines.

J’utilise actuellement Dropbox et stocke tous mes autres “fichiers de points”, tels que mes fichiers .vim / .vimrc .gitconfig .ackrc. Je les lie ensuite à mon dossier personnel à partir de mon dossier Dropbox. Voilà, toutes les machines synchronisées.

Je ne sais pas quelles sont les conséquences de faire quelque chose comme ça avec mes baskets. Quelqu’un peut-il offrir des suggestions? Peut-être un moyen facile de charger un fichier séparé dans le bashrc?

Je ne vois aucune répercussion réelle, mais je suppose que cela dépend de ce que vous avez là! Si ce ne sont que des alias rapides qui fonctionnent de la même manière partout et des produits cosmétiques, je ne vois aucun problème.

Vous pouvez soit simplement déplacer votre .bashrc dans un dossier de votre dossier Dropbox, puis le lier de manière symbolique sur chacune des machines.

  mkdir -p ~/Dropbox/dotfiles mv ~/.bashrc ~/Dropbox/dotfiles/.bashrc ln -s ~/Dropbox/dotfiles/.bashrc ~/.bashrc 

En fait, mon dossier de départ contient de nombreux fichiers de points qui sont des liens symboliques vers des dossiers partagés de mon compte Dropbox.

Une autre option est que vous pouvez créer un fichier dans votre dossier Dropbox qui sera créé par votre .bashrc :

C’est à dire, dans votre .bashrc , mettez:

source $HOME/Dropbox/dotfiles/bashrc-shared-settings

Ensuite, créez un fichier bashrc-shared-settings contenant tout ce que vous souhaitez utiliser sur toutes les machines. Vous pouvez néanmoins conserver des fichiers .bashrc distincts.

(Vous pouvez aussi abréger le source simplement . En bash.)

Le principal risque auquel je peux penser est que vous devez vous rappeler que la synchronisation n’est pas la même chose que la sauvegarde. Toutes les erreurs seront synchronisées avec toutes vos machines.

Pour inclure un fichier séparé dans votre ~/.bashrc ajoutez quelque chose comme ceci:

 if [ -f ~/.foo ]; then . ~/.foo fi 

Où ~ / .foo est le fichier séparé.

Généralement, centraliser les fichiers de configuration est une bonne chose! Si vous souhaitez personnaliser ce qui est basé sur un système d’exploitation ou un nom d’hôte donné, vous pouvez procéder de la manière suivante dans votre fichier .bashrc:

 export HOSTNAME=`hostname | cut -f1 -d'.'` if [ -f ~/.bash/os/$OSTYPE.sh ]; then source ~/.bash/os/$OSTYPE.sh fi if [ -f ~/.bash/host/$HOSTNAME.sh ]; then source ~/.bash/host/$HOSTNAME.sh fi 

Ensuite, créez un répertoire .bash et les répertoires os et hôte sous celui-ci, puis placez les parameters personnalisés dans des fichiers nommés .sh, correspond au type de système d’exploitation ou à l’hôte à personnaliser.

Je garde tous ces fichiers dans Dropbox et j’ai un script bash appelé link_dropbox dans mon dossier Dropbox qui m’aide à faciliter la liaison entre eux:

 #!/bin/bash #Array of  target->symlink mappings linkarray=( "~/Dropbox/config/bashrc ~/.bashrc" "~/Dropbox/config/bash ~/.bash" "~/Dropbox/config/vimrc ~/.vimrc" "~/Dropbox/config/vim ~/.vim" "~/Dropbox/config/ssh ~/.ssh" "~/Dropbox/config/screenrc ~/.screenrc" "~/Dropbox/bin ~/bin" ) #turn off globbing to split each entry on spaces set -f for entry in "${linkarray[@]}" do targets=( $entry ) #eval will expand the tildes eval from=${targets[0]} eval to=${targets[1]} #if the target exists and is not a symlink, err on the side of caution if [ -e "$to" -a ! -L "$to" ] then echo "$to exists and is not a link, skipping..." else #probably safe to delete an existing symlink if [ -e "$to" ] then rm $to fi ln -s $from $to fi done 

Je garde mon lien symbolique .bashrc dans Dropbox avec beaucoup d’autres fichiers de configuration (.gitconfig, .vimrc, etc.).

Je source un fichier appelé .bashrc_local à la fin de celui-ci pour d’autres parameters que je pourrais vouloir garder machine indépendante.

 if [ -f ~/.bashrc_local ]; then . ~/.bashrc_local fi 

La synchronisation avec Dropbox est excellente, mais si vous ne souhaitez pas installer Dropbox sur le serveur, vous pouvez implémenter ma méthode.

  1. Créez un fichier avec vos parameters bash partagés dans votre dossier Dropbox.

  2. Faites un clic droit sur le fichier et cliquez sur “Partager le lien” dans le menu Dropbox.

  3. Puis cliquez sur “Get Link”. Cela copiera le lien partagé dans votre presse-papiers.

  4. Ajoutez? Dl = 1 à la fin du fichier partagé. Cela vous permet d’obtenir le fichier brut. Votre lien partagé devrait maintenant ressembler au mien: https://dl.dropbox.com/s/h25q5c3czo6mnjo/shared_bash_settings.sh?dl=1

  5. Ajouter cette ligne à ~ / .bashrc

    source $HOME/.bash_shared_settings

  6. Créez une tâche cron avec votre intervalle préféré en utilisant cette commande (Remplacez par votre fichier partagé Dropbox!)

    */30 * * * * curl -sS https://dl.dropbox.com/s/h25q5c3czo6mnjo/shared_bash_settings.sh?dl=1 > ~/.bash_shared_settings; chmod +x ~/.bash_shared_settings;

Cela mettra à jour votre copie de ~ / .bash_shared_settings toutes les demi-heures. Chaque fois que vous rechargez votre session, vous incluez les dernières modifications.