Web系エンジニア必須の環境設定 <その2>ssh接続 は全てsshrc
前回の続き。
週に1度でもサーバーにssh接続して作業するなら生のsshを使わずにsshrcにしましょう、と。普通にsshをするとvimの設定なんかの全ての設定がサーバーの設定に依存する。vimでサーバーファイルを編集していて、いつものキーバインドを使っても「アレ?効かない!」なんてことが少なからずイラっとさせる。
これを解消するのがsshrc。sshした際に手元の管理ファイルをサーバー側で一旦読み込んでくれる。抜ければ元に戻る。サーバー側の設定を一切汚さずに自分好みの設定ができるという優れもの。
いちいちサーバー側にGitHubに入れたdotfilesをcloneして使う、とやる例を見たことあるけど、面倒臭過ぎるだろそれ。
設定環境:MacOS
公式ページ
github.com
インストール方法
$ brew install sshrc
終わり。
設定ファイルを作る。
vimrc以外にもいろいろ読み込む場合に備えてsshrc用のフォルダを作ってそこに全てのsshrc設定を入れ込む。ただし64kb以上を入れ込むとブロックされるのでご注意を。
$ cd $ mkdir ~/.sshrc.d $ cp .vimrc ~/.sshrc.d/.vimrc $ vim ~/.sshrc.d/.vimrc いろいろ編集する
コピーしたファイル.sshrc.d/.vimrcの中身を編集してサーバーに持って行きたい設定だけにする。例えばキーバインドの設定だけを残してNeoBundleとかは全て削除する、とか。いちいちサーバーに接続した先のカラースキームまで気にしないわ、とお考えならその設定を削った方がいい。
これでsshrcをした際にsshrc.d配下のvimrc が読み込まれる。
.sshrcファイルを作る。
$ cd $ vim .sshrc
.sshrcの中身に以下を貼り付けて保存する。
export VIMINIT="let \$MYVIMRC='$SSHHOME/.sshrc.d/.vimrc' | source \$MYVIMRC"
これで設定は終わり。
サーバーに接続して設定が読み込まれるか確かめる。コマンドはsshrc
$ sshrc my_name@myserver.com
しょうもないストレス無し!快適!であればaliasに設定してsshすればいつでもsshrcとなるようにする。
alias ssh='sshrc'
以上です。
Web系エンジニア必須の環境設定 <その1>dotfilesをGitHubで管理
シンガポールからヨーロッパに来てもソフトウェアエンジニアとしての職種が同じで言語も英語なので「やってることほぼ同じだな」と感じることがほとんど。そして開発の環境設定もほぼ同じ。人種国籍問わずエンジニアなら「これはやってるだろー」というような設定をまとめた。と、言うのもたまーになぜかやってない人が居たりして「こういう方法があるよ」と教えてあげると喜んでいただけるからだ。
誰もがやってること = とても需要があってかつその設定が支持されている
のだと思う。
あくまで必須項目に絞ったので、エディタはVimかEmacsかとかの宗教に踏み込むつもりはない。永遠に結論の出ることが無い話ではなく「それぐらいのことやってるだろーフツー」という内容だけ。なので熟練のエンジニアの方は当然過ぎる話で面白くもなんともないと思われる。主に学生さんとか若い方向けとしてください。
全てのdotfilesをGitHubで管理する
.vimrc,.bash_profileなどファイル名の先頭にドットが付いた管理ファイルを全てまとめてGitHubで管理すること。こうしておけばMacBookが変わっても、転職を機に会社のコンピュータを返却しても、国境を超えて引っ越ししても、いつでもどこでもGitHubからクローンするだけでいつもの親しんだ環境がすぐに実現できる。
コンピュータが変わるたびにゴリゴリ設定を書く必要が無くなる。
動作環境:MacOS
自分のディレクトリにdotfilesという名のフォルダを作る。
$ cd $ mkdir dotfiles
現行のファイルをdotfiles配下に移す。(私は好みで先頭にドットを付けると隠れファイルになるのがイヤでドットを付けないファイル名としている。ここはお好み次第)
$ mv .vimrc dotfiles/vimrc $ mv .bash_profile dotfiles/bash_profile $ mv .agignore dotfiles/agignore $ mv .tmux.conf dotfiles/tmux.conf 管理したいファイル分を繰り返す
シンボリックリンクを作成する。以下の内容のシェルスクリプトを作成し、dotfiles_links.shという名で保存する。
ln -sf ~/dotfiles/vimrc ~/.vimrc ln -sf ~/dotfiles/bash_profile ~/.bash_profile ln -sf ~/dotfiles/agignore ~/.agignore ln -sf ~/dotfiles/tmux.conf ~/.tmux.conf
実行権を与えて、実行する。
$ chmod +x dotfiles_link.sh $ ./dotfiles_link.sh
GitHubにログインして左上の+ボタンを押す。新しいリポジトリを作る。リポジトリ名はdotfilesとしておく。
$ git init $ git add . $ git commit -m "first commit" $ git remote add origin git@github.com:<Your Account Name>/dotfiles.git $ git push -u origin master
他のコンピュータにこの設定を持ってくる時
$ cd $ git clone https://github.com/<Your Account Name>/dotfiles.git $ cd dotfiles $ chmod +x dotfiles_link.sh $ ./dotfiles_link.sh
これだけ。
このちょっとしたことで貴重な時間をしょうもない設定作業に費やすことが一切無くなる。
朝っぱらから路上でゲイがディープキスしているのがベルリン
今朝、出勤するためにベルリンの美しい街を歩いているとヒゲを生やした中年小太りのゲイが二人でキスをしていた。軽い挨拶程度のキスではない。お互いの腕を絡ませて、抱きついて、ブッチュー、、、、、、とかなりディープだった。朝の9時半の路上で。
で、これこそがベルリンだなーと。
(ベルリン地下鉄の広告)
娘を通して仲良くなったドイツ人夫婦のご自宅におじゃました際にそこの奥さんが興味深いことを言っていた。「ベルリンにはすべての人に居場所があるのよ。人種や年齢、性的趣向にかかわらず全ての人にね」
この言っている意味はなんとなく分かる。とにかくベルリンには様々な人が居る。ただ居るだけではなく、ベルリンの街がいろんな人の多様性を許容しているのが街に居るだけで伝わってくる。
理由は第二次世界大戦中においてドイツの不幸な歴史があって、戦後にその反省を踏まえていたこと。東西に分断されていたベルリンがひとつになってドッと人が流れ込んできたこと。最近では不景気になりつつある他のヨーロッパの都市の中で、外からの人を飲み込み続けて好景気を維持しているベルリン。
シンガポールで暮らしていた時にもその人種の多様性には目をひいた。しかしシンガポールの多様性とは政府の管理の元にできあがった多様性だった。つまりシンガポール政府がターゲットにした金持ち外国人と日雇労働者をきっちり管理して集めました、という国家だ。
ベルリンの人の集まり方にそういう秩序は無い。「変なヤツもいっぱい居るけど、まーいいか」な感じがありありとする。
そういう雑多な集まり方でプロダクトを作るITチームを編成すれば、そりゃーおもしろいモノができあがるわ、と思っていて今のスタートアップのチームメンバーからもそういうワクワク感を感じている。
なんかとってもベルリンが好きになってきた。