Arch Linux에서 Systemd-nspawn으로 가상 환경을 구축하고 Emacs-mozc를 설치하는 방법

누가 득을 하는가 하는 내용입니다만, 나름대로 고생했기 때문에 기사로 해 보겠습니다.

관련 기사:
Arch Linux에서 Systemd-nspawn을 사용하여 Spacemacs를 GUI로 시작하고 Emacs-mozc 사용

동기



Arch Linux에서는 fcitx-mozc와 emacs-mozc가 경쟁하고 있어 양쪽을 사용할 수 없다.
따라서 Systemd-nspawn을 사용하여 컨테이너를 만들고 최소한의 응용 프로그램을 설치하고 emacs-mozc를 사용합니다.

절차



목표는 호스트 측의 Emacs가 컨테이너에 설치된 mozc_emacs_helper를 호출 할 수있게합니다.

Arch Linux 컨테이너 만들기



Systemd-nspawn 사용
mkdir -p $HOME/var/container/arch
sudo pacstrap -i -c -d $HOME/var/container/arch base base-devel

컨테이너에 emacs-mozc 설치


cat << 'EOF' >> /etc/pacman.conf
[pnsft-pur]
SigLevel = Optional TrustAll
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/$arch
EOF

pacman -Syy
pacman -S emacs emacs-mozc

useradd --create-home arch-container-user

동작 확인


echo -e '(0 CreateSession)\n(1 SendKey 1 97)' |
sudo systemd-nspawn --quiet -D $HOME/var/container/arch -u arch-container-user mozc_emacs_helper

오류가 돌아오지 않으면 OK

호스트의 Emacs에 mozc 설치


M-x package-install mozc

에 넣은 후,

init.el
(require 'mozc)

추가

호스트에 mozc_emacs_helper 명령 추가



$HOME/bin/mozc_emacs_helper
#!/bin/bash

sudo systemd-nspawn --quiet -D $HOME/var/container/mozc_emacs_helper -u arch mozc_emacs_helper

참고
  • --quiet 옵션을 넣는 것이 포인트로, 넣지 않으면 Systemd-nspawn의 메세지가 들어가, mozc.el가 동작하지 않는다
  • 컨테이너 측 사용자가 root이면 mozc_emacs_helper가 제대로 작동하지 않으므로 arch 사용자 지정
  • 컨테이너에 들어갈 때 암호없이 sudo 할 수 있도록 호스트 측의 visudo에서 설정하십시오
  • .

    해보자



    Emacs를 시작하고 M-x mozc-mode 합니다.

    이런 느낌이 들었습니다.



    감상



    최근에는 Emacs를 GUI로 기동하지 않기 때문에, 솔직히 그다지 사용도는 없을 것 같습니다.

    하지만, GUI/CUI 어플리케이션에 관계없이, 막상이 되면 컨테이너와 제휴할 수 있다는 것은 안심할 수 있네요.
    가상화 최고.

    참고

    좋은 웹페이지 즐겨찾기