📝

(注意が多い)WSLを個人開発で使う時の環境構築

2023/08/29に公開

https://qiita.com/items/84674c0581380aa9acc8


お詫び

Qiitaの元記事にて、区切り線を「---」で書いている場所があり、これがZennの記法に干渉して一部うまく表示できない記事がある事を認識しています。
全ての記事を精査しきれていないため、お手数ですがお見かけの際は教えていただけると大変喜びます。


ごあいさつ

古い記事を参考にしながら試行錯誤をしていたが、既にリンク切れになっていたりもっと良い物が出ていたりしたので、古い記事を修正するより新しく出した方がわかりやすいな、と思って新記事にしてます。
似たような記事はいくつか出してますが、ここでは過去の記事を見なくても良いよう、重複を含む事にしました。
必要であれば適宜参考リンクを張りますが、原則リンク先から引用する形でまとめておきたいと思います。
(後日、自分で見たときに絶対にハマるだろうことを見越して)

本稿のゴール

  • WSLをリセット・クリーンインストールした後でも安心・安全な状態で稼働できるようにする
  • 同じディストリビューションなら使い回せるように手順やコードを整備する

結論

環境が壊れるかもしれないので、はじめてやる場合は使っていないディストリビューションでやりましょう。
Windows10 ProユーザーならHyper-Vも使えますので、いきなり手元にできあがっている開発環境を使って動かなくなって困るような状況にしないように注意しましょう。

前提

  • 本稿ではUbuntuでやってます。
  • 事前にWindows側のWSL関連の設定を完了されているものとします。
  • 再起動もお忘れなく!
  • どうせ後で削除(修復・リセット)をするだろうと考えているので動けばOKの現場猫主義な構築です。

手順

1. なにはともあれ、apt

sudo apt update && \
sudo apt upgrade -y

説明不要ですね。
echo (password) | sudo -Sで実行するとパスワード入力をスキップできます。
念の為、history -cをやっておくとウッカリパスワードを流出!という事も防げます。(※悪用厳禁)

初回実施時はsudo apt autoremove -yは要らないですが、気がついたタイミングで使われなくなったパッケージを削除しておきましょう。

2. linuxbrewをインストールする

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

# 実行後に ==> Next steps:が出てくるので、その手順を実施
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/ubuntu/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
sudo apt install build-essential

brew update  # Already up-to-date.と出力されるはずだが、何らかの成功メッセージが表示されれば完了

これで心置きなく、(brewが使えるようになったので)Mac環境の記事も参照できるようになります。

補足

updateはaptとbrewの両方を実施する必要があります。

brew upgrade

brew updateはbrew自体の更新で、upgradeはbrew自体とパッケージも含みます。
なので、基本的にはbrew upgradeだけで良さそうです。

ウッカリやりがちですが、apt installよりbrew installを心がけたほうが、せっかくのbrewを活かしやすいです。

注意!

brewsudoで実行できません。
つまりbrewで入れたパッケージをsudoで実行できません。

よくあるのが、npmやらgemで入れたパッケージをグローバルで使いたい場合やどうしてもsudoを求められる場合はbrewで入れることができません。
あえて使い分けるなら、globalで実行するものは環境に依存しないもの、brewで実行するもの(local)は環境に依存するものとして管理するとバージョン差異を吸収できます。

3. 開発環境を整備する

長期的に運用するなら、運用専門のディストリビューションを決めてそちらで使ったほうが良いです。
というのも、linuxbrew + anyenv + ○○envの構成は、パッケージ管理のアプローチが冗長すぎてパスで躓く事が考えられます。
(例:github-changesgithub_changelog_generator

こういう可能性もあるので、凝った運用をする場合はパッケージ管理しすぎ問題を回避する方が望ましいでしょう。
とはいえ、anyenv自体は非常に便利で使い勝手が良く、これ自体が干渉することはないのでお使いの環境にあった構成をするのが良いでしょう。

3.0. anyenvを導入する前に

  1. まずはbrewで環境を整えてみて、動く状態を作ります。
  2. 動くものをanyenvで実行するディストリビューションに移行し、環境を作ります。
  3. anyenvで入れた環境で動けばOK、動かなければ再検討をする

ぐらいで良いでしょう。
何度も言いますが、凝った運用をしなければanyenvは非常に便利です。

3.1. anyenvをインストールする

brew install anyenv 

超簡単!

3.2. anyenvを使えるようにする

anyenv install --init
echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >>~/.profile
echo eval "$(anyenv init -)" >>~/.profile
source ~/.profile

これは上記コマンドを実行した後にも、コンソール上で実施するように促されるのでおそらく大丈夫。

3.3. お好みの○○envをインストールする

anyenv install -l

でインストールできるものが一覧表示されるので、任意で入れていきましょう。
試しに、rbenvを入れてrubyを使えるようにしてみます。

https://qiita.com/nomurasan/items/5c7f70d7c0979b478639

4. Dockerを入れる

厳密に言うとWSLにDockerではなく、WindowsのHyper-VにDockerを入れるのでPro限定です。
解説すると長くなるので、別記事にします(後日:参考リンクのみ)

https://blog.ecbeing.tech/entry/2021/09/07/150000

Ubuntuを削除・初期化したい時は

https://zenn.dev/kawacdev/articles/3de7892fd13df3

  1. Windows10のコントロールパネルを開く
  2. アプリ
  3. アプリと機能
  4. Ubuntu
    1. 詳細オプション
  5. 修復、あるいはリセット。場合によりアンインストール

ここで削除したディストリビューションは「MS Sore」を開いて検索すればまたダウンロード・インストールできます。
※Windowsの再起動が必要な事もあります。

参考

GitHubで編集を提案

Discussion