C : \ Program Files와 동등한 Linux는 무엇입니까?


64

Linux 및 Unix뿐만 아니라 Windows에서도 program | application |을 임의의 디렉토리에 설치할 수 있습니다. 또한 배포의 패키징 시스템을 사용하여 패키지를 설치 한 경우 파일을 올바른 위치에 배치합니다.

그러나 때때로 소프트웨어 설치시 파일을 저장할 경로를 묻는 메시지가 표시됩니다. 이 기본 장소 (인 리눅스 배포판의 경우 C:\Program Files또는 C:\progra~1동급)? 다양한 배포판에 대해 다른가요? 그렇다면 여기서이에 대한 것 RHEL, Suse그리고 Ubuntu?

답변:


60

리눅스 문서 프로젝트리눅스 파일 시스템 계층의 설명을 들은 서로 다른 폴더와 (부분적으로 역사)의 의미를 설명합니다.

xenoterracide 이미 지적 /bin/optWindows에서 "프로그램 파일"에 비교 될 수 표준 디렉토리입니다.

/bin권한이없는 사용자뿐만 아니라 시스템 관리자에게도 유용한 몇 가지 유용한 명령이 포함되어 있습니다. 그것은 일반적으로 같은 껍질 포함 bash, csh.... 등 일반적 같은 명령을 사용 cp, mv, rm, cat,를 ls.

( TLDP에서 인용 )

/opt기본 설치에 포함되지 않은 모든 소프트웨어 및 애드온 패키지 용으로 예약되어 있습니다. 예를 들어 StarSuite, Kylix, Netscape Communicator 및 WordPerfect 패키지는 일반적으로 여기에 있습니다.

( TLDP에서 인용 )


9
/ opt가 repos에 포함되지 않은 패키지에만 사용되지 않습니까? inkscape, gimp, rhythmbox 등의 응용 프로그램 폴더는 / usr / share에 있습니다. 그와 동등한 것이 아닌가?
c76c3r8c42b347r8

5
파일 시스템 계층 (FHS)에 대한 최신 정보는 linuxfoundation.org/en/FHS 를 참조하십시오 . (참고 : 현재 사이트가 다운되었지만 곧 백업해야합니다).
jw013

@Toxicbits : 젠투에는 적어도 / opt에 바이너리 패키지가 있습니다. 특히 비표준 파일 시스템 계층으로 인해 / usr에 설치할 수없는 바이너리 패키지가 있습니다.
Maciej Piechotka

TLDP는 좋아 보인다! 부수적으로; TLDP를 처음 보았을 때, "너무 오래 걸리지 않았다 ... 피크? 무엇?"
Ege Özcan

3
이것은 올바르지 않습니다. / bin에는 실행 가능한 프로그램 만 포함되어 있습니다. Windows Program Files 디렉토리에는 설치된 각 응용 프로그램의 하위 디렉토리가 있으며 여기에는 모든 실행 파일, dll, 데이터 파일 및 응용 프로그램과 함께 제공되거나 제공되는 모든 것이 포함됩니다.
psusi

45

직접적으로 동등한 것은 없습니다. 디렉토리 구조는 매우 다릅니다. Windows에서는 (예 :)와 관련된 모든 파일이 포함 된 설치된 각 패키지 / 소프트웨어에 대한 단일 디렉토리가 있습니다 C:\Program Files\MyProgram. Linux에서 각 소프트웨어는 파일 유형 및 기타 규칙에 따라 많은 디렉토리에 "분산"됩니다.

예를 들어, xscreensaver프로그램 과 관련된 다른 파일 이 설치된 위치를 검사 할 수 있습니다 .

/etc/pam.d/xscreensaver
/etc/xscreensaver
/etc/xscreensaver/README
/usr/bin/xscreensaver
/usr/bin/xscreensaver-command
/usr/bin/xscreensaver-demo
/usr/bin/xscreensaver-gl-helper
/usr/share/X11/app-defaults/XScreenSaver
/usr/share/applications/xscreensaver-properties.desktop
/usr/share/doc/packages/xscreensaver
/usr/share/doc/packages/xscreensaver/README
/usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/da/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/de/LC_MESSAGES/xscreensaver.mo
[ ... ]
/usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo
/usr/share/man/man1/xscreensaver-command.1.gz
/usr/share/man/man1/xscreensaver-demo.1.gz
/usr/share/man/man1/xscreensaver.1.gz
/usr/share/man/man6/xscreensaver-gl-helper.6x.gz
/usr/share/pixmaps/xscreensaver.xpm
/usr/share/xscreensaver
/usr/share/xscreensaver/glade
/usr/share/xscreensaver/glade/screensaver-cmndln.png
/usr/share/xscreensaver/glade/screensaver-colorselector.png
[ ... ]

에 설치하는 곳에 설치 요청 보통 때, 걱정하지 마세요, 정답은 다음 중 하나입니다 : /, /opt, /usr,/usr/local

보시다시피, 거의 모든 (1) 파일은 실행 파일 , 매뉴얼 페이지 , 문서 등의 간단한 규칙에 따라 xscreensaver설치됩니다 ./usr/usr/bin/usr/share/man/usr/share/doc/packages/PROGRAMNAME

