때로는 unload-feature
라이브러리를 언로드 하기 위해 전화를 걸고 싶습니다 . 라이브러리는 라이브러리에 의존하고 다른 라이브러리는 해당 라이브러리에 의존합니다…
종속성 트리를 수동으로 거치지 않고 라이브러리와 라이브러리에 의존하는 모든 라이브러리를 언로드하는 방법은 무엇입니까?
일반적인 사용 사례는 패키지의 모든 라이브러리를 언로드하는 것입니다 (예 : 업그레이드 또는 제거시). 그렇게하는 방법이 있으면 충분합니다.
때로는 unload-feature
라이브러리를 언로드 하기 위해 전화를 걸고 싶습니다 . 라이브러리는 라이브러리에 의존하고 다른 라이브러리는 해당 라이브러리에 의존합니다…
종속성 트리를 수동으로 거치지 않고 라이브러리와 라이브러리에 의존하는 모든 라이브러리를 언로드하는 방법은 무엇입니까?
일반적인 사용 사례는 패키지의 모든 라이브러리를 언로드하는 것입니다 (예 : 업그레이드 또는 제거시). 그렇게하는 방법이 있으면 충분합니다.
답변:
이 작업을 수행하는 기본 방법은 없습니다 . Elisp 설명서의 언로드 를 참조하십시오 .
unload-feature
다른 패키지가 의존하더라도 force
강제로 언로드 할 수 있는 인수를 취합니다 . 당신의 필요에 충분합니까?P
P
그렇지 않은 경우 다음을 unload-feature
포함 하는 재귀 버전을 만들 수 있습니다 .
(let* ((file (feature-file feature))
(dependents (delete file (copy-sequence (file-dependents file)))))
(when dependents
(mapc #'unload-feature-recursive (mapcan #'file-provides dependents))))
unload-feature
것이 문제의 핵심이었습니다.