태그 보관물: tramp

[Tip] Emacs: rust-analyzer-tramp가 계속 죽는 문제

Remote server에 tramp mode로 rust file을 읽어서 rust-mode에 진입한 후에 미니버퍼에 아래와 같은 경고가 뜨는데, ‘y’를 입력해서 rust-analyzer-tramp를 재실행 시켜도 계속해서 죽어서 같은 오류가 보이는 문제가 생겼다.

rust-analyzer 설치 확인

Remote server측에 rust-analyzer가 설치되어 있지 않으면 이와 같은 문제가 생길 수 있으니 다음의 명령어로 rust-analyzer를 update해본다. 만약 설치 되어 있지 않다면 이 과정에서 설치될 것이다.

rustup component add rust-analyzer

Remote path 사용

rust-analyzer가 이미 설치 되어 있음에도 문제가 발생 한다면 서버측의 path가 제대로 설정되고 있는지 확인해 보자. Trump mode는 서버측의 PATH 환경변수 값 을 읽지 않으므로 경로정보를 서버의 것으로 유지 하도록 설정해 주어야 한다.

 (require 'tramp)
 (setq tramp-default-method "ssh")
 ;; Respect remote path.
 (with-eval-after-load 'tramp
   (add-to-list 'tramp-remote-path 'tramp-own-remote-path))

Emacs로 AWS EC2 원격지 파일 편집

Emacs의 TRAMP mode를 사용하면 원격서버에 있는 불러와서 바로 편집할 수 있다. 다음은 ssh가 돌고있는 AWS EC2 서버의 파일을 TRAMP mode로 편집하기 위한 설정을 설명한다.

Emacs: version 25.1 (macOS)

init.el에 TRAMP mode 설정을 추가.

;TRAMP
(require 'tramp)
(setq tramp-default-method "ssh")

편집할 원격지 파일을 불러 올 때는 계정@호스트:파일경로 형식으로 하면되는데, EC2의 pem 키를 지정할 수 있는 ‘-i’ option을 지원하지 않는다. 매번 비밀번호를 입력하는게 귀찮다면 ssh-add로 키를 추가한다.

$ ssh-add ~/.ssh/ec2_key.pem 
Identity added: /Users/USER/.ssh/ec2_key.pem (/Users/USER/.ssh/ec2_key.pem)

이제 Emacs에서 다음의 명령어로 원격 파일에 접속하거나 파일 목록을 불러 올 수 있다.

Find file: /USERID@REMOTE_SERVER:~/