Kumpel i ja chcemy zacząć pisać pakiety emacs przeznaczone do użytku w naszej firmie. (Zaufaj mi, nic, co piszemy, nie zainteresuje nikogo spoza - to integracja z narzędziami wewnętrznymi).
Chcemy, aby instalacja i konserwacja pakietu była jak najłatwiejsza i uważamy, że oznacza to integrację z package.el
. Co musimy zrobić, aby skonfigurować repozytorium do takiego użytku?
package-repositories
Sean Allred
źródło
źródło
Odpowiedzi:
Skonfigurowałem lokalne archiwum pakietów (Emacs 24.5) przy użyciu
package.el
, najpierw tworząc dwa katalogipkgs
ilocal
. (Nazwy nie mają znaczenia.) Pliki wchodzące w skład twoich pakietów wchodząpkgs
ilocal
kończą się przechowywaniem twojego archiwum. Jeśli chcesz udostępnić archiwum innym osobom, możesz udostępnić jelocal
za pomocą serwera WWW, ale proces jest taki sam jak w przypadku tworzenia lokalnego archiwum.W moim
init.el
pliku umieszczam:Umieszczam moje archiwum w moim
.emacs.d
katalogu (stąduser-emacs-directory
wexpand-file-name
formularzu), ale możesz je umieścić w dowolnym miejscu.Po dokonaniu oceny, uruchom
M-x package-upload-file
i wprowadź nazwę pliku pakietu, który chcesz zainstalować. Spowoduje to wygenerowanie nowego pakietu wlocal
. Będzie można zobaczyć trzy nowe pliki w tamarchive-contents
,yourpackagename-version.el
iyourpackagename-readme.txt
. Teraz powinieneś być w stanie to zrobićM-x package-list-packages
i zobaczyć swój pakiet na liście. Przy odrobinie szczęścia znajdą się na górze z oznaczeniem „nowy”. Możesz zainstalować pakiet jak zwykle, a zobaczysz, że pojawia się on w twoim.emacs.d/elpa
katalogu, tak jak każdy inny pakiet.Powinno to działać od razu z Emacsem 24. Nie jestem pewien co do wcześniejszych wersji. Użytkownicy mogą uzyskać dostęp do pakietu w zwykły sposób, włączając
w ich
init.el
aktach.Aby uzyskać informacje na temat pisania pakietu, patrz Przygotowanie kodu Lisp do dystrybucji w podręczniku GNU Emacs Lisp.
źródło
M-x package-update-file
,.el
plik jest bezpośrednio podlocal/
reż. Czy istnieje sposób, aby utworzyć podkatalog dla każdego pakietu tak, że skończy sięlocal/pkg1/pkg1.el
,local/pkg2/pkg2.el
...?elpa
Katalogu jest ustawiona tak, jak opisano. Naprawdę nie wiem, dlaczegolocal
tak nie jest. Pamiętaj, że pliki te są generowane automatycznie, więc tak naprawdę nikt nigdy nie musi na nie patrzeć. Trzymam moje pliki pod kontrolą wersji za pomocą git i z tego powodu umieszczam mójlocal
katalog.gitignore
. Mójpkgs
katalog jest ładnie uporządkowany i pod kontrolą wersji, alelocal
taki właśnie jest.local/
? Chciałem hierarchicznego układu, aby móc określić metadane adresu URL pakietu jako;; URL: http://yourdomain.com/path-to-local-dir/pkg1
itd. Dla różnych pakietów. Ale to nie jest wielka sprawa. Jestem bardziej podekscytowany publikowaniem moich pakietów w lokalnej elpie. :)local
katalogu. Zamiast tego wskaż oryginalne źródło.Jeśli chcesz hostować coś takiego jak MELPA, możesz znaleźć instrukcje na wiki MELPA dotyczące hostowania własnej instancji MELPA:
https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive
Zasadniczo sprowadza się do:
recipes/
katalogumake
.źródło