Mac開発環境のいろいろなものを Dropbox に移してみた
1. 目的
その昔、Gmail と Chrome の登場によって、PCリプレース時 や セカンドPC利用時に google アカウントを設定するだけで メール や ブックマーク がそのまま使えることに感動したことを今でも覚えている。
そんな事を懐かしみながら、開発環境のいろいろなものを Dropbox に置いて、セカンドPCでもちょっと設定するだけでメインPCと同じ開発環境のように普通に作業ができるか試してみた。
-
Dropbox に置いてみたもの
- iTerm2 の設定
- ~/.bash_profile
- ~/.vimrc (基本的な設定のみ。Unite.vimとかのプラグインものはまだ試してない。)
- ~/.ssh/config
- SSH private key
- anyenv, pyenv, pyenv-virtualenv
- aws cli コマンド
- IAM アクセスキー ID と シークレットアクセスキー
2. 準備、確認、必要なもの
MacOS
- macOS Mojave バージョン10.14.3
- シェルは Bash
- pyenv で python3.7.2 をインストールする際に、システム管理者権限が必要になる
Dropbox
-
Dropbox アカウント
-
Mac版Dropboxアプリインストール
- https://www.dropbox.com/ja/downloading
- インストールディレクトリは、/Users/ユーザー名/Dropbox/ (= $HOME/Dropbox)
3. 設定
Dropbox上に設定ファイル置き場を作る
$ mkdir $HOME/Dropbox/config
iTerms の設定を Dropbox に置く
その昔、Gmail と Chrome の登場によって、PCリプレース時 や セカンドPC利用時に google アカウントを設定するだけで メール や ブックマーク がそのまま使えることに感動したことを今でも覚えている。
そんな事を懐かしみながら、開発環境のいろいろなものを Dropbox に置いて、セカンドPCでもちょっと設定するだけでメインPCと同じ開発環境のように普通に作業ができるか試してみた。
Dropbox に置いてみたもの
- iTerm2 の設定
- ~/.bash_profile
- ~/.vimrc (基本的な設定のみ。Unite.vimとかのプラグインものはまだ試してない。)
- ~/.ssh/config
- SSH private key
- anyenv, pyenv, pyenv-virtualenv
- aws cli コマンド
- IAM アクセスキー ID と シークレットアクセスキー
MacOS
- macOS Mojave バージョン10.14.3
- シェルは Bash
- pyenv で python3.7.2 をインストールする際に、システム管理者権限が必要になる
Dropbox
-
Dropbox アカウント
-
Mac版Dropboxアプリインストール
- https://www.dropbox.com/ja/downloading
- インストールディレクトリは、/Users/ユーザー名/Dropbox/ (= $HOME/Dropbox)
3. 設定
Dropbox上に設定ファイル置き場を作る
$ mkdir $HOME/Dropbox/config
iTerms の設定を Dropbox に置く
$ mkdir $HOME/Dropbox/config
参考
https://qiita.com/reoring/items/a0f3d6186efd11c87f1b
iTerm2ファイルを置く場所を作成
$ mkdir $HOME/Dropbox/config/iterm2
iTerm2 ⇒ Prefernce ⇒ General の Preferences ⇒
Load preferences from a custom folder or URL にチェックを入れる
Save changes to folder when iTerm2 quits にチェックを入れる
セカンドPCでも同じ設定を行うことで、iTerm2 の設定を共有できる。
~/.bash_profile を Dropbox に置く
bash_profile ファイルを置く場所を作成
$ mkdir $HOME/Dropbox/config/bash
空の bash_profile ファイルを作成する
$ touch $HOME/Dropbox/config/bash/bash_profile
~/.bash_profile に「source ~/Dropbox/config/bash/bash_profile」という行を追記する
$ echo "source ~/Dropbox/config/bash/bash_profile" >> ~/.bash_profile
~/.vimrc を Dropbox に置く
vimrc ファイルを置く場所を作成
$ mkdir $HOME/Dropbox/config/vim
~/.vimrc を $HOME/Dropbox/config/vim ディレクトリにコピーする
$ cp ~/.vimrc $HOME/Dropbox/config/vim/vimrc
Dropbox の bash_profile ($HOME/Dropbox/config/bash/bash_profile) に次の行を追記する
alias vim='vim -u ~/Dropbox/config/vim/vimrc'
シェル再起動
$ exec $SHELL -l
エイリアス確認
$ alias vim
alias vim='vim -u ~/Dropbox/config/vim/vimrc'
~/.ssh/config と SSH private key を Dropbox に置く
(ついでに、ワンファイルカオス状態の ~/.ssh/config の分割整理)
参考
https://qiita.com/masa0x80/items/ecb692ad93f7d06a07b0
ssh config と SSH private key ファイルを置く場所を作成
$ mkdir $HOME/Dropbox/config/ssh
$ mkdir $HOME/Dropbox/config/ssh/config
$ chmod 700 $HOME/Dropbox/config/ssh/config
$ mkdir $HOME/Dropbox/config/ssh/privatekey
$ chmod 700 $HOME/Dropbox/config/ssh/privatekey
移行手順メモ
(1) 「~/.ssh/config」 の Host 設定をサービス毎用・途毎にファイルを分けて $HOME/Dropbox/config/ssh/config ディレクトリに置く(パーミッションを600にする)
(2) SSH private key ファイルを $HOME/Dropbox/config/ssh/privatekey ディレクトリに置く(パーミッションを400にする)
(3) $HOME/Dropbox/config/ssh/config の各Host情報の IdentityFile パスを Dropbox 上の private key ファイルへのパスへ変更する
(4) Dropbox へ移した設定を「~/.ssh/config」 から削除して、「Include ~/Dropbox/config/ssh/conf/*」 行を追記する
移行例
(1) 用途ごとの config ファイルを作成 → $HOME/Dropbox/config/ssh/conf/gitlab (パーミッション600)
Host gitlab
Hostname <real host name>
Port 22
User git
IdentityFile ~/ssh/privatekey/gitlab
(2) gitlab サーバの秘密鍵を置く → $HOME/Dropbox/config/ssh/privatekey/gitlab (パーミッション400)
(3) IdentityFile のパスを Dropbox 上の private key ファイルへのパスへ変更する
Host gitlab
Hostname <real host name>
Port 22
User git
IdentityFile ~/Dropbox/config/ssh/privatekey/gitlab
(4) 「~/.ssh/config」の設定(今回 「~/.ssh/config」をすべて移した)
Host *
ServerAliveInterval 60
TCPKeepAlive yes
UseKeychain yes
UserKnownHostsFile=/dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentitiesOnly yes
Include ~/Dropbox/config/ssh/conf/*
anyenv, pyenv, pyenv-virtualenv を Dropbox に置く
参考
https://qiita.com/zaburo/items/8ac16133c3823c6e6ad6
https://medium.com/@riywo/anyenv-all-in-one-for-env-6423d23b0838
anyenv のインストール
- Dropbox上にインストールする
$ git clone https://github.com/riywo/anyenv ~/Dropbox/anyenv
- $HOME/Dropbox/config/bash/bash_profile に次の行を追記
export ANYENV_ROOT="$HOME/Dropbox/anyenv"
export ANYENV_DEFINITION_ROOT="$ANYENV_ROOT/anyenv-install"
export PATH="$ANYENV_ROOT/bin:$PATH"
- シェル再起動(上記設定を即時反映させる)
$ exec $SHELL -l
- 初期化
$ anyenv install --init
Manifest directory doesn't exist: /Users/nishimura.toru/Dropbox/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
Cloning https://github.com/anyenv/anyenv-install.git master to /Users/nishimura.toru/Dropbox/anyenv/anyenv-install...
Cloning into '/Users/nishimura.toru/Dropbox/anyenv/anyenv-install'...
remote: Enumerating objects: 44, done.
remote: Counting objects: 100% (44/44), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 44 (delta 1), reused 43 (delta 1), pack-reused 0
Unpacking objects: 100% (44/44), done.
Completed!
- $HOME/Dropbox/config/bash/bash_profile に次の行を追記
ln -nfs $ANYENV_ROOT/libexec/anyenv $ANYENV_ROOT/bin/anyenv
eval "$(anyenv init -)"
※ Dropbox に入れた anyenv や pyenv を複数PCから 使う場合は、bashログイン時に強制的にシンボリックリンクを張り直す設定を入れておく必要がある。
- シェル再起動(上記設定を即時反映させる)
$ exec $SHELL -l
- インストールできる **env の種類を確認
$ anyenv install -l
Renv
crenv
denv
erlenv
exenv
goenv
hsenv
jenv
luaenv
nodenv
phpenv
plenv
pyenv
rbenv
sbtenv
scalaenv
swiftenv
pyenv のインストール
- $HOME/Dropbox/config/bash/bash_profile に次の行を追記
export PYENV_ROOT="$HOME/Dropbox/anyenv/envs/pyenv"
- シェル再起動(上記設定を即時反映させる)
$ exec $SHELL -l
- pyenv をインストール
$ anyenv install pyenv
- $HOME/Dropbox/config/bash/bash_profile に次の行を追記
ln -nfs $PYENV_ROOT/libexec/pyenv $PYENV_ROOT/bin/pyenv
eval "$(pyenv init -)"
※ Dropbox に入れた anyenv や pyenv を複数PCから 使う場合は、bashログイン時に強制的にシンボリックリンクを張り直す設定を入れておく必要がある。
- シェル再起動(上記設定を即時反映させる)
$ exec $SHELL -l
- 確認
$ anyenv versions
pyenv:
* system (set by /Users/nishimura.toru/.anyenv/envs/pyenv/version)
※ pyenv はデフォルト(system)を指している
- インストール可能な Python バージョンの確認(2019/03/18時点での最新 3.7.2)
$ pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
〜
- pyenv 3.7.2 インストール
参考
https://qiita.com/HeRo/items/c8649469922990163eab
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
$ brew install [email protected]
$ CONFIGURE_OPTS="--with-openssl=$(brew --prefix [email protected])" pyenv install 3.7.2
※[email protected] インストールするときにシステム管理者権限が必要になる
- 確認
$ anyenv versions
pyenv:
* system (set by /Users/nishimura.toru/Dropbox/.python-version)
3.7.2
※3.7.2が追加された。
- 3.7.2 に変更する
$ pyenv local 3.7.2
$ anyenv versions
pyenv:
system
* 3.7.2 (set by /Users/nishimura.toru/Dropbox/.python-version)
$ python -V
Python 3.7.2
- system バージョンに戻る場合は
$ pyenv local system
$ anyenv versions
pyenv:
* system (set by /Users/nishimura.toru/Dropbox/.python-version)
3.7.2
pyenv-virtualenv のインストール
- $HOME/Dropbox/anyenv/envs/pyenv/plugins の中にインストールする
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/Dropbox/anyenv/envs/pyenv/plugins/pyenv-virtualenv
- $HOME/Dropbox/config/bash/bash_profile に次の行を追記
eval "$(pyenv virtualenv-init -)"
export PATH="$HOME/Dropbox/envs/pyenv/shims:$PATH"
- シェル再起動(上記設定を即時反映させる)
$ exec $SHELL -l
aws cli コマンド を Dropbox に置く
- pyenv-virtualenv で awscli 環境を作る
$ pyenv virtualenv 3.7.2 awscli
$ pyenv rehash
$ pyenv local awscli
- 確認
$ anyenv versions
pyenv:
system
3.7.2
3.7.2/envs/awscli
* awscli (set by /Users/nishimura.toru/Dropbox/anyenv/envs/pyenv/bin/.python-version)
- aws cli をインストール
(awscli) pip install --upgrade pip
(awscli) pip install awscli
(awscli) aws --version
aws-cli/1.16.125 Python/3.7.2 Darwin/18.2.0 botocore/1.12.115
- system環境に戻る
$ pyenv local system
$ anyenv versions
pyenv:
* system (set by /Users/nishimura.toru/Dropbox/anyenv/envs/pyenv/bin/.python-version)
3.7.2
3.7.2/envs/awscli
awscli
IAM アクセスキー ID と シークレットアクセスキー Dropbox に置く
参考
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-envvars.html
- IAMキーファイルを置く場所を作成
$ mkdir $HOME/Dropbox/config/aws
$ chmod 700 $HOME/Dropbox/config/aws
- $HOME/Dropbox/config/bash/bash_profile に次の行を追記
export AWS_CONFIG_FILE="$HOME/Dropbox/config/aws/config"
export AWS_SHARED_CREDENTIALS_FILE="$HOME/Dropbox/config/aws/credentials"
- シェル再起動(上記設定を即時反映させる)
$ exec $SHELL -l
- 「~/.aws/config」 ファイルを $HOME/Dropbox/config/aws/config ディレクトに置く
「~/.aws/credentials」 ファイルを $HOME/Dropbox/config/aws/config ディレクトに置く
awscli 環境に入って aws cli 動作確認」
$ pyenv local awscli
$ aws s3 ls --profile <プロファイル名>
4. セカンドPC側の設定
Mac版Dropboxアプリインストール
~/.bash_profile
source ~/Dropbox/config/bash/bash_profile
- ~/.ssh/config
Host *
ServerAliveInterval 60
TCPKeepAlive yes
UseKeychain yes
UserKnownHostsFile=/dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentitiesOnly yes
Include ~/Dropbox/config/ssh/conf/*
Mac版Dropboxアプリインストール
~/.bash_profile
source ~/Dropbox/config/bash/bash_profile
Host *
ServerAliveInterval 60
TCPKeepAlive yes
UseKeychain yes
UserKnownHostsFile=/dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentitiesOnly yes
Include ~/Dropbox/config/ssh/conf/*
Author And Source
この問題について(Mac開発環境のいろいろなものを Dropbox に移してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/tonishy/items/467f258614cc6fa96fe9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .