ELPAサーバーをセットアップするにはどうすればよいですか?


15

バディと私は、会社での使用に特化したemacsパッケージの作成を開始したいと考えています。(私を信頼してください、私たちが書いたものは何も外部の人にとって大きな関心はありません-それは内部ツールとの統合です。)

パッケージのインストールとメンテナンスをできる限り簡単にしたいと考えており、これはとの統合を意味すると考えていpackage.elます。そのような使用のためにリポジトリを設定するには何をする必要がありますか?


MELPAをフォークし、パッケージのレシピを書きます!または、レシピだけを提供し、同僚にQUELPAを紹介します。
lunaryorn

回答:


18

私が使用してローカルパッケージのアーカイブ(Emacsの24.5)を設定するpackage.el最初の2つのディレクトリを作成することによって、pkgsおよびlocal。(名前は重要ではありません。)あなたのパッケージを構成するファイルがに行くpkgsと、localあなたのアーカイブを保持することになります。アーカイブを他の人が利用できるようにするlocal場合は、Webサーバーを使用して公開できますが、プロセスはローカルアーカイブの構築と同じです。

私は自分のinit.elファイルに以下を入れました:

(require 'package)
(setq package-enable-at-startup nil)

(require 'package-x)
(defvar local-archive
  (expand-file-name "local/" user-emacs-directory)
  "Location of the package archive.")
(setq package-archive-upload-base local-archive)
(add-to-list 'package-archives `("local" . ,local-archive) t)

(package-initialize)

私は私の中で私のアーカイブを置く.emacs.dディレクトリ(それゆえuser-emacs-directoryexpand-file-nameフォーム)しかし、あなたは次のようにどこでもあなたを置くことができます。

これが評価されたら、M-x package-upload-fileインストールするパッケージのファイル名を実行して入力します。これにより、新しいパッケージが生成されlocalます。あなたは、そこに3つの新しいファイルが表示されますarchive-contentsyourpackagename-version.elyourpackagename-readme.txt。これでM-x package-list-packages、パッケージを一覧表示できるようになります。運が良ければ、「new」とマークされたトップになります。通常どおりパッケージをインストールでき.emacs.d/elpa、他のパッケージと同じようにディレクトリに表示されます。

これはEmacs 24ですぐに使用できるはずです。以前のバージョンについてはわかりません。ユーザーは、以下を含めることで通常の方法でパッケージにアクセスできます。

(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives 
  '("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)

彼らのinit.elファイルに。

パッケージの作成方法については、GNU Emacs Lispマニュアルの「配布用のLispコードの準備」を参照してください。


ありがとう!これは非常によく書かれた答えであり、私にとってはうまくいきました。1つだけ質問があります。.するとM-x package-update-file.elファイルが直接local/dirの下に置かれます。私たちはで終わるので、各パッケージのサブディレクトリを作成する方法はありますかlocal/pkg1/pkg1.ellocal/pkg2/pkg2.el...?
カウシャルモディ

私の知る限りではありません。elpaディレクトリには、あなたが記述方法が設定されています。なぜそうでlocalはないのか本当に分かりません。これらのファイルは自動的に生成されるため、誰も実際にそれらを見る必要はありません。gitを使用してファイルをバージョン管理し、そのためにlocalディレクトリを配置.gitignoreします。私はpkgsディレクトリをきちんと整理し、バージョン管理下に置いていますlocalが、そうです。
ロドニー価格

ありがとう。確認するために、すべてのファイルはあなたのフラットな階層にダンプされますlocal/か?パッケージのURLメタデータをとして指定できる;; URL: http://yourdomain.com/path-to-local-dir/pkg1ように、さまざまなパッケージに対して階層配置が必要でした。しかし、それは大したことではありません。私は地元のエルパでパッケージを公開することにもっと興奮しています。:)
カウシャルモディ

1
私も平らです。localとにかく、そのディレクトリをユーザーに示しません。代わりに元のソースをポイントします。
ロドニー価格

これは素晴らしい!しかし、Windowsでtarファイルを使用すると、壊れたtarがアップロードされ、手動で再度コピーする必要があります。Emacsのバグ?24.5
fommil

1

MELPAのようなものをホストする場合は、MELPAのウィキで、独自のMELPAインスタンスをホストする方法に関する指示を見つけることができます。

https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive

基本的には、次のように要約されます。

  1. MELPA GitHubリポジトリをフォーク/クローンする
  2. recipes/ディレクトリからすべての既存のレシピを削除します
  3. 独自のレシピを追加する
  4. を実行しますmake
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.