[emacs] パッケージを自動でインストールする

設定ファイルをgithubで同期して複数のPCで共有している身として、 emacsでパッケージを入れるたびにコマンドを叩くのは面倒です。
いろいろ調べた結果、以下の方法で自動化する事ができました。 emacsは新しめのものを使っています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
;; package settings
(require 'package)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
 
;; install packages
(defvar my/favorite-packages
  '(
    ;; ここにパッケージを羅列する
    ;;; for auto-complete
    auto-complete
    ;;; maekdown
    markdown-mode
    ))
;; my/favorite-packagesからインストールしていないパッケージをインストール
(defvar my/package-is-update nil)
(dolist (package my/favorite-packages)
  (unless (package-installed-p package)
    (unless my/package-is-update
      ;; package がインストールされていなかったらpackageリストを更新する
      (progn
       (setq my/package-is-update t)
       (package-refresh-contents)
      :)
    )
    (package-install package)))

package-installed-pでパッケージが入っているか確認できるので入っていなければインストールします。

0 件のコメント :

コメントを投稿