Linux의 / usr / bin vs / usr / local / bin

Linux에 바이너리를 넣을 장소가 왜 그렇게 많습니까? 최소한 다음 5 개가 있습니다.

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

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

어떤 유형의 바이너리가 bin s?

댓글

  • /usr/sbin/을 잊어 버렸습니다. .
  • 개인용 ~/bin/
  • 요즘에는 /bin/usr/bin와 병합되었고 /sbin/usr/sbin와 병합되었습니다. / usr 병합 사례 .
  • @Calmarius, 뭐? ‘ /usr/local/bin를 사용하지 않아야합니까?
  • @Pacerier ~ / bin은 현재 사용자 전용입니다. 예를 들어 관리자가 아닌 다중 사용자 Linux 서버에서 ‘ ” 설치 ” 내용을 확인하세요.

답변

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

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

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

  4. iv와 동일한 관계를 가진 /usr/sbin가 있습니다. id = “256ba3093b”>

as/sbin/bin이어야합니다.

  • /usr/local/bin는 배포 패키지 관리자가 관리하지 않는 일반 사용자 프로그램 용입니다. 예 : 로컬로 컴파일 된 패키지. 향후 배포 업그레이드시 경고없이 수정하거나 삭제할 수 있으므로 /usr/bin에 설치하지 마십시오.

  • /usr/local/sbin는 아마도이 시점에서 짐작할 수 있듯이 /usr/local/bin/usr/sbin에서 .

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

    댓글

    • 이 답변이이를 명확히하는 데 큰 도움이된다고 생각합니다. 일반적인 규칙이지만 Rob Landley의이 게시물은 넌센스에 대한 통찰력을 원한다면 정말 좋은 읽기입니다 … lists.busybox.net/pipermail/busybox/2010 -December / 074114.html
    • refspecs.linuxfoundation.org/fhs.shtml 은 현재 표준 참조입니다. @kojiro의 링크가 오래되어 ‘ 새로운 사양이 없습니다.
    • 인터넷에서 다운로드 한 저장소를 어디에 두나요? 설명에 따르면 / usr / local / bin 또는 / usr / bin에 있어야하는 것처럼 들립니다. / usr / bin은 수동으로 만져서는 안되며 패키지 관리자 만 사용하도록 허용합니까?
    • @DidierA. ~/bin에 넣고 해당 디렉토리를 PATH에 사용자로 추가하세요. 메모 감사합니다. 매우 오래된 댓글을 삭제했습니다.
    • 여기 내 질문의 첫 번째 부분에 대한 답변 : superuser.com/a/238993/425838 . 우선 순위는 시스템 PATH 변수의 순서를 기반으로하며 echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games를 표시합니다. 즉, /usr/local/bin의 실행 파일이 iv id = “76f412c155″의 실행 파일보다 우선하는 /usr/bin의 실행 파일보다 우선합니다. > .

    답변

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

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

    댓글

    • 그렇지 않습니다. ‘ 사용자의 ‘ 질문에 대답하지 마세요.
    • 맨 페이지에는 각 bin 디렉토리에 대한 항목이 포함되어 있습니다. 질문 중 하나였습니다.

    답변

    파일 시스템 계층 Wikipedia의 chy 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. 

    1 2019 년 6 월 19 일 검색; 퍼머 링크 .

    답변

    sbin 디렉토리에는 일반적으로 시스템 관리 전용 프로그램이 포함되어 있습니다. 일반 사용자를위한 프로그램은 절대로 들어가면 안됩니다.

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

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

    로컬 프로그램과 스크립트는 /usr/local/bin//usr/local/sbin/에 속합니다. . 이는 분명히 비표준이며 현장에서만 사용할 수 있음을 식별합니다.

    자세한 설명을 보려면 배포에 권장되는 파일 시스템 계층에 대한 설명을 제공하는 man hier 명령을 실행 해보십시오. Wikipedia에서 파일 시스템 계층 에 대해 읽어 볼 수도 있습니다.

    댓글

    • +1 top이 너무 많은 경우 정말 간결한 설명입니다.
    • ” 로컬 프로그램과 스크립트는 / usr / local / bin / 및 /에 속합니다. usr / local / sbin / “-OS의 일부가 아닌 “와 같은 로컬 프로그램을 의미하지만 설치하기로 결정했습니다. “?

    답변

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

    이 열린 /usr/bin는 문서화되지 않은 소프트웨어의 쓰레기장 이었기 때문에 Stephen Bourne은 매일 밤 새 바이너리를 확인하고 설명서가 없거나 설명서를 업데이트하지 않고 업데이트 된 모든 바이너리를 제거하는 cron 스크립트를 사용합니다.

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

    잠시 후 시스템 관리자는 /usr/local/bin를 사용하여 네트워크에서 가져온 비 로컬 소프트웨어 (예 : USENET) 및 UNIX 회사가 /usr/bin와 같은 실수를 다시 반복하는 것을 좋아하지 않았기 때문에 1987 년경에 모든 UNIX 회사가

    대신 /opt/<vendor>/bin를 사용합니다.

    안타깝게도 Linux 배포판은이 결정을 따르지 않았습니다 ….

    댓글

    • 매우 흥미 롭긴하지만 아무것도 없습니다. 심지어 /opt에 관한 것이 아니라 UNIX에 관한 것이 아니라 Linux에 관한 질문에 대답하려고 시도합니다. 이것은 ” 왜 자동차에 4 개의 바퀴가 있습니까? “에 ” 자전거가 2! 슬프게도 자동차는 ‘하지 않습니다. ” OP가 이유를 이해하는 데 도움이되지 않는 ‘ 자동차에는 4가 있습니다.
    • 주어진 설명을 Linux의 배경에 대한 설명으로 사용할 수없고 Linux가 UNIX를 모방하는 것을 좋아한다는 사실을 알 수 없다면 필요한 배경이 누락되었을 수 있습니다.
    • 흥미롭지 만 혼란스럽고 역사적 일 수도 있습니다. 오늘날 온라인 저장소와 회사 저장소를 다운로드하는 것은 ‘별로 다르지 않습니다. Joe Blow가 프로그램을 만들고 다운로드하면 / usr / local / bin 대신 / opt / JowBlow / bin에 넣으십시오. 신뢰할 수있는 공급자와 신뢰할 수없는 공급자의 문제입니까? ‘ 말이 안되는 것 같습니다.
    • ‘ 정확한 ‘ 몇 년 전의 역사. a) AIX가 / usr / local을 피하고 / opt / IBM 및 / opt / ibm을 사용하며 bullfreeware가 / opt / freeware를 사용하는 이유와 다른 경로 (/ opt / * sbin이 아닌)를 사용해야하는 이유가 궁금했습니다. Linux와의 반 관련성 (더 나은 GNU 도구)에 관해서는 auto-tools의 기본 접두어는 / usr / local입니다. 너무 나쁜 autotools (automake, autoconf 등은 따르지 않습니다 ….하지만 우리 모두는 살아 남아서 distrub이 어디에 있는지 배웁니다. || 공급 업체가 프로그램을 배치했습니다.
    • 이러한 회의 중 하나를 더 가질 수 있을까요? 이번에는 모두가 듣습니다!

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다