WindowsにUbuntuをインストールする方法

# Ubuntuとは
CentOSなどと同じく、Linuxディストリビューションの1つです。
WindowsStoreから無料で誰でも簡単に入手することができ、アンインストールも容易です。

# Ubuntuのインストール
Windowsキーを押し、MicrosoftStoreから「Ubuntu 20.04 LTS」をインストールします。
インストールが終わったら起動し、ユーザーネームとパスワードを入力します。
パスワードは必ず忘れないようにしましょう。入力が終わったら一旦Ubuntuは閉じます。
※マイクロソフトアカウントの登録がなくてもインストールは可能です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1490767/f88384b3-52bf-4372-50ff-b6fde28d06c4.png)

# Ubuntuのアンインストール
Windowsキーを押し、Ubuntuと入力して検索をかけ、アンインストールを選択する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1490767/8a484b1d-5e8f-c5d3-34f9-770506882664.png)

# 動作確認
インストールが完了したら、Ubuntuから外へのアクセスが可能かどうかをpingを使って確認します。
googleから何度もレスポンスが返ってきていれば動作に問題はありません。

```bash
ping www.google.com
```

# DNSの設定見直し
DNSの問題により、pingが通らないことがあります。

https://cartman0.hatenablog.com/entry/2020/07/16/WSL2%E3%81%A7%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88

今のところ詳細な原因は分かっていないようですが、対処法としてDNSを変更することで解消可能です。
次の手順を行うことでDNSをGoogleが無償で提供しているものに変更することができます。

1. PowerShellを起動します。wslとコマンドを打ち、ログインします。
2. wsl2では、DNSサーバーの設定ファイルであるresolv.confをwsl2が自動生成します。
自動生成された場合、誤った挙動となってしまっているため、まずは自動生成を止めます。
3. /etc/wsl.confファイルを新規生成します。

    ```bash
    sudo vim /etc/wsl.conf
    ```

4. 中身を次のようにし、保存します。

    ```
    [network]
    generateResolvConf = false
    ```

5. 別のPowerShellを新たに立ち上げてwslをシャットダウンさせます。

    ```bash
    wsl --shutdown
    ```

6. 開いているPowerShellなどのターミナルをすべて閉じたのち、PowerShellを1つ起動します。
wslとコマンドを打ち、ログインします。
7. 自動生成を止めたことにともない、シンボリックリンクで参照エラーがでてしまっているため、まずリンク解除します。

    ```bash
    sudo unlink etc/resolv.conf
    ```

8. その後、/etc/resolv.confを書き換えます

    ```bash
    sudo vim /etc/resolv.conf
    ```

9. 中身を次のようにし、保存します

    ```
    nameserver 8.8.8.8
    ```

    以上で変更完了です。もう一度pingを実行し正しくDNSの設定変更が反映されているか確認しましょう。

# 初期設定
- パッケージを最新にします

    ```bash
    # インストール可能なパッケージの「一覧」を更新します。実際のパッケージのインストール、アップグレードなどは行いません。
    # インストール済みのパッケージ更新をおこない、新しいバージョンにアップグレードします。
    # apt upgradeは「有効なパッケージ一覧」を元に実行されるので、apt updateと組み合わせて使います。
    sudo apt update && sudo apt upgrade -y
    ```

- 開発に必要なパッケージの導入をします

    ```bash
    # gcc、g++、makeなどが入ります
    sudo apt install build-essential -y

    # unzipを入れる
    sudo apt install -y unzip
    ```

# Ubuntu起動時のホーム設定
Windowsターミナルを使っている場合は、設定からUbuntu起動時の初期ディレクトリ位置を指定することができます。

次のように指定することで、ターミナル起動時はhome/{ユーザー名}とすることができます。

```bash
# ユーザー名は、ubuntuのユーザー名です
\\wsl$\Ubuntu-20.04\home\{ユーザー名}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1490767/70358d0f-26aa-1302-a777-f696f7c7e65c.png)

# Gitの初期設定
```bash
# 鍵の作成（ubuntuのホームディレクトリで実行する）
mkdir .ssh/
cd .ssh
ssh-keygen -t rsa -b 4096
```

作成した公開鍵はgithubに登録する
https://github.com/settings/profile
「Personal settings」の「SSH and GPG keys」を開き、公開鍵を登録する

```bash
# Gitの設定
# 変更をコミットした時に表示される名前、メールアドレスを設定する
git config --global user.name "hoge hogehoge"
git config --global user.email "hogehoge@email.com"

# gitをターミナルで見る時の出力をカラー表示にする
git config --global color.ui "auto"
```

# トラブルシューティング
ホスト側に存在しているDドライブがUbuntuに反映されていないことがありました。
パソコンを再起動することで反映されましたので、もし同じトラブルでお悩みの方がいたら一度試してみてください。

# 関連サイト
https://weblabo.oscasierra.net/php-composer-centos-install/

https://linuxfan.info/package-management-ubuntu

https://www.atmarkit.co.jp/ait/articles/1806/08/news042.html

https://qiita.com/yusuken1983/items/212746e88746fc3e387e