Windows11にWSL2(Ubuntu20.40)をインストールしEmacs27.2をコンパイルする
Windows11を仕立て、そこにWSL2をインストール。
WSL2のOSとしてUbuntu20.04を選択。
それを条件として、Emacs27.2をソースからコンパイルする。
- Windows11にWSL2(Ubuntu20.40)をインストールしEmacs27.2をコンパイルする
WSL2の有効化
マイクロソフト公式の情報をもとにWSL2をインストール
WSL のインストール | Microsoft Docs
注意!→管理者権限でPowerShellを起動する事。
> wsl --install
※上記公式サイトに、ディスとリビュージョンを選択できる方法も記載されているが、デフォルトがUbuntu20.04らしいのでそれを採用とする。
ディスとリビュージョンのアップデートとアップグレード
ここでお決まりのコマンドを叩いておく。
詳しいことは公式に公開されている。
WSL の開発環境を設定する | Microsoft Docs
$ sudo apt update $ sudo apt upgrade
GUIアプリサポート設定
こちらも公式にのっとって。
WSL で Linux GUI アプリを実行する | Microsoft Docs
注意!→管理者権限でPowerShellを起動する事。
> wsl --update
その後
> wsl --shutdown
を実行して、再びスタートメニューからUbuntuを起動する。
試しにGeditをインストールして実行してみる
$ sudo apt install gedit -y
とした後、
$ gedit
として、Geditが起動したら成功。
日本語入力周りを設定
日本語入力周りの設定をすでに完了している人は、この項目はスルーしてください。
Windows側の日本語フォントを使えるようにconfファイル作成
$ cat << 'EOS' | sudo tee /etc/fonts/local.conf <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <dir>/mnt/c/Windows/Fonts</dir> </fontconfig> <!-- Created by bash script from https://astherier.com/blog/2021/07/windows11-wsl2-wslg-japanese/ --> EOS
日本語パックをインストールしてロケールを変更
sudo apt -y install language-pack-ja sudo update-locale LANG=ja_JP.UTF8
FcitxとMozcをインストール
sudo apt install -y fcitx-mozc dbus-x11 sudo sh -c "dbus-uuidgen > /var/lib/dbus/machine-id"
bash起動時の設定ファイルを作成
cat << 'EOS' | tee -a ~/.profile #Added by bash script from https://astherier.com/blog/2021/07/windows11-wsl2-wslg-japanese/ export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export DefaultIMModule=fcitx if [ $SHLVL = 1 ] ; then (fcitx-autostart > /dev/null 2>&1 &) xset -r 49 > /dev/null 2>&1 fi #Added by bash script: end EOS
WSL2の再起動
Powershellを開いて下記コマンドを実行。
注意!→管理者権限でPowerShellを起動する事。
インストールしたUbuntuの名前を確認
> wsl --list --verbose NAME STATE VERSION * Ubuntu20.04LTS Running 2
確認した名前でコマンド実行
> wsl -t Ubuntu20.04LTS
その後
> wsl --shutdown
を実行して、再びスタートメニューからUbuntuを起動する。
日本語化を確認
下記コマンドで、日本語表示のFcitx設定画面が表示されたら成功。
表示されたウィンドウの項目に「Mozc」が追加されているはず。
$ fcitx-config-gtk3
注意!→Keyboard(US)を削除してKeyboard(日本語)を追加し、最上位に持ってっ来ること。
Mozcの設定を変更することで、日本語←→英語 の切替キーを設定可能。
デフォルトでは「Ctrl + space」と「Zenkakuhankaku」になっていた。
Emacs27.2のインストール
ここまででGUIアプリのインストールまでできるようになったはずなので
Emacs27.2のソースコードダウンロード
公式からソースコードをダウンロード
GNU Emacs download - GNU Project
ここから辿って
Index of /pub/GNU/emacs
ここで目的のソースをダウンロードする。
emacs-27.2.tar.gzを任意のフォルダに解凍
任意のフォルダに解凍する
当然だけれど、作業はUbuntuのBash上で行う事。
$ tar -xzvf ./emacs-27.2.tar.gz
※任意のフォルダへのemacs-27.2.tar.gz配置等は割愛。
※適当なフォルダに保存しておき、bashのカレントにしておく。
必要なライブラリをインストール
基本的には、こちらの内容通りにインストール。
GitHub - hubisan/emacs-wsl: Install and run Emacs with the Windows Subsystem for Linux (WSL) in Windows 10.
sudo apt update sudo apt install -y autoconf automake bsd-mailx dbus-x11 debhelper dpkg-dev \ libacl1-dev libasound2-dev libdbus-1-dev libgif-dev libgnutls28-dev libgpm-dev \ libgtk-3-dev libjansson-dev libjpeg-dev liblcms2-dev liblockfile-dev libm17n-dev \ libncurses5-dev liboss4-salsa2 libotf-dev libpng-dev librsvg2-dev \ libselinux1-dev libsystemd-dev libtiff-dev libxml2-dev libxpm-dev procps quilt \ sharutils texinfo zlib1g-dev gvfs language-pack-en-base libasound2 libaspell15 \ libasyncns0 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libbrotli1 \ libcairo-gobject2 libcairo2 libcanberra-gtk3-0 libcanberra-gtk3-module \ libcanberra0 libcroco3 libdatrie1 libdb5.3 libdrm2 libegl1 libenchant1c2a \ libepoxy0 libflac8 libfontconfig1 libfreetype6 libgbm1 libgdk-pixbuf2.0-0 \ libgif7 libgl1 libglvnd0 libglx0 libgpm2 libgraphite2-3 libgstreamer-gl1.0-0 \ libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libgudev-1.0-0 \ libharfbuzz-icu0 libharfbuzz0b libhyphen0 libice6 libicu66 libjansson4 \ libjavascriptcoregtk-4.0-18 libjbig0 libjpeg-turbo8 liblcms2-2 liblockfile1 \ libltdl7 libm17n-0 libnotify4 libnss-mdns libnss-myhostname libnss-systemd \ libogg0 liborc-0.4-0 libotf0 libpango-1.0-0 libpangocairo-1.0-0 \ libpangoft2-1.0-0 libpixman-1-0 libpng16-16 libpulse0 librsvg2-2 libsasl2-2 \ libsecret-1-0 libsm6 libsndfile1 libsoup2.4-1 libssl1.1 libstdc++6 libtdb1 \ libthai0 libtiff5 libvorbis0a libvorbisenc2 libvorbisfile3 libwayland-client0 \ libwayland-cursor0 libwayland-egl1 libwayland-server0 libwebp6 libwebpdemux2 \ libwoff1 libx11-6 libx11-xcb1 libxau6 libxcb-render0 libxcb-shm0 libxcb1 \ libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 \ libxinerama1 libxkbcommon0 libxml2 libxpm4 libxrandr2 libxrender1 libxslt1.1 \ libyajl2
emacs起動
$ emacs
アンインストールしたくなったら
上記紹介サイトに記載がある。
コンパイルしたフォルダに入って、下記のコマンドを叩くことでアンインストールできる模様。
Update to a new Emacs version To update to a new Emacs version uninstall the current one by going to the folder you used for the installation (for instance ~/emacs-27.1) and run sudo make uninstall. Then install the new version.
$ cd ./emacs-27.2 $ sudo make uninstall.
調子悪い事
一応GUIモードで起動はするが・・・日本語入力Mozcがうまく動作しない。
Windows側にGoogle日本語入力をインストールし、それをLinux側のEmacsと紐付けるやり方が散見されるが・・・
コンソールのEmacsなら日本語入力に問題が見当たらないので、現在、$ emacs -nw としてコンソール起動して使っている。
今のところ、それで特に不満はない。
【理由】
・必要なら別窓でUbuntu起動して他のアプリ起動すればよい。
・ほかのGUIアプリの多くは、このブログの設定で日本語入力できている。
・マウス操作によるWindows←→Linuxのクリップボードコピー&ペーストができている