본문 바로가기

기타

Heroku 설치 시 Access Denied 문제

C:\>heroku keys
 !    You have no SSH keys.

C:\>heroku login
heroku-cli: Updating to 6.15.5-1f03166... 10.1 MB/10.1 MB
 !    remove C:\Users\park2\AppData\Local\heroku\client\bin\node.exe: Access is denied.

C:\>heroku login
지정된 경로를 찾을 수 없습니다.

Heroku를 설치하다가 짜증나는 경험을 했다. 별다른 명령어를 수행하지도 않았는데 갑자기 자기 혼자 업데이트하더니 권한이 없다고 실패하고 위처럼 갑자기 명령어가 동작하지 않는것이다. 뭔가 했는데 이곳에서 비슷한 경험을 한 사람을 볼 수 있었다.

결론부터 말하면 저 client 폴더의 bin 폴더 내부에 보면 "6.15.5-1f03166..." 같은 특정 버전의 Heroku 클라이언트 폴더를 강제로 삭제해주면 된다. 그리고 위의 node.exe도 삭제해준다.

아마 환경 변수 때문인 것 같은데 일단 Heroku의 스크립트는 node.exe를 삭제할 권한이 없어서 에러가 나고 그러면 이렇게 설치가 완료되지 않은 상태에서 heroku 명령어를 실행하면 bin 폴더 내부의 heroku 스크립트를 실행하게 된다. 이 스크립트는 업데이트하다가 실패한 6.15.5 버전의 클라이언트를 사용하는데 해당 클라이언트는 제대로 설치되지 않았기 필요한 파일이 없어서 위처럼 "지정된 경로를 찾을 수 없습니다" 라는 쉘의 에러 메시지가 발생하는 것이다.

그래서 아예 폴더 자체를 지우고 다시 시도해보면 일단 없는 파일을 실행하는 heroku 스크립트는 사라지고 heroku/cli/bin의 heroku.exe를 실행하기 때문에 기존 버전은 이미 설치되었다고 간주하는 것인지 6.99로 더 업데이트한다. 그래서 아래처럼 성공하는 것을 볼 수 있다.

C:\>heroku login
heroku-cli: Updating to 6.15.5-1f03166... 10.1 MB/10.1 MB
 !    heroku-cli: update available from 6.15.5-1f03166 to 6.99.0-ec9edad
Enter your Heroku credentials:
Email: _____________@____.___
Password: **********
Logged in as __________@____.___