Ein Kumpel und ich möchten anfangen, Emacs-Pakete zu schreiben, die für die Verwendung in unserem Unternehmen spezifisch sind. (Vertrauen Sie mir, nichts, was wir schreiben, wird für Dritte von großem Interesse sein - es ist die Integration in interne Tools.)
Wir möchten die Installation und Wartung von Paketen so einfach wie möglich gestalten und glauben, dass dies die Integration in bedeutet package.el
. Was müssen wir tun, um ein Repository für eine solche Verwendung einzurichten?
package-repositories
Sean Allred
quelle
quelle
Antworten:
Ich habe ein lokales Paketarchiv (Emacs 24.5) eingerichtet,
package.el
indem ich zuerst zwei Verzeichnisse erstellt habe,pkgs
undlocal
. (Die Namen spielen keine Rolle.) Die Dateien, aus denen Ihre Pakete bestehen, gehen einpkgs
undlocal
werden Ihr Archiv enthalten. Wenn Sie ein Archiv für andere verfügbar machen möchten, können Sie eslocal
über einen Webserver verfügbar machen. Der Vorgang entspricht jedoch dem Erstellen eines lokalen Archivs.Ich habe Folgendes in meine
init.el
Akte aufgenommen:Ich habe mein Archiv in mein
.emacs.d
Verzeichnis gestellt (daheruser-emacs-directory
in dasexpand-file-name
Formular), aber Sie können es an einer beliebigen Stelle ablegen.Sobald dies ausgewertet ist, führen Sie aus
M-x package-upload-file
und geben Sie den Dateinamen Ihres zu installierenden Pakets ein. Dadurch wird ein neues Paket in generiertlocal
. Sie werden in drei neue Dateien sehen,archive-contents
,yourpackagename-version.el
, undyourpackagename-readme.txt
. Jetzt sollten Sie in der Lage sein,M-x package-list-packages
Ihr Paket aufzulisten und zu sehen. Mit etwas Glück sind sie oben mit "neu" markiert. Sie können das Paket wie gewohnt installieren und es wird.emacs.d/elpa
wie jedes andere Paket in Ihrem Verzeichnis angezeigt.Dies sollte für Emacs 24 sofort funktionieren. Bei früheren Versionen bin ich mir nicht sicher. Ihre Benutzer können wie gewohnt auf Ihr Paket zugreifen, indem Sie Folgendes einfügen
in ihrer
init.el
Akte.Informationen zum Schreiben eines Pakets finden Sie unter Vorbereiten von Lisp-Code für die Verteilung im GNU Emacs Lisp-Handbuch.
quelle
M-x package-update-file
, wird die.el
Datei direkt unterlocal/
dir abgelegt . Gibt es eine Möglichkeit , ein Unterverzeichnis für jedes Paket zu erstellen , so dass wir am Ende mitlocal/pkg1/pkg1.el
,local/pkg2/pkg2.el
, ...?elpa
Verzeichnis wird so eingerichtet, wie Sie es beschreiben. Ich weiß wirklich nicht warumlocal
. Denken Sie daran, dass diese Dateien automatisch generiert werden, sodass niemand sie wirklich ansehen muss. Ich behalte meine Dateien mit git unter Versionskontrolle und lege aus diesem Grund meinlocal
Verzeichnis dort ab.gitignore
. Ich halte meinpkgs
Verzeichnis gut organisiert und unter Versionskontrolle, aber eslocal
ist das, was es ist.local/
auch in einer flachen Hierarchie gespeichert werden ? Ich wollte die hierarchische Anordnung, damit ich die URL-Metadaten des Pakets als;; URL: http://yourdomain.com/path-to-local-dir/pkg1
usw. für verschiedene Pakete angeben kann . Aber es ist keine große Sache. Ich bin mehr begeistert, meine Pakete in einem lokalen elpa zu veröffentlichen. :)local
sowieso nicht auf dieses Verzeichnis verweisen . Zeigen Sie stattdessen auf die Originalquelle.Wenn Sie etwas wie MELPA hosten möchten, finden Sie im MELPA-Wiki Anweisungen zum Hosten Ihrer eigenen MELPA-Instanz:
https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive
Im Wesentlichen läuft es auf Folgendes hinaus:
recipes/
Verzeichnismake
.quelle