開発環境をMac/WindowsからUbuntuに移行した話
ホットエントリに挙がっていたこの記事に触発されて書きました。
はじめに
私は、さすらいの野良エンジニアです。システム開発歴は20年以上になり、現在は在宅で仕事をしています。先日ふと思い立って、サブで使っていたラップトップにUbuntuを入れました。その結果あまりに良すぎてメイン環境として普段使いするようになり、ラップトップではゲーミング性能が足りないので、余っていたデスクトップ機にもインストールして更に快適になってしまいました。
以降前の私の状況は下記です。
- メインで使っていたのは、Windowsデスクトップ(RTX2060でゲームもする)
- サブ機としてM1 Macbook AirとWindowsラップトップ(XPS13)を使っていた
- その他、N100ミニPCにUbuntuを入れてちょっとしたサーバーとして使用
- Windowsデスクトップ(RTX2060)が一台余っていた
ここから、現在の環境です。
- XPS13のSSDを差し替えてUbuntuをインストール
- Macは色々あって失われる
- 余っていたWindowsデスクトップにSSDを入れてUbuntuをインストール
- 旧Windowsデスクトップは予備として電源を切って置いてある
移行後の環境
Windows/Macで使っていたアプリ
Windows/Macで主に使っていたアプリたちです。これらが快適に使えるのであれば、OSはなんだって良いわけです。iOS系のアプリはあまり開発していないので、XCodeは必要としていません(たまに必要になるけど)。
- Chrome(◯)
- Vivaldi(◯)
- VSCode(◯)
- IntelliJ IDEA(◯)
- Android Studio(◯)
- Arduino IDE(◯)
- Flutter(◯)
- Slack(◯)
- Discord(◯)
- Zoom(◯)
- MS Office
- Terminal(◎)
- MySQL Workbench(◯)
- Explorer/Finder(◯)
- Steam(◯) / EPIC(×)
- Dropbox(◯)
- OneDrive(△)
- GoogleDrive(△)
まず、ほとんどのアプリが普通にUbuntuに用意されています。以前は、Linux版が無かったり、OSS版で機能が弱かったりしたのですが、今は開発元がNativeに対応したバージョンを出してくれています。これは、私がMacbookを本格的に使い始めた2013の環境に似ています。その頃のMacが同じようにほとんどのアプリがNativeに対応し始めて、更に実質UNIXだし開発に最適!とばかりにエンジニアたちがこぞってMacを使い始めたのを覚えています。
上のリストで◯を付けたものは、Ubuntu版が用意されています。これだけで、移行したくなりますよね?
Ubuntuの良いところ
まず、一番の利点は、本物のLinuxであることです。
MacのTerminalは一世を風靡しましたが、所詮は偽物です[1]。Appleは、OS部分のディレクトリ構成をコロコロ変更するので、色々仕込んだ仕組みがアップデートのたびに動かなくなったり、アンインストールできなくて残骸が残ったりするのが本当に駄目です。令和の現代において、Terminalを使うのであれば、WSL2の方がマシなぐらいです。
WSL2も良いですが、ホストとゲストOSの関係が隠蔽しきれずに難しい時がありますし、やはり複雑化は避けられません。.wslconfigを色々いじるのにうんざりすることも多かったと思います。
そして、これらに比べてUbuntuのTerminal(というかOSそのもの)は、なんと言っても掛け値も誤魔化しもない本物のLinuxです。裏でゲストOSが動いていたり、ディレクトリ構成がニセモノだったりすることもなく、LinuxのKernalとShellとTerminalを思う存分使うことができます。これはとても幸せでストレスがありません。
Windows/Macのように快適にデスクトップ環境を使いつつ、なんか気になったらLinuxのターミナルを使う。夢にまで見た環境がそこにあるのです。
(追記)「本物のLinux」とか「MacのTerminalは偽物」という記述が気になる方がいるようです。申し訳ございません。まずLinuxはUNIXクローンなので「本物のLinux」というのはちょっとしたジョークのつもりで書きました。そして「MacのTerminalは偽物」にはツッコミが入ることを想定して注釈を書いていたのですがそこまで読まれることは無かったみたいです。異論は認めます(というか私のほうが多分異論でしょう)。
パッケージマネージャ・アプリセンターが優秀
もともと、Linux系のOS[2]にはパッケージマネージャが付属しており、パッケージマネージャこそが本体と言っても過言ではない存在でした。なので、各ディストリビューションは、パッケージマネージャの改良に鎬を削っており、各々優秀です。
Ubuntuのパッケージマネージャは、Debian系のaptが使われていますが、収録されているパッケージは、最新のバージョンを追いかけており、種類も豊富で使い勝手が良いです。
以前のバージョンでは、snapのパッケージをインストールするアプリセンター(旧Ubuntuソフトウェア)は、日本語入力ができなかったり、色々問題が発生していましたが、現在のアプリセンターでは、そのような不具合はなく、割とプロプライエタリなアプリ(上記に挙げられているようなアプリたち)も収録されているので、デスクトップアプリのインストールは、アプリセンターがあればほとんど事足りるようになっています。
だから、私のように「2台目も・・・」とついつい複数台のUbuntuをセットアップしてしまっても、環境構築にかかる手間は極小で済んでいます。
デバイス系も大丈夫
デバイス系の認識も問題ありません。ネットワークアダプタ、Bluetooth、WebCam、キーボードマウスなど、私が使っているデバイスは問題なく認識しています。BluetoothマウスとAfterShokzも問題なく認識しました。Bluetoothヘッドセットに関しては、Ubuntu22.04LTSだとコーデックに問題があったので、今だったら23.10を使うかもうすぐ出る24.04LTSを使うのが良いと思います。
プリンタも大丈夫(追記)
Ubuntu導入当初、プリンタについて完全に失念していたのですが、なんか電源入れたら勝手に認識していました。Canonのプリンタはドライバが対応しているみたいです。
複合機なのでスキャナも使えるはずですが、そちらは確認できていません。
パフォーマンスも優秀(だと思う)
まず、デスクトップであればパフォーマンスに全く問題はありません。Windowsと比べても遜色なく動きます。むしろ、Windowsは謎のプロセスが常に裏で動いていて何もしていないのに急にファンが回り始めるなんてことも当たり前に起こりますが、Ubuntuの場合謎のプロセスという存在がなく、起動直後からアイドリング時にはほとんどCPUを使いません。静かでヒエヒエです。この点は何気に大きく、Ubuntuに移行してからでもたまにWindowsを起動するのですが、あの騒がしいマシンを起動するのかと思うと憂鬱な気分になります。
恐らく、同じメモリ容量だったら、Macが一番性能が良いです。これは間違いなくMacの良い点だと思います。しかし、Macの場合メモリ単価が非常に高いので(高いのはメモリだけじゃないけど)、その金をデスクトップPCで使えば、64GBや128GBのメモリを詰めるので我が軍が圧勝です。ガハハハ
Steamでゲームもできる
今回、Ubuntuに移行してみて一番の誤算であり、Ubuntuをメイン環境に切り替えるダメ押しとなったのが、Steamの存在です。Steamは、自社で出しているSteam DeckがLinuxベースなこともあり、Linuxの互換性に力を入れています。そのため、公式クライアントでLinuxネイティブな動作をサポートしているだけでなく、設定画面で互換性の項目をONにすることで、Windows版しか無いゲームも普通に起動します。グラボを詰んでいれば、重たいゲームも動きます。
NVIDIAのドライバ
ゲームをするのに気になるのが、グラフィックスドライバのサポートですが、こちらも問題ありません。恐らくAIをLinux環境で実行することが多いためだと思いますが、NVIDIAが公式のドライバを提供しています。これがあるので、ゲームでもWindowsと遜色ないパフォーマンスを発揮しますし、Stable-diffusionなどの生成AIも普通に使えます!
Ubuntuの気になるところ
基本的には良い点ばかりで、幸せに暮らしているのですが、気になる点が無くはないです。
Windowsが手放せない点
予備として、たまに起動しているWindows機ですが、なぜ必要になるかというと、以下の点です。
- Steam以外のゲームランチャー
- EPIC Games
- UPlay(UBISoft)
- EA Play
- Amazon Prime Gaming
- Unreal Engine
- 写真の貯蔵(Lightroomの古いのを使っている)
- MS Office
ほとんどゲームですね。SteamはLinux対応が手厚いですが、それ以外のランチャーはまだまだWindows中心なので、そうなってくるとWindowsを起動する必要があります。Unreal Engineは、Linux版もあるのですが、実験的な位置づけっぽいのでWindows版を使うのが無難そうです。
あとは、写真の貯蔵ですが、Lightroomのローカルインストール版を未だに使っていて、これもサポートが切れて久しいので、Ubuntuの写真管理アプリに移行しようかと思っています。が、数万枚の写真があるので腰が重い。
そして、MS Officeですね。これは、Google workspaceを使うことが圧倒的に多いのであまり使わないし、Office系のドキュメントが送られてきたときにはLibre Officeを使っていてほとんど問題ないので、起動することも少ないのですが、どうしても表示が崩れるとか互換性の問題があるときは、Windows版のOfficeが必要になります。
Bluetoothヘッドセットで問題が起きた
先程もちょっと書きましたが、22.04LTSのBluetoothヘッドセットのコーデックの性能的な問題があって、ハンズフリーヘッドセットとして使うと音質が非常に悪くなり、かつ音声の遅延がひどくなるという現象に悩まされました。これは、現時点での最新版23.10にアップグレードすることによって解消したのですが、もし今Ubuntuを導入したいと思っているなら、24.04LTSが出るのを待ったほうが良いと思います。今月中には出るはずなので。
クラウドストレージの対応が心もとない
Dropboxは、昔からLinuxをサポートしているのですが、OneDriveとGoogleDriveは公式サポートがありません(iCloudは知らない)。
それぞれ、有志のアプリが公開されていて、使えることは使えるのですが難点があります。
GoogleDriveの有志アプリは、FUSEを使ってリアルタイムにディレクトリ内のデータを表示する仕組みで、仕組み上ラグが酷いです。激しく読み書きするとすぐバグるので、「開発ディレクトリをGoogleDriveに置く」みたいな使い方は到底無理です。
OneDriveは、初回同期で同期してるディレクトリを初期化して、それいこう手動で同期する仕組みで、同期の手間がかかりますが、cronで自動化するなどすれば、こちらのほうが使い勝手は良いと思います。こちらは、本家の方が自動同期なので「開発ディレクトリを置く」みたいな使い方をするとすぐに同期がバグっていたので、私の使い方だと手動同期のほうが便利だったりします。
まとめると
非常に快適で幸せに暮らしています。細かく言うと色々と調整したり、ハマったりするポイントもあったりしますが、それは普段遣いとは言えない部分の話なので、今回は割愛します。
私個人としては、2010年代に起こった「開発者がみんなMacに移行する」みたいな話のUbuntu(Linux)版が起こりそうな予感がしています。Macは高くなりすぎて、UNIX環境も悪化してきているし、WindowsはWSL2など良いところも多いけど本物のLinuxにはかないません。
みなさんも、この週末あたり、Ubuntuをインストールしてみてはいかがでしょうか?
Discussion
オンラインで色々のサービスが充実してきて、ブラウザー上で作業がかなりできるようになってきました。でも、文書を紙に出力するにはMS Officeが必須ですね。お説の通りだと思います。
非エンジニアなんですが、コメントします。
結構参考になりました。ありがとうございます。
例のWindows10サポート終了=Windows11非対応問題もあり、後継OS検討は避けられない状況なので…
私もフルスペック?のOS(ディストリビューション)のベストとしてはUbuntuという結論になってます。
素人の私には、Ubuntuのネット情報が多いのもすごく重要です。
私は、使ってないですがプリンターのドライバー問題を気にされる方が多いみたいです。
ただ現状、私の場合はChromeOS Flexがメインになりつつあります。
不十分だろうとは思いますが、Linux開発環境もあるのでLinuxアプリが使えるのがメリットです。
次点でUbuntuとAndroidアプリが使いたいのでFydeOSって感じです。
エンジニアさんとは違い、十分なプログラミング環境まではいらないのでこんな選択になるのかも…
悩みはマイナーでなかなか情報がとれないところです…😅
非公式ではありますがHeroic Games Launcher等のアプリ使うことでLinuxでもEpicのゲームが遊べたりします。
ゲームを結構するのならだったらArchi Linux派生のManjaroもおすすめです
ここ気になったんですが真相が明かされぬまま記事が終わってしまった…
私はゲームしないからなのか、ずっと昔からLinuxです。Macは持っていた事はありますが、プログラム書いていたら寝てしまい、朝には熱でやられたようで、二度と起動しなくなり、それっきりです。
Linuxでは、最新のオープンソースが使えるのがありがたいです。色々とかじってみるのも気軽にできます。
分からない事があっても、大抵はググればわかります。Windowsの場合はネットに情報が出ていない事が多いと思います。お金払えばサポートがありますけど(ここ十年くらい、Windowsを使う開発の仕事はしていないので、最近の事はわかりません)。