今回は使用している各PC、サーバでLinuxの環境設定をどのように管理、同期しているか紹介します。
環境設定の管理方法
Linuxにおけるユーザ毎の環境設定ファイルはホームディレクトリに隠しファイルとして配置されています。
通常これらはテキストファイルとなっているため、Gitなどを使用して簡単に管理する事ができます。
GitHubを利用した設定ファイルの管理
今回実際に行っているGitHubを利用した設定ファイルの管理、同期方法を紹介します。
GitHubでリポジトリを作成
まずGitHubでリポジトリを作成します、使った事のある方は読み飛ばしてください。
GitHubを使用した事がない方は、まずアカウント作成から始めてください。
リポジトリの作成は、ログインを行った後以下の方法で行います。
- 右上の【➕】から【New Repository】をクリックします
- 【Repository name】にわかりやすい名前(今回は
linux_environments
と指定)を入力します - 設定ファイルを公開したくない方は 【Private】、公開しても良い方は 【Public】にチェックを入れます
- 入力が完了したら 【Create repository】をクリックして完了です
ローカルにリポジトリを複製
GitHubではGitというツールを使用してファイルを管理します。
Gitについて知りたい方は公式ページを参照してください。
今の環境設定をリポジトリと同期するために、まずローカルにリポジトリを複製します。
複製する際に、 {user_name}
にGitHubのアカウント名を入力します。
( linux_environments
の部分は Repository name
で入力した名前に変更してください)
cd ~/
git clone https://{user_name}@github.com/{user_name}/linux_environments.git
管理する設定ファイルをコピー
管理対象とする設定ファイルをリポジトリ内にコピーします。
今回の説明では以下のファイルを対象としますが、必要に応じて管理するファイルを変更してください。
- .bashrc
shell起動時に一度実行されるファイル
環境変数の設定に使用される - .vimrc
vimに関する設定が書き込まれたファイル - .tmux.conf
tmuxに関する設定が書き込まれたファイル
cd linux_environments
cp ~/.bashrc ./
cp ~/.vimrc ./
cp ~/.tmux.conf ./
コピーした設定ファイルをGitHubにアップロード
コピーした設定ファイルをGitHubにアップロードします。git add
の後には先程コピーしたファイル名を入力します。
git add .bashrc .vimrc .tmux.conf
git commit -m "Initial commit"
git push origin master
同期する別環境で設定ファイルをダウンロード
同期させる別環境で設定ファイルを複製し、反映します。
cd ~/
git clone https://{user_name}@github.com/{user_name}/linux_environments.git
cd linux_environments
cp .bashrc ~/
cp .vimrc ~/
cp .tmux.conf ~/
複製し、ホームディレクトリへ反映後ターミナルを再起動すれば完了です。
設定ファイルの変更と同期
設定ファイルを変更した場合、各環境に同期する必要があります。
今回は .bashrc
を変更したものとして説明します。
設定変更した環境
設定変更したファイルをローカルのリポジトリへコピーし、GitHubへアップロードします。
cd linux_environemnts
cp ~/.bashrc ./
git add .bashrc
git commit -m "Change .bashrc"
git push origin master
設定を反映させる環境
変更されたファイルを各環境へ反映させます。
この作業は作業するサーバへログインした際に実施しています。
.bashrc
にローカルリポジトリを更新し、ホームディレクトリへ反映させるスクリプトを書いておけば自動的に同期させる事も可能です
cd linux_environments
git pull origin master
cp .bashrc ~/ # ここをすべてのファイルを対象にし ".bashrc" に書き込めば自動的に同期可能です
後書き
今回は実際に行っているLinux環境の設定ファイルをどのように管理しているか紹介しました。
今後機会があれば実際に使用している環境の設定を一部公開しようと思います。