マシン間でドットファイルを同期させますか?
-
05-07-2019 - |
質問
ほとんどの* nix人のように、私は自分のツールで遊んで、好きなように設定する傾向があります。これは最近まですべてうまくいきました。私が仕事をするにつれて、私はますます多くのマシンにログオンする傾向があり、自宅のマシンで優れた設定を行っていますが、必ずしも仕事用のマシン、Webサーバー、または自分の仕事のすべてではありませんサーバー...
これらの設定ファイルをどのように更新し続けるのですか?それらを手動でコピーするだけですか?それらはどこかに公開されていますか?
解決
ファイルをリビジョン管理システムで管理することは非常に幸運でした。それは万人向けではありませんが、ほとんどのプログラマーは利点を理解できるはずです。 読む
非ドットファイル構成の処理方法を含む優れた説明( svnfixスクリプト)を複数のマシンで使用します。
他のヒント
また、subversionを使用してドットファイルを管理しています。ボックスにログインすると、confが自動的に更新されます。また、githubを使用して私のconfs をパブリックに保存します。 git-svnを使用して、2つの同期を保ちます。
新しいサーバーで起動して実行するには、いくつかのコマンドを実行するだけです。 create_linksスクリプトは、.dotfilesフォルダーアイテムから $ HOME
にシンボリックリンクを作成するだけでなく、チェックインする必要のないいくつかのファイルに触れます。
$ cd
# checkout the files
$ svn co https://path/to/my/dotfiles/trunk .dotfiles
# remove any files that might be in the way
$ .dotfiles/create_links.sh unlink
# create the symlinks and other random tasks needed for setup
$ .dotfiles/create_links.sh
最近見たところどこでも、「やあ、それは DropBox for"
Rsyncは最適なソリューションです。例はここにあります:
homesick をお勧めします。 gitを使用し、ファイルを自動的にシンボリックリンクします。 homesick track
は新しいdotfileを追跡し、 homesick symlink
は新しいdotfilesをリポジトリからホームフォルダにsymlinkします。このようにして、複数のリポジトリを持つことさえできます。
rsyncを使用できます。 sshを使用して新しいサーバーをセットアップするだけなので、sshを介して機能します。
または、どこにでも移動して展開するtarファイルを作成します。
バージョン管理システムに保存します。
iはsvnを使用します...パブリックおよびプライベートリポジトリを持っています...サーバーにアクセスするとすぐに
svn co http://my.rep/home/public
そしてすべての私のドットファイルを持っています...
私は git
リポジトリに保存します。これにより、システム依存の変更を超えて簡単にマージできますが、必要な変更も共有できます。
メインマシンでCMの管理下にあるファイルのマスターバージョンを保持し、必要な場所で更新プログラムをコピーするよう手配します。幸いなことに、ほとんどのマシンにはホームディレクトリ用のNFSマウントがあるため、実際にすべてを頻繁にコピーする必要はありません。一方、私のプロファイルはかなり複雑であり、異なるマシンで異なるPATH設定などを提供します。大体、私が管理制御するマシンには、管理制御なしで時々使用するマシンよりも多くのオープンソースソフトウェアがインストールされる傾向があります。
つまり、手動と半自動のプロセスがランダムに混在しています。
netskel があり、Webサーバーに一般的なファイルを配置し、次にクライアントを配置しますプログラムは、任意の数のクライアントマシンでドットファイルを維持します。クライアントマシンのどのレベルでも実行できるように設計されているため、シェルスクリプトは適切な sh
スクリプトであり、最小限の依存関係しかありません。
ここでもSVN。 Rsyncまたはユニゾンは良いアイデアでしょう。ただし、場合によっては動作が停止することがあり、先週の.bashrcファイルには何が含まれていたのでしょうか。その場合、Svnは命の恩人です。
Live Mesh を使用して、すべてのファイルを複数のマシン間で同期します。
すべてのドットファイルをDropboxのフォルダーに入れ、各マシンにシンボリックリンクします。 1台のマシンで行った変更は、他のすべてのマシンでほぼすぐに使用できます。動作します。
環境によっては、(完全にバックアップされた)NFS共有を使用することもできます...
パブリックにドットファイルを保存することについて話す
and
しかし、これらのサービスはいずれもAPIを提供していないため、ファイルを手動で更新するのは本当に苦痛です。
後者は非常にミニマルです(連絡フォーム、作成者/所有者などに関する情報はありません)
briefcase は、ドットファイルをgitに保存するのを容易にするツールです。個人情報(.gitconfigなど)を使用します。
構成ファイルをgitパブリックgitリポジトリに保存することで、設定を他のユーザーと共有できます。秘密情報は、リポジトリの外部の単一のファイルに保持されます(このファイルのバックアップと転送はユーザー次第です)。