MELPAを持っている場合、GNU ELPAはまだ必要ですか?


31

MELPAには新しいバージョンのパッケージがあると人々が言っ​​ているので、これはいつも私を混乱させましたが、GNU ELPAがMELPAの単なるサブセットであるか、または両方が必要かどうかは明確ではありませんか?

私が尋ねる理由は、私は自分のパッケージをたくさん実験していて、package-list-packagesかなり時間がかかるからです。私は知っpackage-list-packages-no-fetchていますが、頻繁に最新のパッケージリストを取得したいと思います。

質問は、MELPAとGNU ELPAの両方を使用した場合と同じように、MELPAを使用して、同じ(および場合によってはより新しいバージョンの)パッケージを取得できますか?


5
はい、GNU Elpaは常に必要です。
マラバルバ

回答:


45

まず第一に、ELPAは仕様の名前であるEmacs Lisp Package Archiveです。その仕様には、GNU ELPA、Marmalade、およびMELPAの3つの広く知られている実装があります。

GNU ELPAは公式のGNU Emacsアーカ​​イブであり、十分に新しいEmacsインストールのためにすぐに使用可能になります。それは比較的小さく、それに貢献するには著作権の割り当てと公式メーリングリストとの協力が必要です。Linuxディストリビューションパッケージアーカイブに匹敵する審査に最も近いものです。

マーマレードは、大量のバージョン化されたパッケージを含む非公式のアーカイブです。作成者とメンテナーは、リリースを手動でアップロードする必要があります。審査は、新しいメンバーごとに1回実行されてからユーザーアカウントを持つことができます。その後、ユーザーは自由に解放できます。

MELPAは、パッケージの量が最も多い別の非公式アーカイブです。各パッケージは、そのパッケージが(通常はVCSの)ソースから自動的に構築された後、プル要求を含めるためのコードスタイルについて簡単に吟味されます。再構築は1時間ごとに行われます。タグ付きリリースのみをビルドするMELPA安定版もありますが、Marmaladeよりもパッケージがはるかに少なくなっています。

重複については、GNU ELPAとMarmaladeの間には事実上重複がなく、GNU ELPAとMELPAについても同様です。ただし、マーマレードとMELPAはかなり重複しています。マーマレードのほとんどはMELPAのサブセットであると推定します。だから、ほとんどのパッケージではMELPAを、いくつかのパッケージではGNU ELPAを使用できます。

更新malabarbaのパッケージ統計によると、MELPA Stableは利用可能なパッケージの数でMarmaladeを上回りました。今からマーマレードを選んだ。

更新:マーマレードは本質的に死んでいます。証明書の有効期限が切れており、新しいパッケージはほとんどアップロードされていません。これはかなり珍しいプロセスであるため、所有者が手動でユーザーに追加する必要があります。彼が行方不明になったため、2016年以降は新しいユーザーは追加されていません。


Melpa + Gnu Elpaのような音で、Marmaladeを使用しないのが良い方法です。変換する簡単な方法はありますか?
ジャスティンゴードン

package-archivesを使用して、それに応じてカスタマイズし、インデックスを更新しますM-x package-refresh-contentsM-x list-packages以前とは異なるリストを表示する必要があります。
わさささ

malarbabaのパッケージ統計は2015年12月にスタックしているようです...
JeanPierre

マーマレードが死んでいるので、もう1つ更新を追加しました
wasamasa

-5

いいえ、GNU ELPAやELPAは必要ないかもしれません。

GNU ELPAやサードパーティのリポジトリを使用しない実用的な理由は、Emacsがシャットダウンするのを防ぐためです。シャットダウンは時々発生しました(https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1を参照)

私のパッケージのほとんどはhttps // melpa.orgからダウンロードされます。選択したGNU ELPAパッケージの小さなローカルパッケージミラーを作成することで、GNU ELPAを回避できます。

でセットアップを確認してくださいhttps://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el。GNUELPAは使用されていません。

GNU ELPAのみのパッケージを使用する必要がある場合は、代わりに独自のローカルELPAを作成します(テキストファイルを作成するのと同じくらい簡単ですarchive-contents~/.emacs.d/localelpa

たとえばseq-2.20.tar、GNU ELPAにのみ存在し、これが必要です。このパッケージをローカルのelpaに追加しますhttps://github.com/redguardtoo/emacs.d/tree/master/localelpa

現在、GNU ELPAの4つのパッケージのみを使用しています。

gnu-elpa-keyring-update-2019.3.tar
let-alist-1.0.5.el
seq-2.20.tar
undo-tree-20170706.246.tar

これらのパッケージはmyに置かれているlocalelpaため、GNU ELPAにアクセスする必要はありません。

パッケージhttps://github.com/redguardtoo/elpa-mirrorを確認して、インストールされたパッケージからローカルリポジトリを作成することもできます。そのため、リモートリポジトリ(GNU ELPA、MELPA)でもオプションになりました。

ダウンロードしたパッケージの代わりにソースを使用することもできます。https://github.com/redguardtoo/emacs.d/tree/master/site-lispを確認してくださいrainbow-mode、ソースを使用する場合はload-pathhttp://emacswiki.org/emacs/LoadPath)を理解する必要があります。

package--add-to-archive-contentsパッケージをパッケージマネージャーに表示する前に、パッケージを微調整することもできます。これは文書化されていないハッキングの一種です。Emacs 23.4からEmacs 27まで動作しinit-elpa.elます。例を参照してください。


7
また、Auctex、seq.el、let-alist、rainbow-modeなどのパッケージにはGNU ELPAが必要です。したがって、Emacsの開発に参入し、より多くの人がそのすべての人が簡単に利用できるパッケージ。
-wasamasa

この問題に関する回答を少し更新しました。
チェンビン

@wasamasa教えてください、なぜauctexなどのパッケージにgnu elpaが必要なのですか?
-toogley

1
@toogleyはGNU ELPAでのみ利用できるため、そのためです。
-wasamasa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.