[Ubuntu] 패키지가 설치되는 경로가 다른 이유 (/usr/bin, /usr/local/bin)
2026. 4. 6. 22:22우분투에서 패키지가 설치되는 경로는 어디일까?
먼저 알아두어야할 것은 apt-get install로 설치한 패키지들은 .deb 패키지 제작자가 지정한 위치에 설치된다.
그런데, Debian/Ubuntu 패키징 가이드라인이 /usr/bin, /usr/sbin 등을 권장하기 때문에 대부분 이쪽에 들어간다.
apt가 설치하는 위치는 패키지마다 다르고, .deb 패키지 안에 경로가 하드코딩 되어 있다.
/usr/bin/ -> 가장 흔한 경우 (일반 실행 파일)
/usr/sbin/ -> 시스템 관리용 (root가 쓰는 것들)
/usr/lib/ -> 라이브러리, 데몬 바이너리
/usr/share/ -> 데이터 파일, man 페이지
/etc/ -> 설정 파일
/var/ -> 런타임 데이터
그리고 두번째로 알아야할 것은 리눅스는 디렉토리 용도가 표준으로 정해져 있다. 즉, 리눅스는 FHS (Filesystem Hierarchy Standard)를 따른다.
| 경로 | 용도 |
| /bin, /usr/bin | 시스템 패키지 매니저가 관리하는 바이너리 |
| /usr/local/bin | 로컬(수동) 설치 바이너리 - 패키지 매니저 영역 밖 |
| /opt/... | 서드파티 독립 패키지 (자체 디렉토리 통째로) |
| ~/.local/bin | 현재 사용자 전용 바이너리 |
여기서 /usr/local/bin 쪽은 패키지 매니저 영역의 밖이라는 사실이 중요하다.
즉, /usr/local/bin은 로컬 사용자가 make install 등 수동으로 직접 설치한 패키지들이 위치해 있다.
그러면, 설치 위치가 달라지는 이유는 무엇일까?
1. 설치 방법이 다르기 때문이다.
apt install foo -> /usr/bin/foo (시스템 패키지 매니저)
pip install foo -> /usr/local/bin/foo (Python 생태계)
pip install --user foo -> ~/.local/bin/foo (사용자 공간)
npm install -g foo -> /usr/local/bin/foo (Node 글로벌)
./configure && make install -> /usr/local/bin/foo (소스 빌드, 기본값)
/usr/local/ 은 "패키지 매니저가 건드리지 않는 영역" 이라는 관례가 있어서, pip/npm/소스빌드가 여기에 쓴다.
2. 설치 스크립트가 prefix를 어떻게 설정하느냐에도 달려있다.
소스 빌드 시, 아래와 같이 명령어를 입력한다고 해보자.
./configure --prefix=/usr -> /usr/bin/
./configure --prefix=/usr/local -> /usr/local/bin/ <- 기본값
./configure --prefix=/opt/foo -> /opt/foo/bin/
그리고, CMake 명령어는 아래와 같다고 해보자.
cmake -DCMAKE_INSTALL_PREFIX=/usr ...
이를 설치하게 될 때, 패키지가 prefix를 하드코딩하여 경로가 결정되거나, 설치 스크립트가 경로를 결정하게 된다.
3. 권한 문제도 있다.
root로 설치하면, /usr/local/bin 또는 /usr/bin 에 위치하고,
일반 유저로 설치하면, ~/.local/bin (시스템 디렉토리에 쓸 권한 없음) 에 위치하게 된다.
'Linux > Ubuntu' 카테고리의 다른 글
| [우분투(Ubuntu)] 우분투 NTP 서버 설정하여 시간 조정하는 방법 (0) | 2025.04.30 |
|---|---|
| [우분투(Ubuntu)] 우분투 버전 별 apt source.list 기본 저장소 (0) | 2025.02.26 |
| [우분투(Ubuntu)] 우분투 OS 버전 업그레이드하기 (0) | 2025.02.26 |
| [Ubuntu] 우분투 apt 패키지 올바르게 삭제하기 (0) | 2025.01.10 |
| [Linux/Ubuntu] 리눅스/우분투 기본 설정 (apt-get update 주소, crt 변경, pip 안됨) (0) | 2021.09.01 |
