Seorang teman dan saya ingin mulai menulis paket emacs khusus untuk digunakan di perusahaan kami. (Percayalah, tidak ada yang kami tulis akan menarik bagi siapa pun di luar - ini integrasi dengan alat internal.)
Kami ingin membuat instalasi dan pemeliharaan paket semudah mungkin dan kami pikir ini berarti integrasi dengan package.el
. Apa yang perlu kita lakukan untuk mengatur repositori untuk penggunaan seperti itu?
package-repositories
Sean Allred
sumber
sumber
Jawaban:
Saya mengatur arsip paket lokal (Emacs 24.5) menggunakan
package.el
dengan terlebih dahulu membuat dua direktori,pkgs
danlocal
. (Nama tidak masalah.) File-file yang terdiri dari paket Anda masukpkgs
, danlocal
pada akhirnya akan menyimpan arsip Anda. Jika Anda ingin membuat arsip tersedia untuk orang lain, Anda dapat mengeksposlocal
menggunakan server web, tetapi prosesnya sama dengan membangun arsip lokal.Saya menaruh yang berikut ini di
init.el
file saya :Saya meletakkan arsip saya di
.emacs.d
direktori saya (karena ituuser-emacs-directory
dalamexpand-file-name
bentuk) tetapi Anda dapat meletakkannya di mana saja Anda suka.Setelah ini dievaluasi, jalankan
M-x package-upload-file
dan masukkan nama file paket Anda untuk diinstal. Ini akan menghasilkan paket baru dilocal
. Anda akan melihat tiga file baru di sana,archive-contents
,yourpackagename-version.el
, danyourpackagename-readme.txt
. Sekarang Anda harus dapat melakukanM-x package-list-packages
dan melihat paket Anda terdaftar. Jika beruntung, mereka akan berada di puncak bertanda "baru". Anda dapat menginstal paket seperti biasa, dan Anda akan melihatnya muncul di.emacs.d/elpa
direktori Anda sama seperti paket lainnya.Ini seharusnya bekerja di luar kotak untuk Emacs 24. Saya tidak yakin tentang versi sebelumnya. Pengguna Anda dapat mengakses paket Anda dengan cara biasa dengan memasukkan
dalam
init.el
file mereka .Untuk informasi tentang cara menulis paket, lihat Mempersiapkan kode Lisp untuk distribusi dalam manual GNU Emacs Lisp.
sumber
M-x package-update-file
, itu menempatkan.el
file langsung di bawahlocal/
dir. Apakah ada cara untuk membuat subdirektori untuk setiap paket sehingga kita berakhir denganlocal/pkg1/pkg1.el
,local/pkg2/pkg2.el
, ...?elpa
direktori mengatur cara Anda menjelaskan. Saya benar-benar tidak tahu mengapalocal
tidak. Ingatlah bahwa file-file ini dihasilkan secara otomatis, jadi tidak ada yang benar-benar harus melihatnya. Saya menyimpan file saya di bawah kontrol versi dengan git, dan meletakkanlocal
direktori saya.gitignore
untuk alasan itu. Saya menjagapkgs
direktori saya terorganisir dengan baik, dan di bawah kontrol versi, tetapilocal
memang seperti itu.local/
juga? Saya ingin pengaturan hierarkis sehingga saya dapat menentukan data meta URL paket;; URL: http://yourdomain.com/path-to-local-dir/pkg1
, dan seterusnya untuk paket yang berbeda. Tapi itu bukan masalah besar. Saya lebih senang menerbitkan paket saya di elpa lokal. :)local
direktori itu. Arahkan mereka ke sumber asli sebagai gantinya.Jika Anda ingin meng-host sesuatu seperti MELPA, Anda dapat menemukan instruksi pada wiki MELPA tentang cara meng-host instance MELPA Anda sendiri:
https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive
Intinya, intinya adalah:
recipes/
direktorimake
.sumber