WSL2とUbuntuでWindowsの開発環境を構築する方法
今回はWindowsの開発環境構築の記事になります。
この記事を書くにあたった経緯
これまで、開発環境という言葉は聞いたことあったけど実際に意識して自己学習をしたりといったことは全くやっていませんでした。なので開発環境の構築が大変だという意味もいまいちよくわかっていませんでした。ただ、なんとなく知っていたのは、チーム開発や、大規模開発の開発環境構築はLinuxで行うほうがいいというざっくりしたもの。
なんで?とは思っていたけど放置していました。スキルシートを更新するにあたり、自分が携わった案件の開発環境を見直したりする機会があり、ちゃんと知らなきゃなと思いいろいろ調べて自分なりに理解したのでここに記録として残します。
なぜLinuxで開発したいのか
そもそもなんでLinux?初心者の頃は特にこれにひっかる気がします。WindowsとかMacでも別に開発できるしって、、
ここではLinuxで開発するメリットについて簡単に確認していきましょう。
Linuxとは
そもそもLinuxが何者かについて見ていきたいと思います。
Linuxとはオープンソースソフトウェア(OSS)のOSです。
オープンソースソフトウェア: ソースコードが公開されているソフトウェア
OS: コンピュータを動かすために必須のソフトウェア
つまりLinuxとは
世界中の人が自由に使えるコンピュータを動かすためのソフトウェアということです。
ということは、Windowsを使ってる人もMacを使ってる人もLinuxは無料で使えるということですね。これが最大の特徴であり、チーム開発を行う上で重要だということです。これによりチーム開発を行う際にチーム間のPCが異なるOSだとしても、同じ環境で開発する体制が容易に構築できるようになります。
他にもLinuxを利用するメリットはたくさんあります。下記にメリットの一覧を記載しています。
-
オープンソースの環境:
Linux はオープンソースのオペレーティングシステムであるため、無償で入手できます。また、多くの開発ツールやソフトウェアもオープンソースで提供されており、開発者は無料で利用できます。これにより、開発コストを削減できます。 -
カスタマイズ性と柔軟性:
Linuxはカスタマイズ可能で、必要に応じてシステムを調整できます。カーネルやパッケージを自分でコンパイルして組み込むことも可能です。これにより、特定のアプリケーションやプロジェクトに最適な環境を作成できます。 -
パフォーマンス:
Linux カーネルは優れたパフォーマンスを提供し、リソース効率が高いです。これは、サーバーや組み込みシステムなどのリソースが限られている環境で特に重要です。また、Linux は多くの大規模なウェブサーバーやクラウドプロバイダーで広く使用されており、高いスケーラビリティを提供します。 -
豊富な開発ツール:
Linux プラットフォームは多くのプログラミング言語や開発ツールに対応しています。GCC、Python、Ruby、Node.js、PHP などのプログラミング言語の開発環境が豊富に用意されており、開発者は多様な技術スタックでアプリケーションを開発できます。 -
コミュニティとドキュメンテーション:
Linux は広大なコミュニティに支えられており、問題の解決や技術的なサポートを受けやすい環境です。さまざまなオンラインフォーラム、ドキュメンテーション、チュートリアルが利用可能で、問題の解決に役立ちます。 -
セキュリティ:
Linux はセキュリティに強力で、多くのセキュリティ機能が組み込まれています。また、オープンソースの性質から、セキュリティの問題が発見されやすく、修正が迅速に行われます。 -
開発者向けツールとコマンドラインインターフェース(CLI):
Linux は強力なコマンドラインツールを提供し、効率的な開発作業をサポートします。また、シェルスクリプトを使った自動化やバッチ処理が簡単に行えます。
このように、Linuxというのは開発者にとって非常にメリットが大きいことがわかります。無料で使えて、安全性も高く、柔軟性に富んでいるのは魅力的ですね。
Linuxディストリビューションとは
Linuxというのはコンピュータを動かすためのソフトウェアという話をしましたが、Linuxは狭義の意味と広義の意味で受け取り方が少し変わります。まず、狭義のLinuxというのはLinuxカーネルのことを指します。このカーネルというのはコンピュータの機能のコアを司るものです。しかしOSはこのカーネルのみではコンピュータを実際に動かすことはできません。実際に動かすためには、カーネル以外に別のソフトウェアが必要になってきます。
つまりLinuxというのは、「Linuxカーネル」と「それを取り巻くソフトウェア」のセットということができます。このセットのことをLinuxディストリビューションといい。一般的にLinuxというのはLinuxディストリビューションのことだと思って差し支えないと思います。Linuxディストリビューションの例としては
- Ubuntu
- openSUSE(Leap)
- MageiaferenOS
- Linux mint
- ZorinOS
などがあります。先ほどのカーネルを取り巻くソフトウェアの種類によって異なるので、プロジェクトごとに選定するのがいいかと思います。
WSL
- WSLとは
Windows Subsystem for Linuxの略で、Windows上でLinuxディストリビューションを実行できるようにする技術です。
WSLを使用すると、Windows環境内でLinuxのコマンドラインツールやアプリケーションを実行できたり、Windowsのファイルなどにアクセスすることができる(WSL1)。これにより、WindowsとLinuxの両方の利点を組み合わせることができます。
WSLには2種類ありWSL1とWSL2です。WSL2はWSL1のほとんど上位互換に当たります。アーキテクチャの相違点は下記図が示している通りです。しかし、WSL1を使用するメリットもあります。下記図のように、WSL1ではWindowsカーネルを使用しているため、WSLからWindowsファイルなどへのアクセスが簡単にできます。
基本的には、WSL2を採用すればいいかと思いますが、用途によりWSL1を利用するのもいいかもしれません。
WSL2は、Windows Subsystem for Linuxの新しいバージョンで、Hyper-Vを使用して完全なLinuxカーネルを仮想化する方式を採用しています。これにより、ファイルI/Oやネットワーキングなどのパフォーマンスが向上し、Linuxディストリビューションをよりネイティブに実行できるようになりました。WSL2は、Linuxベースの開発環境をWindows上で簡単にセットアップし、開発者にとってかなり便利です。
- WSL(Ubuntu)のインストール方法
対応バージョン
- windows10 バージョン2004以降
- windows11
コマンドプロンプトかPowerShellの管理者権限で書きコマンド実行
wsl -install
このときオプションを指定することで、Linuxディストリビューションをインストールすることができます。何も指定しない場合は、Ubuntuがインストールされます。
再起動を求められるので再起動する。
初回は自動でwslのターミナルが立ち上がります。手動で立ち上げる時は、コマンドプロンプトかPowerShellでwslと入力するとWSLのターミナルが起動します
Ubuntuを利用する方法
※詳しくはこちらを参照ください
Microsoft storeにいき「Ubuntu」と検索して一番最初に出てきたものをインストールします。
インストールが完了したら、開くというボタンを押します。するとコマンドラインが立ち上がるのでそこでユーザ設定を行います。ユーザ名とパスワードを入力します。(適当に決めていいと思います)
※このとき、パスワードは入力してもコマンドライン上には表示されません
次にUbuntuのアップデートを行います。次のコマンドを入力しインストール可能なパッケージ一覧を取得します。ます。この時パスワードが求められます。
sudo apt update
次に書きコマンドで、パッケージのアップグレードを実行します。
sudo apt upgrade
次にUbuntuのリリースアップグレードを行います。下記コマンドでvimを立ち上げます。
sudo vim etc/update-manager/releace-upgrade
この中を下記のように変更します。(最初はltsになっています)
prompt=normal
最後に下記コマンドでバージョンアップします。
sudo do-releace-upgrade
VSCodeとの接続方法
次にVSCodeでUbuntuの環境にアクセスする方法を解説します。
VSCodeを開きます。拡張機能で下記のものをインストールします。
次にVSCodeの左下にあるボタン(赤丸で囲っている部分)をクリックします
コマンドパレットが開いて、「新しいWSLウィンドウ」を押します。すると、新しいウィンドウが開きます。
先ほどの左下のボタンの箇所が「Ubunts」となっていれば成功です。
Discussion