it-swarm-ko.tech

Linux에서 / usr / bin 및 / usr / local / bin

왜 리눅스에 바이너리를 넣을 장소가 그렇게 많은가? 최소한 다음 5 가지가 있습니다.

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

그리고 내 사무실 상자에는 이들 중 일부에 대한 쓰기 권한이 없습니다.

bins 중 어떤 유형의 바이너리가 사용됩니까?

487
Lazer
  1. /bin (및 /sbin)는 더 큰 / 등의 파티션이 마운트되기 전에 작은 /usr 파티션에 있어야하는 프로그램을위한 것입니다. 요즘은 원래 의도가 여전히 관련이있을 수 있지만 /bin/sh와 같은 주요 프로그램의 표준 위치로 사용됩니다. 소형 임베디드 장치에 설치.

  2. /sbin와 달리 /bin/usr를 마운트하기 전에 필요한 시스템 관리 프로그램 (일반 사용자가 일반적으로 사용하지 않음)을위한 것입니다.

  3. /usr/bin는 배포 관리 일반 사용자 프로그램을위한 것입니다.

  4. /usr/sbin/usr/bin와 같은 /sbin와 동일한 관계를 가진 /bin가 있습니다.

  5. /usr/local/bin는 일반 사용자 프로그램을위한 것입니다 not 배포 패키지 관리자에 의해 관리됩니다. 로컬로 컴파일 된 패키지 향후 배포 업그레이드시 경고없이 수정하거나 삭제할 수 있으므로 /usr/bin에 설치하면 안됩니다.

  6. 이 시점에서 짐작할 수 있듯이 /usr/local/sbin/usr/local/bin에서 /usr/sbin/usr/bin입니다.

또한 모 놀리 식 비 분배 패키지를위한 /opt도 있지만, 다양한 배포판이 제대로 통합되기 전에 Gnome과 KDE를 넣었습니다. 일반적으로 Oracle과 같이 거대하고 제대로 작동하지 않는 타사 패키지를 위해 예약해야합니다.

600
geekosaur

파일 시스템 계층 매뉴얼 페이지를 살펴 보는 것이 좋습니다.

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 마운트 또는 시스템 복구에 필수적이지 않은 시스템 관리 용 프로그램 바이너리가 포함되어 있습니다.
69
davitenio

Wikipedia의 Filesystem Hierarchy Standard 항목을 사용하면 같은 질문에 대답 할 수 있었으며 설명 테이블도 있습니다.

해당 페이지에서 발췌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.

12019 년 6 월 19 일에 확인 함. 퍼머 링크 .

36
Humphrey Bogart

sbin 디렉토리에는 일반적으로 시스템 관리인 프로그램이 들어 있습니다. 일반 사용자를위한 프로그램은 절대 들어 가지 않아야합니다.

시작하는 동안 몇 가지 프로그램이 필요하며 /bin/ 또는 /sbin/. 파일 시스템을 마운트하기 전에 사용 가능해야합니다. 파일 시스템을 확인하고 마운트하는 데 필요한 mountfsck와 같은 것들이 있어야합니다.

대부분의 패키지 된 프로그램은 /usr/bin//usr/sbin/. 루트 파일 시스템 이외의 파일 시스템에있을 수 있습니다. 경우에 따라 네트워크 마운트 드라이브에있을 수 있습니다.

로컬 프로그램 및 스크립트는 /usr/local/bin//usr/local/sbin/. 이것은 그것들이 명백히 비표준이며, 현장에서만 사용 가능하다는 것을 식별합니다.

자세한 설명은 man hier 배포에 권장되는 파일 시스템 계층 구조에 대한 설명을 제공해야합니다. Wikipedia에서 파일 시스템 계층 에 대해 읽을 수도 있습니다.

17
BillThor

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

이 공개 /usr/bin의 결과는 문서화되지 않은 소프트웨어의 정크 야드였습니다. 따라서 Stephen Bournecron script를 작성하여 매일 밤마다 새로운 바이너리를 확인하고 A가없는 모든 바이너리를 제거했습니다. 설명서 또는 설명서를 업데이트하지 않고 업데이트 된 설명서.

1970 년대 후반, /usr/bin가 OS 기본 배포판에 통합되었고 사람들은 이전에 공개 된 /usr/local/bin의 목적으로 /usr/bin를 사용하기 시작했습니다.

잠시 후 sysadmins는 /usr/local/bin를 사용하여 네트워크 (예 : USENET)에서 가져온 non-local 소프트웨어를 저장했으며 UNIX 회사는 /usr/bin 다시 한 번, 1987 년경에 모든 UNIX 회사들이 /usr/local/bin를 포기하고 /opt/<vendor>/bin를 대신 사용하기로 합의한 파일 시스템 계층 회의가있었습니다.

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

11
schily