Webの開発マシンとしてUbuntuを導入しました。UbuntuでWeb開発する理由と開発マシンのセットアップ手順をまとめています。
UbuntuでWeb開発する理由
Web開発といえば多くの会社さんはMacbookを選択されると思います。僕も個人開発ではMacbookProを使用していました。
Ubuntuで開発する理由は、WindowsやMacはDockerとの相性が悪い(一言で遅い)ためです。
最近のWeb開発はDockerを使うのが一般的で、Windows/Macそれぞれ「Docker for Windows/Mac」が提供されており開発できなくはありませんが、イマイチ出来が良くなく(所説あり詳細不明)、遅いという致命的なデメリットがあります。
体感で画面遷移に4~5秒程度掛かり、正直ストレスが溜まります。今まで我慢していましたが、さすがにしんどくなりました。
Dockerは元々Linuxをターゲットに開発されているそうで親和性がよく、Ubuntu(Linux)であればローカルの開発環境でもソコソコ早いということを過去の案件で体感していたので、個人開発でも採用する形になります。
ちなみにその他の手段として
- ローカル環境はDockerを使わない
- VPSを借りてSSH経由で開発
などががありますが、コスパと生産性を踏まえてUbuntuマシンの導入に至りました。
インストール対象のPC
インストール対象のPCは以下の通りで、デュアルブートでセットアップします。
- IBM X1 Carbon
- OS:Windows10 pro
- CPU:core i5 5300u
- メモリ:8GB
- SSD:128GB
スペックがちょっと低いですがお試し導入なのでコスパを重視しました。
PCはネットで30,000円ほどでしたが、MacbookProだと中古でも9~10万くらい掛かるのでかなりお得かと思います。
Web開発マシンのセットアップ手順
ライブUSBを作成する
UbuntuのバージョンはLTSで最新のUbuntu 18.04.3 LTSにしました。2023年4月までサポートなので安心です。
USBの作成については以下の記事を参考にさせて頂きました。
https://linuxfan.info/make-linux-install-usb-on-windows
Ubuntuのインストール
USBを挿してブートメニューで起動ディスクを変更して、そのままインストールします。
ブートメニューはX1 Carbonの場合はPC起動直後にEnterキー→F12で選択できます。また、ディスク割り当てはWindowsを35GB、残り92GBをUbuntuに割り当てました。
Windows側の使用容量は、ESETを入れてWindowsUpdateで最新にした状態で26.1GB程度使用しており、約10GB余裕を持たせました。
Ubuntuのセットアップ(開発系以外)
こちらはお好みで。
alternatetab
Alt+Tでタブがアプリ単位でまとめられないようにするものです。
-
chrome-gnome-shell
をインストール$ sudo apt-get install chrome-gnome-shell
-
Chrome拡張を追加
GNOME Shell integration - Chrome ウェブストアGNOME Shell とその拡張機能リポジトリ を統合するブラウザー拡張機能です -
alternatetab有効化
以下から有効化します。
https://extensions.gnome.org/extension/15/alternatetab/
ファイヤーウォールの設定
インストールしないよりはマシ程度でインストールします。
Ubuntuソフトウェアからgufw
で検索してインストールし、有効化しておきます。
Ubuntuのセットアップ(開発系)
開発に必要なソフトウェア、パッケージをインストールしてきます。こちらはお好みで。
各種ソフトウェア
- Postman
- Chrome
- JetBrains系(toolbox, phpstorm, rubymine, datagrip)
- VSCode
Docker/Docker-Compose
Dockerは公式サイトの手順に従ってインストールします。
root権限なくても実行できるようにします。
Docker-composeは以下のコマンドでインストールできます。
$ sudo apt install docker-compose
anyenv/xxxenv
各種プログラミング言語をインストールします。今回は言語のバージョンを切り替えれるように、anyenv
を入れました。
続いてプログラミング言語です。今回はPHP(phpenv)とRuby(rbenv)をインストールします。
まずは必要なパッケージをインストールします。必要なパッケージはネットで調べれば出てきます。
$ sudo apt -y install gcc make zlib1g-dev build-essential libxml2-dev libssl-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libmcrypt-dev libreadline-dev libtidy-dev libxslt-dev autoconf
# 初期化
$ anyenv init
$ anyenv install --init
# rbenv
$ anyenv install rbenv
$ rbenv install 2.7.0
$ rbenv global 2.7.0
# phpenv
$ anyenv install phpenv
$ phpenv install 7.3.15
$ phpenv global 7.3.15
# 確認
$ anyenv versions
phpenv:
* 7.3.15
rbenv:
* 2.7.0
さいごに
anyenv系で結構ハマりましたが、無事セットアップと動作確認も取れました。
実際にアプリを動かしてみましたが、想定通りMacと比べると倍速くらいになったので開発効率が上がりそうです。