[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
ラベル WSL の投稿を表示しています。 すべての投稿を表示
ラベル WSL の投稿を表示しています。 すべての投稿を表示

2020-06-15

Windows Terminal のタブに表示する WSL ディストロのアイコンを設定する


良さそうなアイコンをダウンロードする。
PS C:\Users\yu-ji> wget https://www.iconfinder.com/icons/2682/download/png/64 `
>> -OutFile $ENV:LOCALAPPDATA\Packages\Microsoft.WindowsTerminalPreview_8wekyb3d8bbwe\LocalState\icon-Debian.png
PS C:\Users\yu-ji> wget https://www.iconfinder.com/icons/3166/download/png/64 `
>> -OutFile $ENV:LOCALAPPDATA\Packages\Microsoft.WindowsTerminalPreview_8wekyb3d8bbwe\LocalState\icon-Ubuntu.png
各プロファイルにアイコン ファイルを設定する。
    "profiles":
    {
        "list":
        [
            // 略
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl",
                "icon": "ms-appdata:///Local/icon-Ubuntu.png"
            },
            {
                "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
                "hidden": false,
                "name": "Debian",
                "source": "Windows.Terminal.Wsl",
                "icon": "ms-appdata:///Local/icon-Debian.png"
            },
            // 略
        ]
    },

WSL のデフォルト Linux ディストリビューションを変更する

WSL に複数の Linux ディストリビューションを導入しているときに、bash や wsl コマンドで実行されるデフォルトのディストリビューションを変更する。
# Linux ディストリビューションのリストを表示
PS C:\Users\yu-ji> wsl --list --verbose
  NAME      STATE           VERSION
* Ubuntu    Stopped         2
  Debian    Running         2

# bash コマンドで実行されるのは Ubuntu
PS C:\Users\yu-ji> bash -c "cat /etc/os-release | grep VERSION="
VERSION="20.04 LTS (Focal Fossa)"

# デフォルトを Debian へ変更
PS C:\Users\yu-ji> wsl --set-default Debian
PS C:\Users\yu-ji> wsl --list --verbose
  NAME      STATE           VERSION
* Debian    Running         2
  Ubuntu    Stopped         2

# bash コマンドで実行されるのは Debian
PS C:\Users\yu-ji> bash -c "cat /etc/os-release | grep VERSION="
VERSION="10 (buster)"

# bash, wsl はどこ?
PS C:\Users\yu-ji> Get-Command bash, wsl

CommandType     Name        Version    Source
-----------     ----        -------    ------
Application     bash.exe    10.0.19... C:\Windows\System32\...
Application     wsl.exe     10.0.19... C:\Windows\System32\...
参考
以前は wslconfig.exe でやっていた

WSL の Debian 再インストール時にエラー Code: 0x80073D05

WSL の Debian を再インストールしようとしたら Code: 0x80073D05 のエラーとなって失敗する。
アンインストールしてもフォルダーが残っていて、これが原因で失敗するらしい。
削除することで無事再インストールできた。
再インストール時のエラー
Code: 0x80073D05
残っていたフォルダー
PS C:\Users\yu-ji> gci -Recurse -Path $ENV:APPDATA\..\Local\Packages\TheDebianProject* | sort
gci : Access to the path 'C:\Users\yu-ji\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\SystemApp
Data\Helium\Cache' is denied.
At line:1 char:1
+ gci -Recurse -Path $ENV:APPDATA\..\Local\Packages\TheDebianProject* | ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (C:\Users\yu-ji\...ta\Helium\Cache:String) [Get-ChildItem], Unauthoriz
   edAccessException
    + FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand



    Directory: C:\Users\yu-ji\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2020/06/04      4:08                SystemAppData


    Directory: C:\Users\yu-ji\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\SystemAppData


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2018/03/10     12:07                Helium


    Directory: C:\Users\yu-ji\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\SystemAppData\Helium


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2018/03/10     12:07                Cache
-a----        2018/03/10     12:07           8192 User.dat
-a----        2018/03/10     12:07           8192 UserClasses.dat


    Directory: C:\Users\yu-ji\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2018/03/10     12:07                TempState
残っていたフォルダーを消す
PS C:\Users\yu-ji> ri -Recurse -Path $ENV:APPDATA\..\Local\Packages\TheDebianProject* -Force
ri : Access to the path 'C:\Users\yu-ji\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\SystemAppD
ata\Helium\Cache' is denied.
At line:1 char:1
+ ri -Recurse -Path $ENV:APPDATA\..\Local\Packages\TheDebianProject* -F ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (C:\Users\yu-ji\...x_76v4gfsz19hv4:String) [Remove-Item], Unauthorized
   AccessException
    + FullyQualifiedErrorId : RemoveItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.RemoveItemCommand
Helium の中が消せないので Explorer から手動で権限を取得して削除して…
PS C:\Users\yu-ji> ri -Recurse -Path $ENV:APPDATA\..\Local\Packages\TheDebianProject* -Force
PS C:\Users\yu-ji> gci -Recurse -Path $ENV:APPDATA\..\Local\Packages\TheDebianProject* | sort
PS C:\Users\yu-ji>
再インストールする
This product is installed.
できたっぽい。
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: yu-ji
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
yu-ji@Cxaxukluth:~$ uname -a
Linux Cxaxukluth 4.19.104-microsoft-standard #1 SMP Wed Feb 19 06:37:35 UTC 2020 x86_64 GNU/Linux
できた。
PS C:\Users\yu-ji> wsl --list --verbose
  NAME      STATE           VERSION
* Ubuntu    Stopped         2
  Debian    Running         2

2020-06-13

open WSL$ home directory in file explorer

WSL のホーム ディレクトリをファイル エクスプローラーで開く
PS C:\Users\yu-ji> wsl sh -c "cd && explorer.exe ."
Ubuntu の場合、以下のフォルダーが開かれる
\\wsl$\Ubuntu\home\yu-ji

2018-03-10

WSL のデフォルト Linux ディストリビューションを変更する (wslconfig.exe)

追記@2020/06/15 13:43

この記事は古い。最近は wsl でやる。
WSL (Windows Subsystem for Linux) で導入可能な Linux ディストリビューションに Debian GNU/Linux が追加されたので、導入済みの Ubuntu に加えて Debian も導入してみた。
複数の Linux ディストリビューションを導入しているときに、bash や wsl コマンドで実行されるデフォルトのディストリビューションを変更するには wslconfig.exe を使用する。
# Linux ディストリビューションのリストを表示
PS C:\Users\yu-ji> wslconfig /list
Windows Subsystem for Linux Distributions:
Ubuntu (Default)
Debian

# bash コマンドで実行されるのは Ubuntu
PS C:\Users\yu-ji> bash -c "cat /etc/os-release | grep VERSION="
VERSION="16.04.3 LTS (Xenial Xerus)"

# デフォルトを Debian へ変更
PS C:\Users\yu-ji> wslconfig /setdefault Debian
PS C:\Users\yu-ji> wslconfig /list
Windows Subsystem for Linux Distributions:
Debian (Default)
Ubuntu

# bash コマンドで実行されるのは Debian
PS C:\Users\yu-ji> bash -c "cat /etc/os-release | grep VERSION="
VERSION="9 (stretch)"

# bash, wsl はどこ?
PS C:\Users\yu-ji> Get-Command bash, wsl

CommandType     Name        Version    Source
-----------     ----        -------    ------
Application     bash.exe    10.0.16... C:\WINDOWS\system32\bash.exe
Application     wsl.exe     10.0.16... C:\WINDOWS\system32\wsl.exe

参考