Emacs (Emacs Editor)

[ 戻る | トップページに戻る ]

概要

Emacs とは、lisp (GNU Emacs Lisp) で記述された拡張性の高いエディタ。 単なるエディタというより統合環境に近い。

URL

ftp://his.luky.org/pub/mirrors/gnu/emacs/ (ミラー)
http://www.teu.ac.jp/nsit/~yatagawa/comp/emacs/ (Mule 4.1 (AOI) 化パッチ)
ftp://ftp.ki.nu/pub/emcws/ emcws-20.7-20000614.gz (Canna + Wnn + Sj3 patch)

インストール環境

Slackware 7.0 (Kernel 2.2.14 + glibc 2.1.2)
Solaris 2.5.1

必要なもの

leim

バージョン

20.6, 20.7

インストール手順

$ tar xvfz emacs-20.6.tar.gz
$ tar xvfz leim-20.6.tar.gz
$ cd emacs-20.6

次に configure なのだが、INSTALL には CONFIGURATION-NAME を与えろとあるのだが、 /etc/MACHINES を見ても何を与えればいいのか分からない。 linux, Linux, i386-*-linux-gnu いずれもダメ。 結局、何も指定しないことにする。
$ ./configure
(snip)
Configured for `i586-pc-linux-gnu'.

  Where should the build process find the source code?    /usr/local/src/emacs-20.6
  What operating system and machine description files should Emacs use?
        `s/gnu-linux.h' and `m/intel386.h'
  What compiler should emacs be built with?               gcc  -g -O 
  Should Emacs use the GNU version of malloc?             yes
      (Using Doug Lea's new malloc from the GNU C Library.)
  Should Emacs use the relocating allocator for buffers?  yes
  What window system should Emacs use?                    x11
  What toolkit should Emacs use?                          LUCID
  Where do we find X Windows header files?                /usr/X11R6/include
  Where do we find X Windows libraries?                   /usr/X11R6/lib
(snip)

いいかな。ではコンパイル & インストール。
$ make
$ make install

Canna を使うのに YC を使うことにする。
$ cp yc.el-2.0.15 /usr/local/share/emacs/site-lisp
$ cd /usr/local/share/emacs/site-lisp
$ ln -s yc.el-2.0.15 yc.el

後は、~/.emacs に (load "yc") を追加すれば、Ctrl + \ で変換できる。
(global-set-key "\C-o" 'toggle-input-method) を追加すれば Ctrl + o でも起動できる。おっけー。

インストール手順 (20.7 with Mule 4.1 -ized patch)

最初、以前 20.6 をコンパイルディレクトリで、パッチ当て、configure, make ... とやったのだが、何故かうまくいかない。 起動メッセージを見ると、20.6.1 から 20.6.2 にはなるのだが、 Mule 4.0 (HANANOEN) のまま。むう。

以下、20.7 でやり直す。 パッチファイルの先頭に詳しい手順が書いてあるので、その通りにやればよい。
$ tar xvfz emacs-20.7.tar.gz
$ tar xvfz leim-20.7.tar.gz
$ cd emacs-20.7
$ patch -p1 < emacs-20.7-mule-4.1.patch 
$ ./configure
$ cd src
$ make emacs
$ cd ../lisp
$ ../src/emacs -batch -q -f batch-byte-compile
     ange-ftp.el international/ccl.el international/mule-cmds.el
     international/mule.el international/titdic-cnv.el
$ cd ..
$ make
$ su
# make install
# exit

これで、無事 Mule 4.1 (AOI) 化できた。 ...が、Liece が起動できなくなった。M-x liece すると Cannot open load file: product と表示される。これは、APEL を再インストールする と OK (APEL って emacs のバージョンに依存した部分があるのか?)

インストール手順 (20.7 with Canna + Wnn + Sj3 patch on Solaris 2.5.1)

$ tar xvfz emacs-20.7.tar.gz
$ tar xvfz leim-20.7.tar.gz
$ zcat emcws-20.7-20000614.gz | patch -s -p0 
$ mkdir emcws-work
$ cd emcws-work

ここでは Canna 対応として configure/コンパイルする。Wnn 等の場合は GNU Emacs + Gnus + Mew の環境を作ろう のページを参照のこと。
$ ../emacs-20.7/./configure --with-canna --with-canna-include=/usr/local/canna/include \
    --with-canna-libraries=/usr/local/canna/lib
$ time make
Received disconnect: Command terminated on signal 10.

ぬぅ、time make って何だ? Solaris にはそんなのないぞ。 単に make としてみる。これでも OK らしい。...が、エラー。
$ make
(snip)
gcc -c -Demacs -DHAVE_CONFIG_H -DUSE_LUCID -I. -I/home1/local/src/emacs-20.7/src -I/usr/openwin/include
    -I/usr/dt/include -g -O  /home1/local/src/emacs-20.7/src/canna.c
/home1/local/src/emacs-20.7/src/canna.c:159: canna/jrkanji.h: No such file or directory
/home1/local/src/emacs-20.7/src/canna.c:160: canna/RK.h: No such file or directory
make[1]: *** [canna.o] Error 1
make[1]: Leaving directory `/home1/local/src/emcws-work/src'
make: *** [src] Error 2

む、configure オプションがコンパイルフラグに全然反映されてないじゃないか。 ええい。Makefile を編集してしまえ。./Makefile を以下のように書き換える。
(snip)
CC=gcc
CPP=gcc -E
C_SWITCH_SYSTEM=
ALLOCA=
LN_S=ln -s
CFLAGS= -g -O -I/usr/local/canna/include
              ~~~~~~~~~~~~~~~~~~~~~~~~~~ 追加
LDFLAGS= -L/usr/openwin/lib
(snip)

これでようやく make が通る。あとはインストールしておしまい。
$ make
$ su
# make install
# exit

インストール手順 (20.7 with AOI patch & Canna + Wnn + Sj3 patch on Plamo 2.0)

$ tar xvfz emacs-20.7.tar.gz
$ tar xvfz leim-20.7.tar.gz
$ cd emacs-20.7
$ patch -p1 < emacs-20.7-mule-4.1.patch 
$ cd ..
$ zcat emcws-20.7-20000614.gz | patch -s -p0 
$ mkdir emcws-work
$ cd emcws-work
$ ../emacs-20.7/./configure --with-canna --with-canna-include=/usr/include --with-canna-libraries=/usr/lib
$ make
(snip)
./temacs -batch -l loadup dump
(snip)
Loading international/latin-1 (source)...
Loading international/latin-2 (source)...
Loading international/latin-3 (source)...
Loading international/latin-4 (source)...
Loading international/latin-5 (source)...
Loading language/chinese...
Loading language/cyrillic...
Cannot open load file: ccl
make[1]: *** [emacs] Error 255
make[1]: Leaving directory `/usr/local/src/emcws-work/src'
make: *** [src] Error 2
標準ディレクトリにインストールされているため canna.c ではエラーは出ないが 別のところでエラーになってしまう。 単純にCanna + Wnn + Sj3 patch を適用した場合は、問題なくコンパイル終了。 ls -l ccl.o (単純) -rw-r--r-- 1 fuka users 48640 9月 22日 23:29 ccl.o $ ll /usr/local/src/emcws-work/src/ccl.o (NG の場合) -rw-r--r-- 1 fuka users 51364 9月 22日 22:38 /usr/local/src/emcws-work/src/ccl.o NG の場合と逆の順にパッチをあててみる。 つまり emcsw --> AOI の順。 $ zcat emcws-20.7-20000614.gz | patch -s -p0 $ cd emacs-20.7 $ patch -p1 < ../../emacs-20.7-mule-4.1.patch patching file `lisp/international/ccl.el' patching file `lisp/international/mule-cmds.el' patching file `lisp/international/mule-conf.el' patching file `lisp/international/mule.el' patching file `lisp/international/titdic-cnv.el' patching file `lisp/loaddefs.el' patching file `lisp/loadup.el' Hunk #1 succeeded at 329 (offset 44 lines). patching file `src/callproc.c' patching file `src/ccl.c' patching file `src/ccl.h' patching file `src/charset.c' Hunk #1 succeeded at 957 (offset 1 line). patching file `src/charset.h' Hunk #1 succeeded at 763 (offset 1 line). patching file `src/coding.c' patching file `src/coding.h' patching file `src/keyboard.c' patching file `src/keymap.c' patching file `src/lisp.h' patching file `src/lread.c' patching file `src/minibuf.c' patching file `src/xfns.c' Hunk #1 succeeded at 5505 (offset 43 lines). patching file `src/xterm.c' Hunk #1 succeeded at 6955 (offset 1 line). このまま configure, make してみるが、結果は一緒。 NG

[ 戻る | トップページに戻る ]