리눅스에서 루트 권한 없이 패키지 설치하는 방법

리눅스 초보에서 개발 환경 세팅은 언제나 골치 아프다. 특히 루트 권한을 얻지 못할 때에는 더 심한데 그 이유는

  1. 패키지를 쉽게 설치할 수 있는 yum 같은 패키지 관리자가 루트 권한을 자주 요청하기 때문이고

  2. 그래서 직접 다운로드 받아서 설치하려고 해도 기본적으로 패키지가 설치되는 경로가 루트 권한을 필요로 하기 때문이다.

그래서 루트 권한이 없을 때에는 내가 권한을 모두 가지고 있는 홈 폴더에 설치해야 하는데 이 방법을 적는다.

내 홈폴더에 설치하는 과정은 밑에 두 가지 나눌 수 있다.

  1. configure 파일을 이용해서 설치할 경로를 지정해주는 것

  2. bash_profile 파일을 수정해서 명령어를 사용할 수 있도록 해주는 것

대부분의 패키지는 다운 받고 압축을 풀면 configure 라는 파일이 있고 이 파일을 이용해서 설치에 대한 다양한 옵션을 설정해줄 수 있다. 예를 들어 설치할 패키지 폴더에서

./configure --prefix=/home/USERNAME/PACKAGE_NAME
make && make install

을 실행하면 1번 과정을 완료한 것이다. 위에 입력한 경로에 가보면 설치되어 있는 패키지를 확인할 수 있다. 하지만 이렇게 설치를 해도 아직 명령어를 사용할 수 없는 상태이다. 예를 들어 파이썬을 설치하는 중이라면

python setup.py

이라는 명령어를 실행시켰을 때

bash: python: command not found

이라는 에러 메시지를 만나게 된다는 뜻이다. 아직 리눅스는 이 명령어를 어떻게 실행시키는지 모르는 상태이고 우리는 리눅스에게 ‘이 명령어를 치면 어느 경로를 참조해야 하는지’를 알려줘야한다. 그래서 우리는 ~/.bash_profile 를 수정한다. 단순히 .bash_profile 마지막 줄에

PATH=$PATH:$HOME/PACKAGE_NAME/bin

을 추가하는 일로 끝나는 데 막상 이렇게 수정한 후에 명령어를 다시 입력해봐도 똑같은 에러 메시지를 만날 수 있다. 그 이유는 .bash_profile은 쉘이 시작될 때만 읽히기 때문인데 이를 위해서 우리는 .bash_profile을 다시 읽어와야 한다.

source ~/.bash_profile

이라는 명령어로 .bash_profile을 다시 읽어올 수 있고 이제 명령어를 사용해보면 정상적으로 실행됨을 알 수 있다.