#概要
Windows Subsystem for Linux(WSL)のUbuntuでやった設定を備忘録的にまとめていきます。
#前提
Windows 10 バージョン 2004からWSL2が搭載されましたが,KB4566116適用後であれば1903及び1909でも使えるようです。
###環境
Windows 10 バージョン 1903 Build 18362.1049 or later
Windows 10 バージョン 1909 Build 18363.1049 or later
Windows 10 バージョン 2004 Build 19041 or later
###確認方法
1.Win+R
で「ファイル名を指定して実行」を起動します
2.winver
と入力しEnter
を押します
#WSLの有効化
##1. 「Linux 用 Windows サブシステム」のオプションを有効化します
PowerShellを管理者で実行し以下のコマンドを実行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
##2. 「仮想マシン プラットフォーム」のオプションを有効化します
PowerShellを管理者で実行し以下のコマンドを実行
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
##3. PCを再起動します
##4. Linux カーネル更新プログラム パッケージをダウンロード
こちらからダウンロードして、インストールしてください。
##5. WSL2をデフォルトに設定
wsl --set-default-version 2
##6. Microsoft StoreからUbuntuのインストール
以下から入手、インストールしてください。
https://www.microsoft.com/ja-jp/p/ubuntu/9nblggh4msv6?
##7. Ubuntuを起動する
Windowsキーを押し、アプリ一覧からUbuntuを起動します。
まず、ユーザーネームを設定します。
今回、画像ではuserになっていますが、半角英数の範囲で好きに決めてもらってOKです。
つづいて、パスワードを2回入力します。入力しても表示されませんがちゃんと入力されています。
(以後、何度も使うので忘れないようにしてください)
参考
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
#VcXsrv Windows X Serverのインストール
Linux上のGUIプログラムを実⾏するために、X-Windowサーバーをインストールします。
##1. インストーラのダウンロード
こちらから、インストーラをダウンロード。
##2. インストーラ起動
ダウンロードしたインストーラを起動、指⽰に従ってインストール。
##3. XLaunchの起動
スタートメニューでXLaunchを検索して起動
次へをクリックしていき、3枚目の画面
のAdditional parameters for VcXsrv
の欄に-ac
と書き込みます。
save configuration
で設定ファイルをshell:startup
に保存しておくと、Windows起動時に自動でVcXsrvを起動してくれるようになります。
#WSLの設定
私はWindows Terminalを使用しています。かなり使いやすいので、使いたい方は下にインストール・設定方法を記載していますので参考にしてください。
##1. Ubuntuを起動
##2. パッケージのインストール
以下のコマンドを順に実行してください。多分数時間は軽くかかると思います。
※3行目は、かなり長いですので注意してください。
sudo apt update -y
sudo apt upgrade -y
sudo apt install -y language-pack-ja manpages-ja manpages-ja-dev nkf build-essential x11-apps emacs emacs-mozc fcitx-mozc dbus-x11 gtypist typespeed texlive-full evince gnome-terminal sox nodejs libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev libsdl2-gfx-dev libopencv-dev freeglut3-dev fonts-freefont-ttf fonts-ubuntu gdb python3-pip libreadline-dev libssl-dev python3-gi-cairo
一応何やってるか説明します
1行目:パッケージ一覧を更新(以後リポジトリの追加・削除時には必ず実行するようにしてください)
2行目:パッケージを更新
3行目:基本的なパッケージ・debファイルのインストール
##3.各種設定
ディスプレイの設定として、以下のコマンドを実行します。
echo "export DISPLAY=\$(cat /etc/resolv.conf | grep nameserver | awk '{print \$2}'):0.0" >> ~/.profile
echo 'export LIBGL_ALWAYS_INDIRECT=1' >> ~/.profile
ローケルの設定として以下のコマンドを実行します。
sudo update-locale LANG=ja_JP.UTF-8
続いて、⽇本語⼊⼒の設定として、以下の内容を~/.profile
に追記
します。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
if xset -r 49; then
fcitx-autostart >/dev/null 2>&1 &
else
echo "Start XLaunch and then Restart Ubuntu"
fi
続けてタイムゾーンの設定をしていきます。
sudo dpkg-reconfigure tzdata
を実行して、Asia
→Tokyo
を選択します。
##4.テキストエディタの設定
VSCodeをインストールしてRemort - WSLを導入していれば、code
コマンドでVSCodeが開けますが、sudoで編集できない(やる方法あれば教えてください...)ので、vimやemacsの設定もしておきましょう。
###VSCode
以下から入手、インストールします。
https://code.visualstudio.com/download
続いて、ctrl+shift+x
または左端の□マークから拡張機能をインストールします。
Remort - WSL
Japanese Language Pack for Visual Studio Code
は必須です。(※日本語にしたくなければRemort - WSLだけでOKです。)
拡張機能のインストール後、再読み込みして、ctrl+shift+p
を押してコマンドパレットを表⽰させます。
Configure Display Language
を⼊⼒&選択し、ja
に変更すると、日本語化できます。
その他、お好みで拡張機能の導入をしてください。
ほかにも私は
Vimのキーバインドを導入する拡張機能と
カラースキームMonokai Proの拡張機能
などの拡張機能をインストールしていますが、好みが分かれるので割愛します。
ctrl+,
あるいは左下の歯車→設定から設定が開けます。
GUIになっているのでわかりやすいと思います。(jsonでも編集可能)
参考
https://rfs.jp/sb/vsc/vsc-setting.html
https://qiita.com/hi85/items/eaede5ebb509f21f27f5
LaTeXを使う場合は、以前記事にしていますので、
こちら)を参考に設定してみてください。
###Vim
~/.vimrcに設定を記述します。
また、初期では配色がよくないので、私はカラースキームmolokaiを導入しています。
設定例
molokaiのダウンロード
bash
mkdir ~/.vim
cd ~/.vim
mkdir colors
git clone https://github.com/tomasr/molokai
mv molokai/colors/molokai.vim ~/.vim/colors/
vi ~/.vimrc
>~/.vimrcの内容
>```vim:~/.vimrc
set fenc=utf-8 "UTF-8形式で保存する
set title "編集中のファイル名を表示
set showmatch "括弧入力時の対応する括弧を表示
set number "行番号を表示
syntax on "コードの色分けをオンにする
set smartindent "スマートインデントを設定
set tabstop=2 "インデントをスペース2個分に設定
syntax on "コードの色分け
set showcmd "入力中のコマンドを表示する
set virtualedit=onemore "行末の1文字先までカーソルを移動できるようにする
set clipboard=unnamedplus "yankした時クリップボードに入るようにする
set ignorecase "検索文字列が小文字の場合は大文字小文字を区別なく検索する
set smartcase "検索文字列に大文字が含まれている場合は区別して検索する
set incsearch "検索文字列入力時に順次対象文字列にヒットさせる
set wrapscan "検索時に最後まで行ったら最初に戻る
set hlsearch "検索語をハイライト表示
nmap <Esc><Esc> :nohlsearch<CR><Esc> "ESC連打でハイライト解除
colorscheme molokai "カラースキームをmolokaiにする
set t_Co=256 "vimを256色対応させる
###emacs
~/.emacs.d/init.elに記述します。
初期ではディレクトリ~/.emacs.d
はないと思うので
mkdir ~/.emacs.d
で作成しておきます。
設定例
~/.emacs.d/init.el
;;日本語入力の設定
(require 'mozc)
(set-language-environment "Japanese")
(setq default-input-method "japanese-mozc")
;;初期画面でwelcome画面の表示を消す
(setq initial-scratch-message t)
(setq initial-scrarch-message nil)
;;画面の下のバーで何行何列にいるか表示
(line-number-mode t)
(column-number-mode t)
;;yesとnoをyとnで打てるようにする
(defalias 'yes-or-no-p 'y-or-n-p)
;;行番号表示
(global-linum-mode)
(setq linum-format "%4d ")
;;テキストエンコーディングをUTF-8にする
(set-default-coding-systems 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
##5.フォントの設定
WindowsのフォントをWSLでも使えるようにします。
まずsudoで`/etc/fonts/local.conf`を開きます。
viのところはemacsでもいいです(codeは不可)
```bash:bash
sudo vi /etc/fonts/local.conf
続いて、以下の内容を貼り付けます。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/mnt/c/Windows/Fonts</dir>
</fontconfig>
この後、
fc-cache -fv
を実行するとWindowsのフォントがWSLでも使えるようになります。
#開発ツールのインストール
##1.Python
Ubuntu20.04のデフォルトでは3.8.6と若干古いですし、バージョンの複数管理できたほうが便利です。
###1.pyenvのダウンロード
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
###2.pyenvでのpythonのダウンロード
pyenv install --list
でインストールできる一覧が見れます。
投稿時点での最新版は3.9.0なので、それをインストールしていきます。別バージョンをインストールする場合は適宜読み替えてください。
pyenv install 3.9.0
pyenv global 3.9.0
###3.pipパッケージインストール
pip3 install pandas numpy scipy xlrd matplotlib japanize-matplotlib Pillow opencv-python folium plotly requests beautifulsoup4 lxml Flask Flask-Bootstrap4 Django PyMySQL
##2.Ruby on Rails
###1.rbenvのインストール
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
~/.rbenv/bin/rbenv init
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
###2.ruby-buildのインストール
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
###3.Rubyのインストール
rbenv install -list
としてやると、
2.5.8
2.6.6
2.7.2
jruby-9.2.13.0
maglev-1.0.0
mruby-2.1.2
rbx-5.0
truffleruby-20.2.0
truffleruby+graalvm-20.2.0
のように出てきます。今回は2.7.2をインストールします。
別バージョンをインストールする場合は適宜読み替えてください。
rbenv install 2.7.2
rbenv rehash
rbenv global 2.7.2
###4.Railsのインストール
gem install rails
###5.SQL/bundler/yarnのインストール
sudo apt install libsqlite3-dev
gem install sqlite3
gem install bundler
curl -o- -L https://yarnpkg.com/install.sh | bash
###6.Railsの実行
rails new app
cd app
rails server
ブラウザで127.0.0.1:3000にアクセスして、
このようなものが出ればOKです。
#エイリアスの設定
エイリアスとはコマンドの別名のことです。
~/.bashrc
に追記
する形で記述していきます。
以下、私の設定ですが、下2つ以外は基本的なものばかりなので追加しておいて損はないと思います。
設定例
~/.bashrc
#(略)
#追記してください
alias ..='cd ..'
alias ..2='cd ../..'
alias ..3='cd ../../..'
alias agi='sudo apt install'
alias agr='sudo apt remove'
alias agu='sudo apt update && sudo apt upgrade'
alias agi='sudo apt install'
alias ags='apt search'
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -ri'
alias g='git'
alias ga='git add'
alias gd='git diff'
alias gs='git status'
alias gp='git push'
alias gb='git branch'
alias gst='git status'
alias gco='git checkout'
alias gf='git fetch'
alias gc='git commit'
#この2つは少し過激なので注意...
alias m='mkdir'
alias p='python3
>参考
https://qiita.com/reireias/items/d906ab086c3bc4c22147
#シンボリックリンク
シンボリックリンクとは、 Windowsで言うところのショートカットのようなものです。
WSLでWindowsのCドライブは/mnt/cになっていますので、Downloadsフォルダは/mnt/c/User/(Windowsのユーザー名)/Downloadsとなります。
ここにシンボリックリンクを貼ってみましょう。
```bash:bash
ln -s /mnt/c/User/(Windowsのユーザー名)/Downloads
このようにシンボリックリンクが貼れています。このようにシンボリックリンクを使うとWSLとホストのWindowsの連携がとりやすくなります。
Microsoft StoreからWindows Terminalのインストール・設定(任意)
以下から入手、インストールしてください。
https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701
インストール出来たら起動して、∨から設定を選ぶか、Ctrl+,
で設定を開きます。
profiles内のUbuntuのprofileのguidをglobalsのdefaultProfileに指定しましょう。
listの順番を並び替えて自分の好きなようにしてください。
私はUbuntu
、Powershell
、cmd
の順にしています。
続いて、Ubuntuのprofile内のstartingDirectoryを//wsl$/Ubuntu/home/(ユーザー名)
に設定します。
ここでのユーザー名はUbuntuのユーザー名
です。
参考までに、私の場合は以下のようになっています。
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"profiles": {
"defaults": {
},
"list": [
{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"startingDirectory": "//wsl$/Ubuntu/home/user",
"source": "Windows.Terminal.Wsl"
},
{
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false
},
{
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "コマンド プロンプト",
"commandline": "cmd.exe",
"hidden": false
},
//(略)
]
},
//(以下略)
}
ターミナルの配色やキーバインディングの設定については割愛します。(好みが分かれそうなため)
参考
https://docs.microsoft.com/ja-jp/windows/terminal/get-started