LoginSignup
25
27

More than 5 years have passed since last update.

Bash on Ubuntu on Windows で Emacs をビルドする

Last updated at Posted at 2016-08-14

2016/12/28 追記

こちらの方法 なら、ウィンドウサイズまわりの挙動も問題無いようです.

echo 0 > /proc/sys/kernel/randomize_va_space
sudo apt-get install libperl-dev
sudo apt-get install libgtk2.0-dev
curl -Ss -L https://gist.githubusercontent.com/nanasess/f04cb2a8926c5423e47efec4327b340a/raw/05b8ae147a6a3425f516c574c8d89471f1849bc6/xselect.c.patch | patch -p1
./configure x86_64-pc-linux-gnu --with-x-toolkit=gtk2 --with-libotf --with-m17n-flt --prefix=/usr/local/emacs
make
sudo make install
## Fix dbus session.conf
sudo sed -i 's$<listen>.*</listen>$<listen>tcp:host=localhost,port=0</listen>$' /etc/dbus-1/session.conf

echo 2 > /proc/sys/kernel/randomize_va_space

2016/11/8 追記

最近の emacs-snapshot なら X 経由で起動できるようです。

sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt-get update
sudo apt-get install emacs-snapshot
sudo update-alternatives --config emacs ## and select emacs-snapshot

See Also


Bash on Ubuntu on Windows で apt-get install emacs とすれば、 Emacs をインストールできます。ただし、 GUI の環境 で Emacs を起動しようとすると、以下のような Warning で起動できません。

(emacs:305): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

どうも、 D-BUS と会話がうまくできないようなので、 --without-dbus でビルドすることにします。

必要なパッケージのインストール

sudo apt-get install libXpm-dev libjpeg-dev libgif-dev libtiff4-dev libncurses5-dev libgtk-3-dev libgnutls-dev libmagick++-dev

libgtk-3-dev 以外はお好みで。

exec-shield の問題の対応

そのまま make すると、 途中で core dump してしまう ので randomize_va_space を無効化しておきます。

sudo -s
echo 0 > /proc/sys/kernel/randomize_va_space

ビルド

curl -LO http://ftpmirror.gnu.org/emacs/emacs-24.5.tar.gz
tar xvzf emacs-24.5.tar.gz
cd emacs-24.5
./configure --with-x-toolkit=gtk3 --without-dbus --prefix=/usr/local/emacs
make
sudo make install

指定した --prefix にインストールされます。
上記の例の場合、 /usr/local/emacs/bin/emacs で起動します。

最後に

randomize_va_space を元に戻しておきましょう

echo 2 > /proc/sys/kernel/randomize_va_space

その他

AddressFamily inet 
ListenAddress 0.0.0.0 
X11UseLocalhost yes

AddressFamilyListenAddress よりも先に書く必要があります。

参考

25
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
27