やりたいこと
WSLでUbuntuを動かす。
最低限の環境を構築する。
初期設定時に毎回調べるのは面倒なので、手順をまとめてメモしておく。
到達目標
- Ubuntuの初期設定ができている
- CUI/GUI環境ができている
- Gitの初期設定ができている
- GitHubにssh接続できる
- Python3が動かせる
- Node.jsが動かせる
環境
- Microsoft Windows 1909 (OS ビルド 18363.535)
- Ubuntu 20.04 LTS
手順
1. WSLの有効か
- [Windows + i]で設定メニューを開く
- [アプリ] → [アプリと機能] → [プログラムと機能] → [Windows の機能の有効化または無効化] の順にクリック
- 機能の一覧から、[WSL(Windows Subsystem for Linux)]にチェックをいれ、[OK]ボタンをクリック
- Windowsを再起動する
2. Ubuntuの入手
Microsoft StoreのUbuntuのページから、Ubuntuをインストールする。
Ubuntuには、16,18,20とバージョンがいくつかあるが、最新版の20をインストールした。
コマンドプロンプトなどでubuntuと打つと起動できる。または、wslでも起動できる。
wsl -lでインストールされているディストリビューションの一覧を確認できる(この時点ではUbuntuのみ。wsl -d <ディストリビューション名>でディストリビューションを指定して起動させることができる。
3. Ubuntuの初期設定
3.1 ユーザ名とパスワード
初回起動時、ユーザ名とパスワードを決定する。
パスワードは、[sudo]コマンドを使う時に聞かれるので覚えておく。
3.2 リポジトリ変更
日本語のリポジトリを見に行くように変更する。
$ cd /etc/apt
$ sudo sed -i.bak -e "s/http:¥/¥/archive¥.ubuntu¥.com/http:¥/¥/jp¥.archive¥.ubuntu¥.com/g"
$ diff sources.list.bak sources.list
3.3 更新
$ sudo apt update
$ sudo apt upgrade
3.4 日本語環境設定
$ sudo apt install language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF-8
一度Ubuntuを再起動する。
echo $LANGと入力し、ja-JP.UTF-8という出力が返ってくるか確認。
タイムゾーンを設定する。
$ sudo dpkg-reconfigure tzdata
dateコマンドの出力結果がjstになっているか確認。
3.5 マニュアルの日本語化
$ sudo apt install manpages-ja manpages-ja-dev
man lsなどmanコマンドの出力が日本語になっているか確認。
3.6 VcXsrvのインストール
WSLでGUIを扱うために、まずWindowsにVcXsrvをインストールする。
Xサーバは、Windows OSで言えば、GUIのウィンドウや部品などを描画、管理したり、キーボードやマウスなどのデバイスを管理したりする部分だけを独立させたようなものと考えればよいだろう。Xのサーバとクライアント間はXプロトコルで通信しており、同一システム上になくても動作するし、Xサーバを実現するソフトウェアも、機種やアーキテクチャなどは問わない。
Windows 10で利用できるXサーバソフトウェアは幾つかある。
VcXsrv: フリーのXサーバ
【引用元】 Tech TIPS:WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編)
- VcXsrvのサイトからインストーラーをダウンロード
- インストーラーを起動して、デフォルト設定のままインストール
- デスクトップに[XLaunch]というショートカットがあるのでそれを起動
- すべてデフォルトのまま[次へ]を押し、[完了]を押す
- ファイアウォールの警告画面がでたら、[キャンセル]を押す(外部との通信は不要なため)
3.7 GUIツールのインストール
GUIツールを導入。WSLを起動し、下記コマンドを実行。
$ sudo apt install x11-apps x11-utils x11-xserver-utils dbus-x11
$ echo 'export DISPLAY=localhost:0.0' >> ~/.bash_profile
$ source ~/.bash_profile
最後に、xeyesコマンドが動作するか確認。
3.8 デスクトップの導入
GUIよ用の日本語フォントをインストールする。
$ sudo apt install fonts-ipafont
デスクトップをインストール。これには時間がかかる。
$ sudo apt install xfce4-terminal
$ sudo apt install xfce4-session
$ sudo apt install xfce4
$ export DISPLAY=:0.0
$ export LIBGL_ALWAYS_INDIRECT=1
最後に、startxfce4でデスクトップが起動するか確認。
4. Gitの設定
4.1 初期設定
下記コマンドを実行。最も必要なのは上の2行で、ユーザ名とメールアドレスを設定する。これがGitのログに刻まれる。
あとの設定は任意。エイリアスはお好きなように。
$ git config --global user.name "blindsoup"
$ git config --global user.email "@"
$ git config --global core.editor vim
// ファイル名の大文字小文字を検出
$ git config --global core.ignorecase false
// git status時にファイル名日本語が文字化けしないようになる
$ git config --global core.quotepath false
// 以降エイリアス
$ git config --global alias.br branch
$ git config --global alias.cm commit
$ git config --global alias.co checkout
$ git config --global alias.last 'log -1 HEAD'
$ git config --global alias.mr merge
$ git config --global alias.st status
$ git config --global alias.unstage 'reset HEAD --'
4.2 GitHubにssh接続する
4.2.1 鍵の作成
まず鍵を作成する。公開鍵暗号方式で秘密鍵と公開鍵の二つを生成。
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 4096 -C "<your email>"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/<username>/.ssh/id_rsa): #ファイル名入力、デフォルトは[id_rsa]
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
デフォルトでは、[id_rsa](秘密鍵)と、id_rsa.pubのファイルが作成される。鍵を作成するたび、デフォルトファイル名で上書きされて行ってしまうため、ファイル名は変更しておくと良い。
chmod 600 <秘密鍵のファイル名>で、ファイルアクセス権を変更しておく。
4.2.2 ~/.ssh/configの設定
ssh経由でリモートサーバに接続する際に参照される設定ファイル。ここにユーザ名はポート番号、鍵の場所などを記載しておくと、コマンドタイプ時にファイル内容を参照して保管してくれる。
Gitの場合は以下を記載。
$ vim ~/.ssh/config
Host github github.com
HostName github.com
IdentityFile ~/.ssh/id_git_rsa # 秘密鍵のファイルへのパスを記入
User git
これも、$ chmod 600 configで、ファイルアクセス権を変更しておく。
4.2.3 GitHub側の設定
まず、下記を実行してクリップボードに公開鍵をコピーする。
$ clip.exe < <公開鍵のファイルへのパス>
次に、GitHubにログインし、[Settings] → [SSH and GPG keys] → [New SSH key]の順にクリック。
[Title] に鍵の識別子(任意の名前)、[Key]にコピーした公開鍵をペーストし、[Add SSH key]ボタンを押下。
WSLターミナルで書きを実行し、接続できるかを確認。
$ ssh -T git@github.com
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
5. Pythonの設定
Python3系はデフォルトでインストールされている。確認してみる。
$ sudo apt list python3
python3/focal,now 3.8.2-0ubuntu2 amd64 [インストール済み、自動]
後は、pipが使えるようにしておく。
$ sudo apt install python3-pip -y
6. Node.jsの設定
6.1 NVMのセットアップ
もしすでにNodejsがインストールされている場合は削除する。
$ sudo apt remove --purge node
NVMをインストールする。
公式GitHubを参照。
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
$ source ~/.bashrc
.bashrcに環境変数追記の記述があるので、.bash_profileで読み込むようにしておく。
$ echo source ~/.bashrc >> ~/.bash_profile
NVMをアップデートする場合は↓
$ cd ~/.nvm
$ git pull origin master
6.2 node, npmのインストール
Node.jsの最新版をインストール。
$ nvm install --lts
$ node -v
v12.16.3
$ npm -v
6.14.4
$ nvm use v12.16.3
Now using node v12.16.3 (npm v6.14.4)