GitHub 上に elpa の package archive を立てる

SATySFi 用の major mode である satysfi.el のパッケージを作成するのを例にして手順を説明します。上から順に実行していってください。

GitHub にリポジトリを作成する

名前は何でも大丈夫です。作成できたらリポジトリを clone します。

パッケージをリポジトリ内に作成する

まず、パッケージのためのディレクトリを作ります。

$ cd /path/to/your/repository
$ mkdir satysfi-0.1

ディレクトリ名は パッケージ名-バージョン にする必要があります。

ソースコードを追加します。 ソースの追加時は元々のソースのディレクトリ構造を保つようにするのが良いと思います。

$ cat <<EOF > satysfi-0.1/satysfi.el
(長いので省略)
EOF

パッケージ定義ファイルを追加します。ファイル名は パッケージ名-pkg.el にする必要があります。

$ cat <<EOF > satysfi-0.1/satysfi-pkg.el
(define-package "satysfi" "0.1" "Major mode for SATySFi" '() :keywords ("languages"))
EOF

書式は (define-package "パッケージ名" "バージョン" "説明文" '(依存パッケージリスト) :keywords ("キーワード1" "キーワード2")) です。

お好みでパッケージを tar 化します。しなくてもよいです。その場合パッケージング方法は single にします。 ファイル名は archive-contents で指定したバージョンを含めた、パッケージ名-バージョン.tar にする必要があります。

$ tar cf satysfi-0.1.tar satysfi-0.1/

パッケージインデックスファイルを追加します。archive-contents という名前にする必要があります。

$ cat <<EOF > archive-contents
(1 (satysfi . [(0.1) ( ) "SATySFi" tar]))
EOF

(1 ...) の 1 の部分が何を意味しているかは私も知りませんが、知らなくても問題ないので無視しましょう。

各パッケージ定義の書式は、(パッケージ名 . [(バージョン (対応 emacs バージョン) "説明文" パッケージング方法)]) のようです。それぞれ以下のような設定が可能です。

.emacs に elpa を追加

(add-to-list 'package-archives '("myelpa" . "https://raw.githubusercontent.com/YOURUSERNAME/elpa/master/"))

("myelpa" . "https://raw.githubusercontent.com/YOURUSERNAME/elpa/master/") の部分で URL ではなくローカルディレクトリを指定することも可能です。

パッケージのインストール

emacs を起動して package-refresh-contents して package-install でインストールします。

以上です。

Comments

comments powered by Disqus