패키지와 함께 외부 프로그램을 제공하는 올바른 접근 방법?


12

필자는 사용하는 외부 프로그램을 설치하여 일부 사용자의 시간과 노력을 절약 할 수있는 많은 elisp 패키지 (예 : codesearch, emacs-ycmd, traad)를 유지 관리합니다. 예를 들어 codesearch.el을 사용하면 사용자를 위해 codesearch 도구 (필자는 생략하지 않고 작성)를 다운로드, 컴파일 및 설치할 수 있습니다. 이것은 패키지 사용에 대한 하나 이상의 장벽을 제거합니다.

이를위한 "모범 사례"가 있습니까? 예를 들어, 외부 프로그램을 어디에 두어야합니까?

직접적인 조언이 없다면 이런 식으로 (그리고 이상적으로는 잘하는) 패키지를 언급 ​​할 수 있습니까?


1
사용자의 Emacs OS가 Linux, Windows 또는 Mac OS를 부트 로더로 사용하는지 제어 할 수 없다는 점을 고려할 때 매우 어려울 수도 불가능할 수도 있습니다 .-)
mbork

2
유연성을 극대화하기 위해 외부 프로그램을 Emacs 패키지에서 분리하는 것이 좋습니다. Emacs 패키지와 함께 외부 소프트웨어를 제공하는 접근 방식은 해석되는 Ruby / Python / TeX / ... 파일과 같은 것들에 가장 적합합니다. 시스템의 패키지 관리자를 통해 설치된 패키지를 Emacs Lisp 코드에 제공하는 반대의 접근 방식은 자동로드를 가질 수 없기 때문에 유연성이 떨어집니다.
wasamasa

두 사람이 옳은 것 같습니다. 외부 의존성을 제공하는 emacs 패키지의 유일한 예는 elpa 패키지에 일부 파이썬 스크립트를 묶는 jedi입니다.
abingham

이것이 우리가 Emacs 25에서 동적 로딩으로 할 수있는 것입니까?
wdkrnls

답변:


3

"모범 사례"는 없습니다. 그것에 대한 기존의 지원도 없습니다. 패키지 Foo를 위해 특별히 설치된 경우 패키지 위치는 패키지 Foo의 디렉토리에 있습니다.

ELSP를 통해 Elisp 패키지가 설치되었다고 가정하면 기본 Elisp 파일에 다음을 추가하려고 할 수 있습니다.

(eval-when-compile (call-process "make"))

적절한 Makefile을 제공하십시오. 물론 "가장 많은"플랫폼에서 작동하려면 좀 더 복잡한 것을 원할 것입니다.


1

당신은 제공 보길 원하는 것일 수도 엘 가져 오기 패키지를 설치하기위한 조리법을.

정보 파일의 섹션 9 "레시피 작성"을 참조하십시오 .

:build/system-type서로 다른 플랫폼에서 변수 요구 사항이있는 경우 시설은 특히 관심이 될 수 있습니다. 자세한 내용은 섹션 9.5 "빌드"를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.