ubuntu에 awscli 최신 버전 pip로 설치하기

썰풀기 전에

vobour 블로그가 리눅스에서 굴리기 조금 난감한 점이, firefox를 쓰면 한글은 제대로 써지는데 각종 서식이 하나도 먹지 않는다. 예전에는 미디엄 단축키로 code block등을 썼는데 지금은 단축키를 막은 건지 바뀐건지 안 됨.
그래서 서식 입력을 위해 크롬 같은 걸로 들어가면 그 때는 한글 입력이 안 된다(...)

apt-get으로 awscli 설치하기

사실 우분투로 awscli 설치하기는 정말 간단하다.
$ sudo apt-get install awscli
이거 하나면 바로 설치되나, repo가 자주 업데이트 되지는 않는지 최신 버전(18년 3월 20일 현재 1.14.58)의 aws가 설치되지 않는다.
특별히 최신 버전이 아니어도 상관없다고 생각했으나 AWS ECR에 Docker 이미지를 업로드하려면 --no-include-email 옵션을 입력해줘야 하는데 그게 awscli 최신 버전에서만 사용이 가능하다.
그런데 최신 버전 awscli는 apt-get install로는 설치하기가 힘들고 python 패키지 관리자인 pip를 사용해야 한다.

python3.6와 pip3 설치

$ sudo apt-get install python3 python3-pip

pip3로 awscli 설치

$ pip3 install awscli --upgrade --user
이제 aws --version을 입력해보면 제대로 설치가 되어있음을 확인할 수.. 없었다. 적어도 내 경우는.
위의 옵션 --user 같은 건 내가 뒤늦게 발견한 옵션이라 아마 처음부터 저 옵션을 넣고 설치하면 제대로 /usr/bin에 aws 명령어가 있을지도 모른다. 어쨌거나 내 경우엔 설치를 완료해도 aws 명령어는 존재하지 않는 명령어라고만 떴다. aws 명령어가 어딘가 이상한 곳에 숨어있는 거고 이걸 찾아내서 환경변수를 등록해주는 작업을 할거다.
설치 전에 python3에 대한 환경변수를 설정하면 제대로 aws 명령어가 뜬다고도 했는데 그게 와닿지 않았던 나로서는 무식하게 aws 해당 명령어를 직접 환경변수로 등록해주기로 했다.
다음 블로그 글도 도움이 되는 분이 있으리라 생각한다.
user mode로 설치한 pip 패키지 PATH에 등록하기
180320 수정 내용
수정 전 포스팅에는 아래 명령어를 적었다. 해당 명령어를 사용하면 root 계정으로 설치되서 경로를 찾을 수 없다.
$ sudo -H pip3 install awscli --upgrade --user

aws 명령어 경로 찾기

일단 aws 명령어가 위치한 곳을 찾자. 아쉽게도 which aws로는 못 찾는다.
다음은 stack overflow에서 찾은 답변에서 가져온 방법이다.
$ find /System/Library/Frameworks/Python.framework -type f -perm -100 -name aws
답변의 예시를 적당히 내가 찾을 수 있게 바꿔보았다.
$ find /home/'ubuntu 계정이름'/ -type f -perm -100 -name aws
내 경우 /home/'ubuntu 계정이름'/.local/bin/aws라는 곳에 있었다. 따라서 해당 위치를 각자의 shell 설정에 환경변수로 등록해준다. 나는 zsh를 쓰니까 .zshrc에 다음 줄을 추가해주었다.
export PATH="/home/'ubuntu 계정이름'/.local/bin/:$PATH"
그 후 변경된 설정을 반영한다.
$ source ~/.zshrc
이제 aws --version을 실행하면 잘 나온다.