Memo/Windows/10/WSL

https://dexlab.net:443/pukiwiki/index.php?Memo/Windows/10/WSL
 

WSL(Windows Subsystem for Linux)

  • 旧名 BoW(Bash on Windows)
  • Windows10 Anniversary Updateから搭載
  • Ubuntu LTSがサブシステムとしてインストールされるので、bash、apt等で管理できる。
  • 2018-09-16現在: 正式版。windows storeからインストールできる。sshdもデフォルトでは起動していない。
  • 2016-10-14現在、beta版。デフォルトでsshd等が起動し、windowsファイアウォールでもフルオープンになっているので、注意
  • WSL記事
  • BoW記事

複数のディストリビューション

  • powershellから実行する
  • 確認
    wslconfig.exe /list
  • デフォルトを設定
    wslconfig.exe /setdefault Ubuntu

sshdの起動

sudo apt install openssh-server
sudo service ssh start

Ubuntuのアップグレード


Ubuntu16.04から18.04へのアップグレード

legacy環境で記事通りに更新した所、約50分かかった。


Ubuntu14.04から16.04へのアップグレード

  • 1時間程度かかるので時間がある時に。
sudo do-release-upgrade
...
 Continue [yN]  Details [d]y
sudo apt update
sudo apt upgrade
sudo apt autoremove
# バージョン確認
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial

ターミナル


WSLアンインストール

legacy版とstore版で方法が違う

  • store版: Ubuntu 18.04 LTS: store画面から消すか、以下のコマンド
    powerwhell
    Get-AppxPackage *ubuntu* | Remove-AppxPackage
  • legacy版: Ubuntu 16.04 LTS
    powerwhell
    lxrun /uninstall /full

WSLインストール

なるべくコマンドでインストールしたい。

  • 記事
  • 環境
    • Windows 10 Pro 1803
  • Ubuntuの場合、legacy版とstore版がある
    • store版: Ubuntu 18.04 LTS
      • お勧め: opensshのincludeが使えるのが7.3以上。dockerもそのまま使えるため。
      • OpenSSH: 7.6p1
    • legacy版: Ubuntu 16.04 LTS
      • Bash on Ubuntu on Windowsと呼ばれていた頃のバージョン
      • OpenSSH: 7.2p1
  1. デフォルトshellをPowerShell?へ変更
    powershell
    New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name DontUsePowerShellOnWinX -PropertyType DWord -Value 0 -For
    Stop-Process -Name explorer
  2. Win10 1803では不要: 開発者モードの有効化: Windowsキー + Xキー > Aキー (Windows PowerShell? (管理者))
    New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowAllTrustedApps -PropertyType DWord -Value 1 -Force
    New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowDevelopmentWithoutDevLicense -PropertyType DWord -Value 1 -Force
  3. WSLの有効化
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  4. OS再起動が必要な時は再起動する。
  5. https://aka.ms/wslstore からUbuntuをインストールし、起動。
  6. Windowsキー + Xキー > Aキー (Windows PowerShell?)
    bash
    cd ~/
    
    # ストア版Ubuntuでは不要。sudo時に「ホスト <hostname> の名前解決ができません」メッセージ解決
    sudo perl -p -i -e "s/127.0.0.1 localhost/127.0.0.1 $(hostname) localhost/g" /etc/hosts
    
    # リポジトリをjpへ変更
    sudo perl -p -i -e "s/archive/jp.archive/g" /etc/apt/sources.list
    # デフォルトumask 000(ファイルを作ると0666)なので、022(ファイルを作ると0644)へ変更
    echo 'umask 022' >> ~/.bashrc
    source ~/.bashrc
    
    # パッケージのアップグレード
    sudo apt-get update
    sudo apt-get upgrade
    
    # 必要なパッケージをインストール
    sudo apt install make git
    
    # バージョン確認: legacy版。ストアからインストールした場合は18.04 LTS
    lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 14.04.5 LTS
    Release:        14.04
    Codename:       trusty
  • 日本語用パッケージ追加
    sudo apt install language-pack-ja manpages-ja manpages-ja-dev
  • 言語の変更: 英語の場合はen_US.UTF-8
    sudo update-locale LANG=ja_JP.UTF-8
    exit
    # 再度bash起動
    echo $LANG
    ja_JP.UTF-8
  • タイムゾーンの変更: デフォルトがDSTなので、JSTへ変更
    # sudo timedatectl: Failed to create bus connection: No such file or directory
    echo "Asia/Tokyo" | sudo tee /etc/timezone
    sudo dpkg-reconfigure --frontend noninteractive tzdata
    # dateで確認

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-18 (火) 14:35:24 (5d)