Next: Package Files, Previous: Package Statuses, Up: Packages [Contents][Index]
パッケージを一番便利にインストールするのはパッケージメニューを使う方法(Package Menuを参照してください)ですが、コマンドM-x package-installを使用することもできます。これはステータスが‘available’のパッケージ名の入力を求め、それをダウンロードしてインストールします。
他のパッケージが提供する機能に依存するために、それらのパッケージがインストール済みであることを必要(require)とするパッケージもあるでしょう。Emacsがそのようなパッケージをインストールするときは、必要なパッケージがインストールされていなければ、それらのパッケージのダウンロードとインストールも自動に行ないます(必要なパッケージが何らかの理由で利用できない場合、Emacsはエラーをシグナルしてインストールを中止します)。パッケージの必要条件リスト(requirements list)は、そのパッケージのヘルプバッファーに表示されます。
デフォルトでは、パッケージはEmacs開発者により保守される単一のパッケージアーカイブからダウンロードされます。これは変数package-archives
により制御されます。この変数の値は、Emacsが認識するパッケージアーカイブのリストです。リストの各要素は(id
.
location)
という形式でなければなりません。ここで、idはパッケージアーカイブの名前、locationはパッケージアーカイブディレクトリーのURLか名前です。サードパーティーのアーカイブを使用したい場合はこのリストを変更できます
— が、自己責任で行い、信用できるサードパーティーだけを使用してください!
パッケージアーカイブのメンテナーは、パッケージにサイン(signing)を付して、信頼度を増すことができます。これらはプライベートとパブリックのペアーからなる暗号化キーにより生成されます。プライベートキーは各パッケージにたいする署名ファイル(signature
file)を作成するのに使用されます。パブリックキーにより、署名ファイルを使用してそのパッケージ作成者と、それが改ざんされていないかを確認できます。署名の検証は、EasyPGインターフェイス(EasyPG in Emacs EasyPG Assistant
Manualを参照)を通じてthe GnuPG
packageを使用します(EasyPG in Emacs EasyPG Assistant
Manualを参照)。有効な署名であっても、それが悪意がないパッケージであることを厳正に保証する訳ではなく、用心するべきです。パッケージアーカイブは、パブリックキーの入手方法について、説明を提供するべきです。http://pgp.mit.edu/のようなサーバーからキーをダウンロードするのも1つの方法です。Emacsにキーをインポートするには、M-x
package-import-keyringを使用します。Emacsは変数package-user-dir
で指定されるディレクトリー(デフォルトはpackage-gnupghome-dir
のサブディレクトリーgnupg)にパッケージキーを格納します。これにより、Emacsが署名を検証する際に、オプションgnupgでGnuPGを呼び出すようになります。package-gnupghome-dir
がnil
,の場合は、GnuPGのオプション‘--homedir’は省略します。GNUパッケージアーカイブにたいするパブリックキーはEmacsと共に配布され、etc/package-keyring.gpgにあります。Emacsはこれを自動的に使用します。
ユーザーオプションpackage-check-signature
が非nil
の場合、Emacsはパッケージのインストール時に署名の検証を試みます。このオプションが値allow-unsigned
をもち、使用可能なOpenPGP設定が見つかったらサインされたパッケージはチェックされますが、未サインのパッケージもまだインストールができます。パッケージにサインしないアーカイブを使用する場合には、それらをpackage-unsigned-archives
に追加できます(値がallow-unsigned
で使用可能なOpenPGPが見つからなければこのオプションはあたかも値がnil
であるかのように扱われる)。値がt
なら少なくとも1つの署名が有効でなければならず、all
ならすべての署名が有効でなければなりません。
暗号化キーとサインについての詳細は、GnuPG in The GNU Privacy Guard Manualを参照してください。EmacsのGNU Privacy Guardにたいするインターフェースについては、EasyPG in Emacs EasyPG Assistant Manualを参照してください。
複数のパッケージアーカイブが有効で、同じパッケージにたいして異なるバージョンを提供する場合は、オプションpackage-pinned-packages
が便利かもしれません。指定したパッケージが指定されたアーカイブだけからダウンロードされるように、このリストにパッケージとアーカイブのペアーを追加できます。
複数の有効なパッケージアーカイブがあるときに便利な他のオプションとして、package-archive-priorities
があります。これは各アーカイブにたいして、優先度(高い数字は高い優先度のアーカイブを指定します)を指定します。このオプションにより指定されない限り、アーカイブの優先度はデフォルトの0です。優先度高のアーカイブのパッケージが利用可能な場合、優先度低のアーカイブのパッケージはメニューに表示されません(これはpackage-menu-hide-low-priority
の値により制御されます)。
一度パッケージをダウンロードしてインストールすると、そのパッケージはカレントEmacsセッションで利用可能になります。
パッケージを利用可能にするにはパッケージのディレクトリーをload-path
に追加してパッケージのautoloadをロードします。パッケージのautoloadの効果はパッケージごとにさまざまです。ほとんどのパッケージは、いくつかの新たなコマンドを利用可能にするだけですが、Emacsセッションにたいして広範な影響を及ぼすものもあります。この種の情報についてはパッケージのヘルプバッファーを参照してください。
パッケージをインストール後にはその後のすべてのEmacsセッションで自動的にロードされます。これはEmacs開始時のinitファイル処理前、早期initファイル(Early Init Fileを参照)の処理後に行なわれます。例外として‘-q’か‘--no-init-file’オプション(Initial Optionsを参照してください)で呼び出されたときは、Emacs開始時にパッケージを利用可能にしません。
スタートアップ時にEmacsが自動的にパッケージを利用可能しないようにするためには変数package-enable-at-startup
をnil
に変更してください。この変数は正規のinitファイル(regular
init file)のロード前に読み込まれるので早期initファイル(early init
file)で行うようにしてください。現在のところこの変数はCustomizeを通じてセットできません。
package-enable-at-startup
をnil
にセットしてもスタートアップ中およびスタートアップじにパッケージを利用可能にすることはできます。インストール済みパッケージをスタートアップ中に利用可能にするにはinitファイル内で関数package-activate-all
を呼び出し手ください。スタートアップ後に利用可能にするにはコマンドM-:
(package-activate-all) RETを呼び出してください。
スタートアップ時に利用可能になるようにパッケージのロードをより精密に制御するために、変数package-load-list
を使用することができます。この変数の値にはリストを指定します。(name version)
という形式のリスト要素は、nameという名前のパッケージのバージョンversionを利用可能にするように指示します。ここでversionには、(そのパッケージの特定のバージョンに対応する)バージョン文字列、t
(任意のインストール済みのバージョンを意味する)、またはnil
(バージョンを意味しない。パッケージを利用可能にすることを抑止してパッケージを無効にする)を指定します。リストの要素にはシンボルall
も指定でき、これは他のリスト要素で名前指定されていない任意のパッケージのインストール済みバージョンを利用可能にすることを意味します。デフォルト値は単に'(all)
となっています。
たとえばpackage-load-list
を'((muse "3.20")
all)
にセットするとEmacsは‘muse’のバージョン3.20のみ、および‘muse’以外のパッケージのインストール済みの任意のバージョンをロードします。‘muse’の他のバージョンがインストールされていたとしてもそれらは無視されます。‘muse’パッケージは‘held’というステータスでパッケージメニューにリストされるはずです。