[LINUX] /usr, /opt

Yuri Lee·2024년 11월 21일
0

LINUX

목록 보기
8/8

리눅스 시스템에서 /opt 폴더와 /usr 폴더는 각각 다른 목적을 위해 존재하며, 둘 다 시스템에서 프로그램을 설치하고 관리하는데 사용되지만, 사용하는 방식과 목적이 다릅니다.

/opt 폴더

  • 목적: 옵션(Optional) 패키지나 서드파티 애플리케이션을 설치할 때 사용하는 디렉토리입니다.

  • 특징:

    • /opt는 시스템에서 필수적이지 않고, 추가적으로 설치한 비표준 또는 서드파티 소프트웨어 패키지를 위한 공간입니다.
    • 상용 소프트웨어나 독립적인 소프트웨어 패키지를 이 폴더에 설치하는 것이 일반적입니다.
    • 각 애플리케이션은 /opt/ 안에 자신의 고유한 디렉토리를 가질 수 있습니다. 예를 들어, MyApp이라는 소프트웨어가 있다면 /opt/MyApp/에 설치될 수 있습니다.
    • 소프트웨어 개발자가 제공하는 바이너리 파일이나 독립적인 프로그램이 여기에 자주 설치됩니다. 시스템의 다른 구성 요소들과는 독립적으로 동작하며, 시스템 업데이트와 충돌하지 않도록 격리될 수 있습니다.
  • 예시:

    • 상용 소프트웨어 패키지(예: 구글 크롬, 오라클 JDK, 독립적인 서버 애플리케이션 등).
    • 외부에서 다운로드하여 설치한 소프트웨어.
    • 사용자 정의 소프트웨어.
  • 관리 방식:

    • /opt에 설치된 프로그램은 대부분 수동으로 설치관리됩니다. 패키지 관리 시스템(예: apt, yum)에 의해 자동으로 관리되지 않는 경우가 많습니다.

/usr 폴더

  • 목적: 사용자 시스템(User System) 관련 파일들을 저장하며, 주로 시스템에서 제공하는 표준 프로그램, 라이브러리, 헤더 파일, 사용자 실행 파일 등을 포함합니다.

  • 특징:

    • /usr은 리눅스 시스템의 표준 프로그램 및 라이브러리 파일들이 위치하는 곳입니다. 여기서 표준 프로그램이란 리눅스 시스템의 일부로 간주되는 필수 프로그램들을 의미합니다.
    • 시스템 관리 도구와 사용자가 실행할 수 있는 프로그램들, 각종 설정 파일 등이 여기에 포함됩니다.
    • 패키지 관리 시스템에 의해 관리되는 소프트웨어는 주로 이 폴더에 설치됩니다.
  • 구조:

    • /usr/bin: 표준 실행 파일이 위치하는 곳입니다. 일반 사용자가 실행할 수 있는 명령어들이 저장됩니다.
    • /usr/sbin: 시스템 관리용 프로그램(관리자용 명령어)이 저장됩니다.
    • /usr/lib: 라이브러리 파일들이 저장되는 곳입니다. 소프트웨어 실행에 필요한 공용 라이브러리들이 여기에 위치합니다.
    • /usr/share: 공유 데이터 파일(예: 문서, 아이콘, 애플리케이션 지원 파일 등)이 여기에 저장됩니다.
  • 관리 방식:

    • /usr 디렉토리는 보통 패키지 관리 시스템에 의해 관리됩니다. 예를 들어, apt, yum, dnf와 같은 패키지 관리자가 자동으로 소프트웨어를 설치하거나 업데이트할 때, 소프트웨어의 실행 파일, 라이브러리 등이 /usr 안에 배치됩니다.

/opt/usr의 주요 차이점

특성/opt/usr
목적서드파티 또는 사용자 정의 소프트웨어 설치시스템 및 표준 프로그램, 패키지 관리 소프트웨어
관리 방식수동 설치 및 관리, 패키지 관리자에 의해 관리되지 않음패키지 관리 시스템에 의해 자동 관리
구성 방식독립적인 소프트웨어가 개별 폴더에 설치됨표준 프로그램들이 /usr/bin, /usr/lib 등 구조에 따라 설치됨
사용 용도상용 또는 외부에서 다운로드한 프로그램 설치시스템 필수 프로그램 및 패키지 설치
사용 예시오라클 JDK, 구글 크롬, 타사 소프트웨어Bash, gcc, Python, Vim 등 표준 프로그램

요약

  • /opt서드파티 소프트웨어외부에서 다운로드한 독립적인 프로그램을 설치할 때 사용됩니다. 시스템 업데이트나 패키지 관리 시스템과는 독립적으로 관리되는 것이 일반적입니다.
  • /usr는 리눅스 시스템의 표준 필수 프로그램들과 라이브러리가 위치하는 곳으로, 패키지 관리 시스템에 의해 관리됩니다.

따라서, 만약 시스템에 별도로 설치한 소프트웨어나 상용 소프트웨어가 있다면 /opt를 사용하는 것이 좋고, 패키지 관리 시스템을 통해 설치된 표준 프로그램은 /usr에 위치합니다.