설치 프로그램이 설치를 요구하는 경우 prefix, 일반적으로 는 지금하고자하는 기본 프로그램을 설치하는 아래 경로를. 내 xscreensaver예에서는입니다 /usr.

간단한 규칙으로 : /시스템을 부팅하는 데 필요한 프로그램 만 포함하고 ( C:\windows\system32) /usr/local해당 고유 컴퓨터에만 필요한 프로그램을 포함해야합니다. /opt(2) 표준 디렉토리 구조가 아닌 모든 선택적 프로그램과 /usr모든 표준 소프트웨어 .

어쨌든 이러한 모든 규칙을 자세히 정의 하는 표준 이 있습니다. Filesystem Hierarchy Standard

(1) 시스템 전체 구성 파일이 /etc

(2) 리눅스에서는 상당히 쓸모없는


/opt/usr/local꽤 오랫동안 타사 소프트웨어를 선호합니다 .
Steve-o

7
설명 /usr/share은 다른 아키텍처 (문서, 스크립트, 이미지)간에 공유되기 때문에 "공유"라고하며, /usr/lib*아키텍처에 의존하는 파일 (실행 파일이 아닌 /usr/bin)에 대한 것입니다.
eudoxos

12

Ususually, /bin, /usr/bin, /usr/local/bin, 또는 /opt/bin. 내가 생각 /usr/bin하고 /opt/bin보통은 시스템 관리자가 설치되지 않은 시스템의 중요한 바이너리이기 때문에 윈도우와는 달리이 두 가지 패키지 관리자와 함께 설치된 프로그램을 포함하지만, 프로그램 파일에 가장 가까운 수 있습니다. 어디는 /usr/local/bin비 배포판 패키지 소프트웨어입니다. /bin와 같은 시스템 중요 바이너리를위한 것 /bin/sh입니다.


왜 네 가지 옵션? /bin, /usr/bin, /usr/local/bin또는 /opt/bin. 표준 위치가 하나 없습니까? 내가 묻는 이유는 몇 개의 VM에 소프트웨어를 설치하고 있으며 기본 위치는 파티션이 가장 큰 파티션입니다. 파티션 공간을 소프트웨어가 일반적으로 이동하는 디렉토리로 변경하고 소프트웨어가 모든 VM에 다르게 배치되지 않도록하고 싶습니다.
토마스

1
이 표준은 경로 이름이 다운 된 이유를 여러 위치로 지정하지만 여기에 캐시 된 FHS에 대한 링크가 있습니다. 여기에는 이것이 무엇인지에 대한 자세한 정의가되며 실제로 설치중인 항목에 따라 다릅니다. 또한 RHEL, Suse 및 Ubuntu는 다르므로 동일한 위치를 약간 다른 위치에 배치 할 수 있습니다. /opt예를 들어 일반적으로 독점 소프트웨어에 사용됩니다.
xenoterracide

또한 일반적으로 ... 일반적으로 모두 동일한 파티션에 있습니다 ... 때로는 /usr/별도의 파티션입니다.
xenoterracide

1
일부 사람들 (예 : 허드 프로젝트) 은 현재 /bin/usr/bin차별이 더 이상 사용되지 않는다고 주장합니다 . 역사적으로, 시스템에 중요한 물건에있을 것입니다 /bin, /lib... 동안, (직접 루트) /usr(와 /usr/bin, /usr/lib...) 기본 시스템 기능에 필요없는, (아마도 네트워크를 통해) 나중에 설치 될 것이다.
eudoxos

1
@Thomas, /opt종료해서는 안됩니다. 어떤 사람들은 과거에 다른 모든 응용 프로그램과 다른 위치에 일부 응용 프로그램을 갖는 것이 좋은 생각이라고 생각했습니다. /bin루트 파티션에 있습니다. 일부 시스템에서는 루트 파티션의 공간이 제한되어 있으며 비 필수 바이너리 (예 : 모든 사용자 응용 프로그램)가로 이동했습니다 /usr/bin.
Jan

8

man hier"파일 시스템 계층 구조 설명"을 살펴보십시오 .


3

다른 사람들이 지적했듯이 패키지 관리자를 통해 설치된 프로그램은 여러 디렉토리에 흩어져 있습니다. 바이너리가 일반적으로 발견되는 동안 /usr/bin시스템 전체 구성 파일은 /etc에 있습니다.

응용 프로그램이 패키지 관리자를 통해 설치되지 않은 경우 파일은 패키지 관리자를 방해하지 않는 곳에 설치해야합니다. 이곳은 /usr/local입니다.

설치 경로를 묻는 메시지가 표시되면 가장 일반적인 선택은 /usr/local/appname


3

echo $PATH터미널을 입력 하여 쉘이 명령을 찾기 위해 찾는 경로를보십시오. 인쇄 된 순서대로 파일을 검사합니다.


1
이것은 OP가 요청한 것에 응답하지 않습니다.
Francesco Turco

1

모든 솔루션을 찾을 수는 없으며 대부분 시스템 명령 (예 : 시스템에서 사용하는 명령)을 보유 /bin하고 sbin있기 때문입니다.

/usr/bin"Program Files"유닉스 세계 라고 할 수 있습니다 . 에 대해서는 /opt거의 패키지 설치를 위해 해당 위치를 사용하도록 선택, 같은 사용하여 패키지에 적용 /etc/또는 /var위치로

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.