/usr/bin과 Linux의 /usr/local/bin

/usr/bin과 Linux의 /usr/local/bin

Linux에 바이너리를 넣을 수 있는 곳이 왜 그렇게 많은가요? 최소한 다음 다섯 가지가 있습니다.

  1. /bin/
  2. /sbin/
  3. /usr/bin/
  4. /usr/local/bin/
  5. /usr/local/sbin/

내 사무실 상자에는 일부 항목에 대한 쓰기 액세스 권한이 없습니다.

다음 중 어느 바이너리 유형에 속합니까 bin?

답변1

  1. /bin( 및 ) 는 더 크고 동일한 파티션을 설치하기 전에 작은 파티션에 있어야 하는 프로그램 /sbin에 적합합니다 . 원래 의도는 여전히 소형 임베디드 장치에 설치하는 것과 관련이 있을 수 있지만 오늘날에는 Windows와 같은 중요한 프로그램의 표준 위치로 주로 사용됩니다 .//usr/bin/sh

  2. /sbin/bin와는 달리, 탑재 전 필요한 시스템 관리 프로그램 입니다 (일반적으로 일반 사용자는 사용하지 않습니다)./usr

  3. /usr/bin유통관리에 적합한 공통 사용자 프로그램입니다.

  4. /usr/sbinto와 같은 관계가 있는 to가 존재합니다 ./usr/bin/sbin/bin

  5. /usr/local/bin일반 사용자 프로그램에 적합아니요로컬로 컴파일된 패키지 등 배포 패키지 관리자가 관리합니다. /usr/bin향후 배포 업그레이드 시 경고 없이 수정되거나 제거될 수 있으므로 설치하지 마십시오 .

  6. /usr/local/sbin지금쯤 짐작하셨겠지만, 그것은 ~ /usr/local/bin입니다 ./usr/sbin/usr/bin

/opt또한 다양한 배포판에서 제대로 통합되기 전에 Gnome과 KDE를 넣었지만 전체 비 배포판 패키지용 패키지도 있습니다 . 일반적으로 말해서, Oracle과 같이 규모가 크고 성능이 낮은 타사 패키지용으로 이 기능을 예약해야 합니다.

답변2

파일 시스템 계층 매뉴얼 페이지를 확인하는 것이 좋습니다.

man hier

온라인으로도 이용 가능합니다. 예:http://linux.die.net/man/7/hier. 관련 부분은 아래에 재현되어 있습니다. 시스템에 따라 다르게 표시될 수 있습니다.

이름

    hier - 파일 시스템 계층 구조에 대한 설명

설명하다

    일반적인 Linux 시스템에는 다음 디렉터리가 있습니다.

    /bin
      이 디렉터리에는 단일 사용자 모드에서 시스템을 시작하거나 복구하는 데 필요한 실행 프로그램이 포함되어 있습니다.
       
    /sbin
      와 마찬가지로 /bin이 디렉토리에는 시스템을 부팅하는 데 필요한 명령이 포함되어 있지만 일반적으로 일반 사용자는 실행하지 않습니다.
       
    /usr/bin
      실행 가능한 프로그램의 홈 디렉터리입니다. 일반 사용자가 실행하고 시스템을 시작하거나 복구하는 데 필요하지 않으며 로컬로 설치되지 않은 대부분의 프로그램은 이 디렉터리에 배치되어야 합니다.
       
    /usr/local/bin
      사이트 로컬 프로그램용 바이너리.
       
    /usr/local/sbin
      시스템 관리를 위한 로컬 설치 프로그램입니다.
       
    /usr/sbin
      /usr이 디렉터리에는 부팅 프로세스, 설치 또는 시스템 복구에 필요하지 않지만 시스템 관리에 사용되는 프로그램 바이너리가 포함되어 있습니다.

답변3

이것파일 시스템 계층 표준Wikipedia의 항목은 제가 같은 질문에 답하는 데 도움이 되었으며 매우 설명적인 표가 있습니다.

1 페이지 에서 발췌 :

/bin        Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp.
/usr/bin    Non-essential command binaries (not needed in single user mode); for all users.
/usr/local  Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin, lib, share
/usr/sbin   Non-essential system binaries, e.g., daemons for various network-services.
/sbin       Essential system binaries, e.g., fsck, init, route.

1 2019년 6월 19일에 확인함;고유링크.

답변4

1970년대 UNIX에는 모든 공식 실행 파일 /bin/usr/bin사용자의 홈 디렉터리(예 /usr/dmr: ) 아래에 모든 사용자가 다른 사람도 관심을 가질 수 있는 자신의 바이너리를 저장하는 데 사용할 수 있는 위치가 있었습니다.

이러한 공개의 결과 /usr/bin는 문서화되지 않은 소프트웨어의 투기장이 되었기 때문에 Stephen Bourne은 매일 밤 새 바이너리를 확인하고 문서가 없거나 업데이트되었지만 문서를 업데이트하지 않은 바이너리를 제거하는 cron 스크립트를 작성했습니다.

1970년대 후반에 /usr/bin운영 체제 기반 배포판에 통합되었으며 사람들은 /usr/local/bin이전에 공개된 목적으로 사용하기 시작했습니다 /usr/bin.

얼마 후, 시스템 관리자는 /usr/local/bin네트워크에서 가져온 비기본 소프트웨어(예: USENET)를 저장하는 데 익숙해졌고 UNIX 회사는 같은 실수를 다시 반복하는 것을 좋아하지 않았기 때문에 /usr/bin1987년쯤에 파일 시스템 계층 구조 회의가 열렸습니다. UNIX Corporation은 이를 포기 /usr/local/bin하고 대신 사용하기 로 동의했습니다 /opt/<vendor>/bin.

불행하게도 Linux 배포판은 이 결정을 따르지 않았습니다...

관련 정보