仕事用マシンをMacBookProからUbuntuデスクトップに乗り換えて1ヶ月運用してみました
ainoya
こんにちは。開発支援グループの相野谷(@naokiainoya)です。
弊社にはエンジニアに貸与される開発用マシンを一定期間おきに買い換えるという制度があります1)2017年2月現在は2年おきとなっております。。その際のスペックは規定の予算内であれば対象者が自由に選定して良いことになっており、各自思い思いのスペックで購入申請をしています。
少し前に私も買い替えの時期を迎えたのですが、今回は思い切ってメインマシンをMacBook ProからUbuntuのデスクトップマシンに鞍替えすることにしました。
巷では、新型MacBook Proの初期不良問題を口火にMac以外の選択肢を検討する人が多くなってきているように感じます。私と同様、買い替えで迷われている方の参考になればとマシンの切り替えから1ヶ月程度経過しての私的感想をまとめてみました。
デスクトップ機への買い替えのきっかけ
メインマシンをMacBook ProからUbuntuデスクトップ機へ乗り換えるにあたって、以下のことを考慮しました。
- 職務領域がインフラ・サーバエンジニアなので、XCodeやAdobe製品等OSに制限が発生するような業務がない
- 業務上、運用しているサーバに近い作業環境にできたほうが脳内コンテキストスイッチの負荷が減るので何かと楽
- ディープラーニングや機械学習の計算のために高性能GPUを利用したかった2)実験的な利用のためにやはりクラウドよりローカルマシンに積んでおきたいという思いがありました
- GPU以外のパーツも強めにしたい
- 今まで使っていたMacBook Proは継続して使用可となったので、いざという時はmacOSでの作業が可能
また、Linux デスクトップ環境 2017 - k0kubun's blogを読み、「自分の環境でも何とかできそう」と思えたことが判断の大きな後押しになりました。
Ubuntuを採択したのは「一番使い慣れていた」からで、特に強いこだわりがあったわけではありません。デスクトップマシンで他のディストリを使った経験はあまりないですが、何かにつけmakeが必要なディストリだと本業が手につかなくなるかもしれません。
新マシンのスペック
マシンの購入は、保証や会社取引の便宜を考慮してBTOショップで発注しました3)もちろん、強いこだわりがあれば自分でパーツを選んで個別購入することも認められています。。スペックは以下の通り。当然ですが同予算のMacBookと比べて格段に高いパフォーマンスが出るマシンが組めます。
CPU | Core i7-6700K |
---|---|
メモリ | DDR4-2400 32GB |
マザーボード | ASUS Z170 PRO GAMING |
GPU | GTX1080 |
システムボリューム | SSD 300GB |
データボリューム | HDD 2TB |
Ubuntuのバージョンは16.04
を利用しています。
macOSで使っていたツールの乗り換え
乗り換えの検討で一番の悩みどころは「macOSで使っていたあれはUbuntuでできるの?」というところかと思います。乗り換えてから1ヶ月程度経ちましたが、現状は以下に紹介するツール群を使っています。ツール選びにあたっては、前述のk0kubun氏の記事や、Ubuntu Alternatives and Similar Software - AlternativeTo.netというサイトが参考になりました。
[ エディタ ] Visual Studio Code
macOSから使い続けていますが、体感ほぼ同じで使用できます。たまにCI環境の構築等でiOSのビルドをする場合は、リモートデスクトップでMacBookProに接続して作業しています。
[ ターミナル ] iTerm2 -> guake
グローバルホットキーでデスクトップにターミナル画面のオーバレイ表示(バイザー表示?)をトグルできるのが好みだったのですが、guakeで再現できました。
デフォルトではF11に全画面の切り替え、F12にオーバレイ表示の切り替えがマッピングされています。私は基本全画面表示を使っており、オーバレイ表示の切り替えをHHKB Pro2の右端Altキーにマッピングしています。
[ メモアプリ ] Quiver -> Visual Studio Codeのvscode-journalプラグイン
vscode-journal - Visual Studio Marketplaceで日付毎にメモを整理しています。どのワークスペースにいてもCtrl + Alt + Jキーでメモ書きを呼び出せる点が気に入っています。
Quiverのリッチさから比べるとかなり質素ですが、雑なメモ書き程度の用途と割り切って気ままに書きなぐっています。
[ ラウンチャー ] Alfred -> Synapse
Alfredはあまりカスタマイズせずにアプリの起動などライトに使っていた程度ですが、このユースケースだとSynapseで代替が効きました。
[ キーマップ ]
キーボードはHHKB Pro2(US配列)を使っています。内蔵スイッチ001000
の状態で、あまりカスタマイズせず使っています。スペースの右隣のキーをIME切り替えに使うために、F13キーに入れ替えたうえで機能をマッピングしています。
マウスはLogicool g700を使っていますが、ボタンのマッピングがマウス内蔵のメモリに保存される関係で設定に苦労しました。設定ツールのSetPointはlinux版がなかったので、virtualBoxにインストールしたwindows10からマウスの設定を弄るという曲芸でなんとかできました。曲芸技はUsing G700 on Linux through VirtualBox - YouTube を参考にしながら設定しました。
[ パスワード管理 ] 1Password (on Wine)
Windows版をwine経由で実行しています。Chrome拡張との連携も動作するのですが、動作に若干のラグがあります(特に初回起動時は数秒遅れる)。 そこそこストレスですが、パスワード入力の頻度はそこまで高くないので多分このまま使い続けると思います。
[ 社内コミュニケーション ] Chromeで問題なし
Slack, JIRA, Confluence, Trello, Qiita:TeamはChrome上で問題なく利用できました。これまで当たり前のように感じていましたが、社内ITがWebでプラットフォーム問わずアクセスできる環境にそろえておくと楽だなぁと感じました。
[ スクリーンショット ]
Ubuntuの設定でキーボード -> ショートカット、 タブ -> スクリーンショットの項目からキーマップが可能です。
困っていること
フォントが汚い
1ヶ月経つと慣れてしまいますが、文字表示の綺麗さはmacOSに比べるとやはり劣ります。あまりこだわりがないのでそのままになっていますが、適切なカスタマイズで表示が改善するのか興味があるところではあります。先の記事の通り、適当なフォントとIGZO液晶など高精細ディスプレイを使えば改善するようにも思えます。
Mission Controlやspacesの再現が難しい
Ubuntuにもワークスペースという仮想デスクトップの機能がありますが、マルチディスプレイ環境でワークスペース切り替えが画面単位で行えずちょっと不便です。また、Mission Controlで隠れているウィンドウを俯瞰できる機能に相当するものがありません。どちらもそこまで頻繁に使う機能ではないのでさしたる不便ではないのですが、ウィンドウスイッチャ周りの機能は個人的にもう少し研究が必要そうです。
まとめ
前職ではUbuntu機をメインに使っていたので馴染みはあったのですが、ここ数年ずっとmacOSオンリーな生活だったことから今回の乗り換えはとても不安でした。ところが蓋を開けてみると予想を超える使い勝手でした。まだ1ヶ月しか使用していませんが、最後に乗り換えてよかったポイントをまとめてみます。
Ubuntuデスクトップマシンにしてよかったこと
- マシンスペックが強くなったので並行作業時にリソースの節約について気にする必要が減った
- docker imageの掃除頻度が減った
- Slackがフリーズしにくくなった
- Scalaプロジェクトのコンパイル時間が1/3になった
- いろんなビルドが早くなった
- tensorflowの実行時間が早くなった。トライアルアンドエラーの待ちが減って感動
- Android Studioでandroid開発も可能そう(本格利用ではなくreact-nativeでプロトタイプ開発した感想)
とくに「ビルド時間が早くなった」のは大変なメリットです。ビルド待ちやテスト待ちの隙間時間は気を抜くと思考停止タイムになりがちです。当たり前のことですが、エンジニアの時間を無駄にしないために開発マシンのスペックは出来る限りいいものを選ぶべきだと思いました。エンジニア組織の開発生産性向上をミッションとするグループにいる身として、開発マシン提供の制度について重要性を見直し、これを一層よりよいものへ改善していきたいと考えています。
macOSからUbuntuへの乗り換えをおすすめできるケース
- 黒い画面での仕事がメインの人
- インフラ・サーバエンジニアな業務領域の人
- 必要なときにvirtualBoxやRDP等の代替手段でやり過ごせる業務環境
macOSからUbuntuへの乗り換えをおすすめできないケース
- 黒い画面以外での仕事がメインの人
- iOSアプリエンジニア
- Adobe製品をフル活用するデザイナ
- 乗り換えのためにmacOSを手放さなければいけない環境(困った時の代替がきかないため)