"수동 설치"와 "자동 관리"의 개념이 리눅스에서 헷갈릴 수 있는데, 쉽게 설명해 볼게요.

1. 자동 관리: 패키지 관리 시스템을 통한 소프트웨어 설치

리눅스에서는 apt, yum, dnf 같은 패키지 관리 시스템이 있습니다. 이 도구들은 리눅스 배포판이 제공하는 공식 소프트웨어 리포지터리(저장소)에서 소프트웨어를 자동으로 다운로드하고 설치, 업데이트, 제거를 도와줍니다.

예시: apt를 이용한 자동 설치

만약 Ubuntu나 Debian에서 git을 설치하고 싶다면, 패키지 관리 시스템을 사용합니다.

sudo apt update    # 패키지 목록 업데이트
sudo apt install git
  • 자동 관리 의미:
    • 패키지 관리 시스템은 소프트웨어를 설치할 때 필요한 모든 의존성(소프트웨어가 실행되기 위해 필요한 다른 라이브러리나 프로그램)을 자동으로 처리합니다.
    • 소프트웨어가 새 버전으로 업데이트되면 패키지 관리 시스템이 업데이트를 자동으로 알려주거나, 시스템을 업데이트할 때 자동으로 처리합니다.
    • 사용자가 특별히 어디에 설치해야 할지 신경 쓰지 않아도 됩니다. 소프트웨어는 기본적으로 /usr/bin, /usr/lib와 같은 표준 위치에 설치됩니다.

따라서, 패키지 관리 시스템을 통해 설치한 소프트웨어는 별도로 관리하지 않아도, 자동으로 시스템과 잘 통합되어 유지됩니다.

2. 수동 설치: 직접 다운로드해서 설치

수동 설치는 사용자가 소프트웨어를 직접 다운로드하고, 어디에 설치할지 스스로 결정해야 하는 방식입니다. 이는 보통 공식 패키지 관리 시스템에 없는 소프트웨어를 설치할 때 사용합니다.

예시: Oracle JDK 수동 설치

예를 들어, Oracle의 Java(JDK)를 사용하고 싶다면, apt에서 제공하는 OpenJDK가 아닌 Oracle JDK를 다운로드하여 수동으로 설치할 수 있습니다.

  1. 웹사이트에서 다운로드:
    Oracle의 웹사이트에서 JDK 설치 파일을 다운로드합니다. 이 파일은 .tar.gz 같은 압축 파일일 수 있습니다.

  2. 압축 해제:
    압축 파일을 적절한 위치에 수동으로 설치해야 합니다. 일반적으로 /opt 디렉토리 같은 곳에 설치합니다.

sudo tar -xvzf jdk-17_linux-x64_bin.tar.gz -C /opt/
  1. 환경 변수 설정:
    JDK가 설치된 경로를 수동으로 설정해 줍니다. 예를 들어, JAVA_HOME을 설정하고, PATH에 JDK 경로를 추가합니다.
export JAVA_HOME=/opt/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
  • 수동 설치 의미:
    • 사용자가 직접 소프트웨어를 다운로드하고 설치해야 하며, 패키지 관리 시스템이 자동으로 처리해주지 않습니다.
    • 의존성도 수동으로 해결해야 할 수 있습니다.
    • 소프트웨어가 업데이트되면 사용자가 직접 새로운 버전을 다운로드하고, 수동으로 설치 과정을 반복해야 합니다.

주요 차이점 요약

특성자동 관리 (패키지 관리 시스템)수동 설치
설치 방식패키지 관리 시스템(apt, yum) 사용사용자가 직접 다운로드 후 설치
의존성 관리의존성 자동 해결 및 설치의존성을 사용자가 직접 해결해야 함
업데이트자동으로 알려주거나, 명령으로 쉽게 가능새로운 버전이 나오면 수동으로 다시 설치
설치 경로기본적으로 시스템 표준 경로(/usr/bin 등)사용자가 원하는 경로(/opt 등)에 수동 지정
관리에 대한 편리성매우 편리하고, 시스템에 통합되어 관리됨사용자가 설치, 업데이트, 설정을 모두 수동으로 관리
사용 예시sudo apt install gitOracle JDK, 상용 프로그램, 독립 배포 패키지들

요약

  • 자동 관리는 패키지 관리자가 모든 설치, 업데이트, 의존성 문제를 자동으로 해결해 주는 방식입니다. 쉽게 설치하고, 시스템 업데이트 시 알아서 소프트웨어가 최신 버전으로 유지됩니다.
  • 수동 설치는 패키지 관리자가 아닌 소프트웨어를 직접 다운로드해서 설치해야 하는 방식입니다. 사용자가 직접 설치 경로를 설정하고, 소프트웨어 업데이트도 수동으로 처리해야 합니다.

따라서, 수동 설치는 관리에 더 많은 수고가 필요하고, 특별한 이유가 없다면 일반적으로 자동 관리 방식을 사용하는 것이 더 효율적입니다.

profile
유리

0개의 댓글