본문 바로가기

Emacs 업그레이드 후 겪은 Doom Emacs 오류 문제

기술적인 이야기/이맥스 2020. 6. 17.
반응형

어느 날 Emacs 버전을 새로 올렸습니다. 대망의 27 버전으로 올렸지요. 별문제 없이 빌드가 되었고 Doom Emacs 스크립트만 다시 설치하는 과정을 거친 후 정상적으로 동작하는 것을 확인하였습니다.

문제 발생

그런데 개인적으로 작성한 어떤 스크립트를 동작시키니 아래와 같은 오류가 나기 시작했습니다.

if: No catch for tag: emacs-version-changed, nil

우와. 뭔 소린지 모르겠습니다. 태그를 잡을 수 없다니요. 아아...

하지만 다행히도 구글링을 통해 선구자(?)들의 한숨과 해답을 찾을 수 있었습니다.

이 문제의 원인은 빌드된 패키지가 들어있는 straight가 현재 동작 중인 Emacs 버전과 다른 버전으로 빌드가 되어서 발생한다고 합니다. 그렇다면 이 부분을 새로 빌드해 주면 되겠지요? 이와 관련하여 여러 답변이 있었기에 몇 가지 시험해 봤습니다.

 

삽질 1

우선 build를 새로 해보라는 이야기가 있었습니다.

~/.emacs.d/bin/doom build

과거에는 아예 강제 빌드 옵션 -f 가 있었기 때문에 이걸 쓰라고 했는데 지금은 사라진 모양입니다. 그래서 이 옵션 없이 위와 같은 커맨드를 실행해 봤습니다.

그런데 생각보다 빌드가 빨리 끝납니다. 뭔가 빌드하는 게 없네요? 왜죠?

미심쩍어하며 Emacs를 구동시켜 확인해보니 전혀 해결이 안 되었습니다. 아악😫

삽질 2

그 뒤로 여러 답변을 볼 수 있었습니다. 업데이트를 해보라네요.

~/.emacs.d/bin/doom update

아하. 이걸로 빌드가 되는 건가요?

아뇨. 업데이트된 패키지만 받아서 그것만 빌드하더군요. 하아아😫

삽질 3

프로젝트 창시자의 답변으로는 upgrade 쪽에서 관련 문제를 해결하는 기능이 구현되었다고 합니다. 무려 2019년 답변이니 지금은 당연히 되어야 하겠지요?

~/.emacs.d/bin/doom upgrade

하지만 update와 별다른 차이를 못 느꼈습니다. 문제도 해결 안 되었고요. 😫

 

멋대로 해결하기

하지만 이미 첫 삽질에서 원인은 알 수 있었습니다. 따라서 그 원인을 근본적으로 없애(?)버리면 됩니다.

어떻게요? 바로 이렇게요.

rm -rf ~/.emacs.d/.local/straight

이렇게 straight를 싹 지워버리면 안 하고 싶어도 어쩔 수 없이 빌드를 해야 할 것입니다. 하하. 😏

이제 남은 일은 새로 설치하는 것이지요.

~/.emacs.d/bin/doom install

아마도 build 커맨드를 실행해도 비슷하겠지만 어차피 싹 날려버렸기 때문에 install이랑 별 차이는 없겠죠? 뭐 하여간 이 커맨드로 이제 Doom Emacs의 관리 스크립트가 모든 패키지를 새로 빌드합니다. 그리고 설치가 끝나면 당연하게도 문제가 해결됩니다.

 

결론

아니 잠깐 저게 해결이야? 그냥 재설치잖아!

정답입니다. 별로 할 말이 없네요. 🙄

그나저나 Emacs 27은 언제 공식 릴리즈 되는걸까요?

이 내용은 Doom Emacs Note에도 간략히 정리되었습니다.

728x90
반응형

'기술적인 이야기 > 이맥스' 카테고리의 다른 글

Doom Emacs에서 Python 개발 환경 설정하기  (725) 2020.10.21
Emacs 27.1 안정버전 공식 릴리즈  (1025) 2020.08.12
Property List (Emacs Lisp)  (253) 2020.03.30
Let과 Let* (Emacs Lisp)  (1328) 2020.03.30
Filter와 Map (Emacs Lisp)  (1235) 2020.03.30

댓글