Previous: , Up: Emacs Lispパッケージ   [Contents][Index]


50.5 Fetching Package Sources

package-installはデフォルトではパッケージアーカイブからtarballをダウンロードしてそのファイルをインストールします。あなたがパッケージのソースをハッキングして、あなたの変更を他の人たちと共有したい場合には、これでは不十分かもしれません。そのような場合にはアップストリームのソースを直接取得して、それにたいして作業したいと思うのではないでしょうか。そのようにすることによって、パッチ開発やバグレポートが容易になることが多々あるからです。

パッケージのソースコードをソースから直接手に入れるためにpackage-vc-installを使うのも1つの手段です。このコマンドは通常のパッケージの場合と同じように、すべてのファイルがバイトコンパイルされて、auto-loadされることも保証してくれます。この方法でインストールされたパッケージは、他のパッケージとまったく同じように振る舞うでしょう。それらのパッケージはpackage-upgradepackage-upgrade-allを使ってアップグレード、package-deleteを使って再び削除することができます。通常のパッケージのリストにさえこれらのパッケージが表示されます。パッケージのリストに加えずにソースのcloneだけを望む場合には、package-vc-checkoutを使用してください。

ソースをチェックアウトするとカレントの開発HEADにたいするバグを再現させたり、新しい機能を実装して不満を解消したいと思うかもしれません。このパッケージのメタデータにメンテナーへ連絡する方法が示されていれば、コマンドpackage-report-bugを使用してバグを電子メール経由で報告することができます。このレポートにはあなたがカスタマイズしたすべてのユーザーオプションが含まれます。メンテナーと共有したい変更を行ったら、まずその変更をコミットしてからコマンドpackage-vc-prepare-patchでその変更を共有できます。Preparing Patchesを参照してください。

あなたが自分のパッケージを保守している場合は、リモートレポジトリにoneするのではなくローカルでのチェックアウトを使いたいと思うかもしれません。package-vc-install-from-checkoutを使ってこれを行うことができます。これはパッケージのディレクトリー(パッケージのファイルとディレクトリーを参照)からあなたのチェックアウトにシンボリックリンクを作成して、コードの初期化を行うコマンドです。初期化を繰り返してautoloadを更新するために、package-vc-rebuildの使用が必要かもしれないことに注意してください。

50.5.1 Specifying Package Sources

ソースからパッケージをインストールするためにはパッケージのソースをどこから取得するか(たとえばコードレポジトリ)、そしてコードの構造に関する基本情報(たとえば複数ファイルパッケージのメインファイル)をEmacsが承知していなければなりませんこれらのプロパティを記述するのがパッケージ仕様(package specification)です。

パッケージアーカイブ(Package Archives in The Emacs Lisp Reference Manualを参照)からサポートされると、Emacsはそのアーカイブからパッケージの仕様を自動的にダウンロードできます。package-vc-installに渡される1つ目の引数がパッケージを命名するシンボルであれば、Emacsはそのパッケージ用にアーカイブが提供する仕様を使用します。

;; EmacsはGNU ELPAからBBDBの仕様をダウンロードする:
(package-vc-install 'bbdb)

package-vc-installの1つ目の引数はパッケージ仕様の場合もあります。これによってユーザーオプションpackage-archivesにリストされている既知のアーカイブ以外の場所からソースパッケージをインストールできるようになります。パッケージ仕様は(name . spec)という形式のリストです。ここでspecは下記テーブルの任意のキーを使用するプロパティリストである必要があります。

コードレポジトリやバージョンコントロールシステムでの作業に使用する基本的な用語の定義についてはVCS Concepts in The GNU Emacs Manualを参照してください。

:url

パッケージのソースコードを取得するレポジトリを指定するURL文字列。

:branch

インストールするコードのリビジョンを指定する文字列。バージョンのバージョン番号と混同しないこと。

:lisp-dir

Lispソースのロードに用いる、レポジトリに相対的なディレクトリー名文字列。デフォルトはレポジトリのルートディレクトリー。

:main-file

パッケージのメタデータを集約したプロジェクトのメインファイル名文字列。与えられない場合のデフォルトはパッケージ名に".el"を追加したファイル名。

:doc

Infoファイルをビルドするためのレポジトリに相対的なドキュメンテーションファイル名文字列。TexinfoまたはOrgのファイルが指定できる。

:make

A string or list of strings providing the target or targets defined in the repository Makefile which should run before building the Info file. Only takes effect when package-vc-allow-build-commands is non-nil.

:shell-command

A string providing the shell command to run before building the Info file. Only takes effect when package-vc-allow-build-commands is non-nil.

:vc-backend

パッケージのレポジトリのコピーのダウンロードに用いるVCバックエンドを指名する文字列(Version Control Systems in The GNU Emacs Manualを参照)。省略時には提供されたURLからEmacsが推測を試み、それに失敗するとプロセスはpackage-vc-default-backendの値にフォールバックする。

;;情報を手作業で指定:
(package-vc-install
  '(bbdb :url "https://git.savannah.nongnu.org/git/bbdb.git"
         :lisp-dir "lisp"
         :doc "doc/bbdb.texi"))
This page has generated for branch:master, commit:762705fb24fd90db318f2e51c1e762452d26f7e2 to check Japanese translation.