답변:
내가 사용하여 로컬 패키지 아카이브 (이맥스 24.5) 설정 package.el
처음 두 디렉토리를 만들어을 pkgs
하고 local
. (이름은 중요하지 않습니다.) 패키지를 포함하는 파일의 이동 pkgs
및 local
보관을 잡고 끝날 것입니다. 다른 사용자가 아카이브를 사용할 수있게하려면 local
웹 서버를 사용하여 노출 할 수 있지만 프로세스는 로컬 아카이브를 빌드하는 것과 동일합니다.
나는 내 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-directory
에서 expand-file-name
양식)하지만 당신은 같은 어디서나 그것을 넣을 수 있습니다.
이것이 평가되면 실행할 M-x package-upload-file
패키지의 파일 이름을 실행 하고 입력하십시오. 에 새 패키지가 생성됩니다 local
. 거기 archive-contents
에 yourpackagename-version.el
,, 및 세 개의 새 파일이 표시됩니다 yourpackagename-readme.txt
. 이제 M-x package-list-packages
패키지를 작성하고 볼 수 있어야합니다 . 운이 좋으면 "새"라고 표시된 최상위에있게됩니다. 평소와 같이 패키지를 설치할 수 있으며 .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 코드 준비를 참조하십시오 .
M-x package-update-file
넣습니다 . 우리가 결국 그렇게하는 각 패키지의 하위 디렉토리를 만들 수있는 방법이 있나요 , ...? .el
local/
local/pkg1/pkg1.el
local/pkg2/pkg2.el
elpa
디렉토리는 당신이 설명하는 방법을 설정합니다. 나는 왜 그렇지 않은지 정말로 모른다 local
. 이러한 파일은 자동으로 생성되므로 아무도 실제로 볼 필요가 없습니다. git을 사용하여 파일을 버전 제어 상태로 유지하고 그 이유로 내 local
디렉토리를 넣 .gitignore
습니다. 나는 pkgs
디렉토리를 멋지게 정리하고 버전 관리하에 있지만 local
그게 그대로입니다.
local/
됩니까? ;; URL: http://yourdomain.com/path-to-local-dir/pkg1
다른 패키지에 대해 패키지의 URL 메타 데이터 등을 지정할 수 있도록 계층 적 배열을 원했습니다 . 그러나 큰 문제는 아닙니다. 로컬 엘파에 패키지를 게시하는 것이 더 기쁩니다. :)
local
어쨌든 귀하의 사용자가 해당 디렉토리 를 가리 키지 않을 것 입니다. 대신 원래 소스를 가리 킵니다.
MELPA와 같은 것을 호스팅하려면 MELPA 위키에서 자신의 MELPA 인스턴스를 호스팅하는 방법에 대한 지침을 찾을 수 있습니다.
https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive
본질적으로 다음과 같이 요약됩니다.
recipes/
디렉토리 에서 기존 레시피를 모두 삭제하십시오.make
.