somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Emacs】Emacs Lispのインストール自動化

Emacs Lispを手動でインストールする手間をなくすために、自動でインストールするためのEmacs Lisp「auto-install.el」をインストールします。

注意:OSがWindowsの場合は、wgetを使用できる環境にしておいてください。

auto-install.elのインストール

  1. auto-install.elを格納するディレクトリを作成する(~/.emacs.d/auto-install)
  2. http://www.emacswiki.org/emacs/download/auto-install.elからauto-install.elをダウンロードし、1で作成したディレクトリに格納する
  3. C-u M-x byte-compile-fileを実行し、auto-install.elをバイトコンパイルする
  4. .emacsに設定を追加する
    ;; auto-installによってインストールされるEmacs Lispをロードパスに加える
    ;; デフォルトは ~/.emacs.d/auto-install/
    (add-to-list 'load-path "~/.emacs.d/auto-install/")
    (require 'auto-install)
    ;; 起動時にEmacsWikiのページ名を補完候補に加える
    (auto-install-update-emacswiki-package-name t)
    ;; install-elisp.el互換モードにする
    (auto-install-compatibility-setup)
    ;; ediff関連のバッファを1つのフレームにまとめる
    (setq ediff-window-setup-function 'ediff-setup-windows-plain)
  5. Emacsを再起動する

    wgetが使用できない場合、以下のようなエラーが発生します。

    # Emacs起動時に読み込む設定ファイルでエラーが発生(ディレクトリおよび設定ファイルは適宜読み替えてください。)
    Warning (initialization): An error occurred while loading `c:/usr/home/.emacs.d/init.el':
    
    File error: Searching for program, no such file or directory, wget
    
    To ensure normal operation, you should investigate and remove the
    cause of the error in your initialization file.  Start Emacs with
    the `--debug-init' option to view a complete error backtrace.
    
    # runemacs.exe または emacs & 実行時に--debug-initオプションを追加し、バグのトレースをする
    # wgetがないと怒られています。
    Debugger entered--Lisp error: (file-error "Searching for program" "no such file or directory" "wget")
      call-process("wget" nil nil nil "-q" "--spider" "www.emacswiki.org")
      auto-install-network-available-p("www.emacswiki.org")
      auto-install-update-emacswiki-package-name(t)
      eval-buffer(#<buffer  *load*> nil "c:/usr/home/.emacs.d/init.el" nil t)  ; Reading at buffer position 418
      load-with-code-conversion("c:/usr/home/.emacs.d/init.el" "c:/usr/home/.emacs.d/init.el" t t)
      load("c:/usr/home/.emacs.d/init" t t)
      #[nil "\205\264
    
  6. 下記コマンドが追加されていれば、完了です。

install-lispによるインストール方法

上記コマンドを実行後、ダウンロードが完了すると、そのファイルの内容が表示されます。ファイルのアップロード時には、C-c C-d(auto-install-buffer-diff)を押すとedffが起動して、変更点を確認できます。

インストールする場合には、C-c C-cを入力し、保存・バイトコンパイル・ロードが自動で行われます。インストールしない場合には、C-c C-qを入力し、キャンセルします。

参考

auto-install.elでEmacsLispパッケージを自動インストール→anything.el関連を一括インストール - (rubikitch loves (Emacs Ruby CUI Books))