どこでも同じ環境で開発する

一人アドベントカレンダー 2016 13 日目 by @takkyuuplayer

1行まとめ

Windows, Mac, Linux どこで開発することになっても、同じ環境を作りたい

概要

基本的に開発環境は Vagrant 上の ubuntu 16.04 だが、ホストマシンが Windows になったり Macになったりしている。どんな環境でもさくっと同じ環境を作れるようにしておきたい。

Vagrant 上の Ubuntu 環境構築

dotfiles の管理

.vimrc とか .zshrc とかいわゆる dotfiles は

$ git clone git@github.com:takkyuuplayer/dotfiles.git
$ make

で一通り揃うようにしてある。これ自体は別に Ubuntu に限定せず、 macや共用の開発サーバーでも同様に実行して、どの環境でも同じシェル操作を可能にしてある

Ubuntu 自体の環境構築

Itamae を使って Ubuntu 16.04.1 LTS (Xenial Xerus) の環境構築をしている。最新の Ubuntu LTS を追うようにしており、下位互換性は気にしていない。昔は centos を利用していたが, 標準リポジトリで入るパッケージのバージョンがいちいち古く、最新にするのが面倒なのでそのあたりの更新が早い ubuntu に移行した。

$ sudo apt-get update
$ sudo apt-get install -y ruby2.3 ruby2.3-dev git make
$ sudo gem2.3 i bundler --no-rdoc --no-ri
$ git clone git@github.com:takkyuuplayer/ubuntu-provisioning.git
$ make
$ make vagrant

で一通り揃う。

Macをホストマシンとする場合

Mac で使うパッケージの管理は Homebrew 及び mas-cli を使っており

$ git clone git@github.com:takkyuuplayer/dotfiles.git
$ make mac

で一通り揃う。はずだったのだが、一度 homebrew のバージョンアップをした際にmas-cli の方は壊れたのでやめてしまった。機を見てMac App Store も管理できるよう再構築しようと思う。

$ make brew_dump

で一通りバックアップが取れるようになっている。

Windows をホストマシンとする場合

Chocolatey を用いている。Chocolatey のインストール後、パワーシェルを管理者権限で開き

$ Invoke-WebRequest -Uri "https://raw.githubusercontent.com/takkyuuplayer/chocolatey-recipe/master/packages.config" -OutFile "packages.config"
$ choco install .\packages.config -y

で一通り揃う。バックアップは ChocolateyGUI の export 機能を使っている。

Linux Mint をホストマシンとする場合

こんなの を作っていたが、まだ動くのかは知らない。

まとめ

コマンド1発でプロビジョニングできるようにしておくと楽に元の環境に戻せるので、さくっとPCの初期化してみたり、新しいモノを試したりできる。おすすめだ。

次回予告

明日の担当も @takkyuuplayer です。