emacs 30.05 on Ubuntu 22.04.03 LTS with WSL2 in Windows 11 Pro

<a id="org9aa0f92"></a>

# 環境

-   Windows 11 Pro: 21H2 19045.3996
-   VcXsrv: 21.1.10
-   Ubuntu: 22.04.3 LTS
-   emacs: 30.05


<a id="orgb1e8209"></a>

# 手順

1.  VcXsrv のインストール
    -   <https://github.com/marchaesen/vcxsrv>
    -   vcxsrv-64.21.1.10.0.installer.exe
2.  WSL2の準備(手動インストール)
    1.  管理者権限でPowerShellを起動
    2.  [Linux用Windowsサブシステム]有効化のため、以下を実行
        ```
        dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
        ```        
    3.  Virtual Machine Platform の有効化のため、以下を実行
        
        ```
        dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
        ```        
    5.  再起動
    6.  Linux カーネル更新プログラム パッケージのインストール
        -   <https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi> (x64用)
        -   <https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi> (arm64用)
    7.  WSL 2 を既定のバージョンとして設定
        ```                
        wsl --set-default-version 2
        ```        

3.  Ubuntu のインストール
    1.  Microsoft Store から、Ubuntu 22.04 を入手
        -   <https://apps.microsoft.com/detail/9PN20MSR04DW>
    2.  Ubuntu の画面で、[開く]を選択
    3.  ユーザー名とパスワードの設定
4.  Ubuntuのアップデートと設定
    1.  最新化
        
            sudo -E apt update
            sudo -E apt upgrade
    2.  localeや日本語まわり
        
            sudo -E apt install language-pack-ja language-pack-gnome-ja
            sudo update-locale LANG=ja_JP.UTF-8
            sudo -E apt install manpages-ja manpages-ja-dev
            sudo dpkg-reconfigure tzdata
5.  emacsのインストール
    
        sudo -E apt remove --autoremove emacs emacs-common
        sudo -E sudo apt-add-repository ppa:ubuntu-elisp/ppa
        sudo -E apt update
        sudo -E apt install emacs-snapshot emacs-snapshot-el
        sudo -E apt install cmigemo
6.  x11-xserver-utils パッケージをインストール
    
        sudo -E apt install x11-xserver-utils

6.  おまじない
    
        sudo -E apt install gconf2
        sudo dbus-uuidgen --ensure
7.  ssh ポートフォワード接続無効化
    1.  コマンドプロンプトから wf.msc を起動
    2.  [受信の規則]をクリック
    3.  [VcXsrv windows xserver]の行がないことを確認
    4.  VcXsrv を起動
        1.  基本的に[Next]で完了まで進む
    5.  [ファイアウォールの通信許可設定ダイアログ画面] にて [パブリックネットワーク] のチェックを確認
    6.  通信を許可
8.  ~/.bash\_profile の設定
    
        if which tasklist.exe > /dev/null && ! tasklist.exe | grep -F -q 'vcxsrv.exe'; then
            (
                cd '/mnt/c/Program Files/VcXsrv'
                ./vcxsrv.exe :0 -multiwindow -clipboard -noprimary -ac -wgl > /dev/null 2>&1 &
            )
        fi
        if [ "$INSIDE_EMACS" ]; then
            TERM=eterm-color
        fi
        
        umask 022
        
        if [ -z "$DISPLAY" ]; then
            if uname -v | grep -q 'Microsoft'; then
                export DISPLAY=:0
            else
                if ss -lt4 | grep -q '127.0.0.1:6020'; then
                    export DISPLAY=:20
                else
                    # export DISPLAY=$(awk '/^nameserver/ {print $2; exit}' /etc/resolv.conf):0.0
                    export DISPLAY=$(ip route | awk '/^default/ {print $3; exit}'):0.0
                fi
            fi
        fi
        
        # Emacs の起動時に「WARNING **: Couldn't connect to accessibility bus: ...」というワーニングが出力される場合に設定
        # export NO_AT_BRIDGE=1
        
        # Emacs の起動時に「libGL error: No matching fbConfigs or visuals found / libGL error: failed to load driver: swrast」というエラーが出力される場合に設定
        export LIBGL_ALWAYS_INDIRECT=1
        
        # Emacs の起動時に gigacage に関するエラーが発生する場合に設定
        # export GIGACAGE_ENABLED=no
9.  マシンの再起動
10. Ubuntuを起動
111. emacs を起動


<a id="org8ca8a43"></a>

# 参考

-   [以前のバージョンの WSL の手動インストール手順](https://docs.microsoft.com/ja-jp/windows/wsl/install-manual)
-   [Windows Subsystem for Linux で Emacs を使うための設定](https://w.atwiki.jp/ntemacs/pages/69.html)
-   [WSL2上のUbuntu20.04でのEmacs](https://www.aise.ics.saitama-u.ac.jp/~gotoh/EmacsUbuntu2004onWSL2.html)
-   [How to Install GNU Emacs 28.1 in Ubuntu 22.04 | 20.04](https://ubuntuhandbook.org/index.php/2022/06/install-gnu-emacs-28-1-ubuntu-22-04-20-04/)
-   [Using emacs-snapshot from ppa:ubuntu-elisp/ppa on 22.04](https://emacs.stackexchange.com/questions/75048/using-emacs-snapshot-from-ppaubuntu-elisp-ppa-on-22-04/)
-   [最新の Emacs を Ubuntu にインストールする方法](https://ja.linux-console.net/?p=17867)