OS X 파일 시스템의 표준은 무엇입니까? 예 : / opt / vs. / usr /


35

무엇에 들어가야 /opt/하고 무엇에 들어가야 /usr/합니까? 내 이해는 /usr/사용자 홈 디렉토리에 사용되었지만 이전에 존재하기 때문에 /Users/현재 목적은 무엇입니까?

모든 내장 디렉토리를 사용해야하는 것에 대한 매뉴얼이나 안내서가 있습니까? 마찬가지로 무엇인가 /home/, 또는 /net/?


5
apple.stackexchange.com/questions/80902/…가 쿼리에 응답 합니까 ?
bmike

@bmike에게 감사합니다. 즉각적인 문제에 대한 답변을 해주지 만, 누군가가 더 완전하고 철저한 설명을 작성했는지 궁금합니다.
DilithiumMatrix

Filesystem Hierarchy Standard 링크를 따라 갔습니까 ?
zelanix

1
@zelanix 예, 여전히 OS X를 제대로 다루지 못합니다
DilithiumMatrix

답변:


48

모든 내장 디렉토리를 사용해야하는 것에 대한 매뉴얼이나 안내서가 있습니까? / home / 또는 / net /은 무엇입니까?

최신 정보와 파일 시스템 계층 구조의 "역사 스케치"를 제공하는 터미널 에서 파일 시스템 프로그래밍 안내서 를 살펴보십시오 man hier(이 답변의 끝에 포함되어 있습니다).

귀하의 질문에 대한 의견은 Filesystem Hierarchy Standard를 언급합니다 . 당신은 아마 숙독 한 후, 결론에 도달합니다 파일 시스템 프로그래밍 가이드man hier맥 OS가 따르지 않는, FHS 더 리눅스 물건입니다. 물론 일반적인 UNIX 원점으로 인해 macOS의 FHS와 파일 시스템 레이아웃 간에는 유사성이 있지만 그 차이는 현저합니다. macOS는 다음 중 하나를 사용하지 않습니다.

  • /boot폴더-> macOS가 /System/Library/Kernels대신 사용함 (이전 버전의 macOS에서는 커널을 포함하는 폴더는 /)
  • /home폴더-> macOS가 /Users대신 사용
  • /root폴더-> macOS가 /var/root대신 사용

그리고 /opt모든 문서에하지 한 번에 언급되지 않은 (자세한에서 /opt아래를.)

macOS와 FHS 호환 OS 간의 추가 차이점 /private은 예를 들어 /etc에 대한 심볼릭 링크 를 사용하는 것 /private/etc입니다.

정보 /net: 오토 마운터 맵 (에 나열되어 있음 /etc/auto_master) 입니다. 자세한 내용 은 Wikipedia 를 참조하십시오.

/ opt /에 무엇이 들어가야하고, / usr /에 무엇이 들어가야합니까? 내 이해는 / usr /이 사용자 홈 디렉토리를위한 것이었지만 / Users /에 존재하기 때문에 현재 목적은 무엇입니까?

/usr 과거에는 사용자의 홈 디렉토리를 배치하는 데 사용 되었지만 더 이상 그렇지 않습니다.

요즘 /usr에는 사용자 명령 ( /usr/bin일반 사용자 및 /usr/sbin관리 사용자의 경우 root), 공유 라이브러리 ( /usr/lib), 매뉴얼 페이지 ( /usr/share/man), 사용자 ( /usr/libexec) 및 기타 항목 에서 직접 실행해서는 안되는 실행 파일이 들어 있습니다 .

또한 /usr/local기본 OS와 함께 제공되지 않는 프로그램, 라이브러리 및 기타 파일을 배치하기 위한 하위 디렉토리를 제공합니다 .

/opt매우 유사한 역할을 /usr/local하며 서로 호환되는 것으로 보입니다. 그러나 다른 Linux / UNIX sysadmin과의 작업 경험 으로 BSD 기반 UNIX OS에서 선호 되는 것으로 보입니다 /usr/local.

이이 걸릴 내입니다 그래서 : 맥 OS는 BSD 기반 결과적으로 내가 사용하십시오 /usr/local. 다음과 같이 프로그램 디렉토리를 만든 다음에 symlink 명령 /usr/local/bin등 을 수행 할 수 있습니다 .

/usr/local/mysql
/usr/local/mysql/bin/mysqladmin
/usr/local/mysql/lib/libmysqlclient.so
/usr/local/bin/mysqladmin -> ../mysql/bin/mysqladmin
/usr/local/lib/libmysqlclient.so -> ../mysql/lib/libmysqlclient.so

이것은 Linux와 UNIX에서도 일반적인 관행 이었지만 FHS는 명시 적으로 금지 했습니다. 자체 디렉토리 계층에 타사 패키지를 설치하려면 /opt/<package>대신 사용해야 합니다. FHS 준수를 위해서는 구성 파일을 넣고 /etc/opt/<package>가변 파일 을에 넣으십시오 /var/opt/<package>.

따라서 macOS에서는 /usr/local위에서 설명한대로 고수하는 것이 좋습니다 .

에 설치되는 Cisco VPN 및 XQuartz 와 같은 애드온 소프트웨어를 알고 /opt있으므로 위와 같은 차이점이 사라 지기 시작합니다.

man hier

위에서 언급했듯이 이것은 다음과 man hier같습니다.

 A historical sketch of the filesystem hierarchy.  The modern macOS filesystem is documented in the
 ``File System Programming Guide'' available on Apple Developer.

 /             root directory of the filesystem

 /bin/         user utilities fundamental to both single-user and multi-user environments

 /dev/         block and character device files

               fd/  file descriptor files; see fd(4)

 /etc/         system configuration files and scripts

 /mach_kernel  kernel executable (the operating system loaded into memory at boot time).

 /sbin/        system programs and administration utilities fundamental to both single-user and multi-
               user environments

 /tmp/         temporary files

 /usr/         contains the majority of user utilities and applications

               bin/      common utilities, programming tools, and applications
               include/  standard C include files

                         arpa/       C include files for Internet service protocols
                         hfs/        C include files for HFS
                         machine/    machine specific C include files
                         net/        misc network C include files
                         netinet/    C include files for Internet standard protocols; see inet(4)
                         nfs/        C include files for NFS (Network File System)
                         objc/       C include files for Objective-C
                         protocols/  C include files for Berkeley service protocols
                         sys/        system C include files (kernel data structures)
                         ufs/        C include files for UFS

               lib/      archive libraries
               libexec/  system daemons & system utilities (executed by other programs)
               local/    executables, libraries, etc. not included by the basic operating system
               sbin/     system daemons & system utilities (executed by users)
               share/    architecture-independent data files

                         calendar/  a variety of pre-fab calendar files; see calendar(1)
                         dict/      word lists; see look(1)

                                    web2        words from Webster's 2nd International
                                    words       common words

                         man/       manual pages
                         misc/      misc system-wide ascii text files
                         mk/        templates for make; see make(1)
                         skel/      example . (dot) files for new accounts
                         tabset/    tab description files for a variety of terminals; used in the term-
                                    cap file; see termcap(5)
                         zoneinfo/  timezone configuration information; see tzfile(5)

 /var/         multi-purpose log, temporary, transient, and spool files

               at/        timed command scheduling files; see at(1)
               backups/   misc. backup files
               db/        misc. automatically generated system-specific database files
               log/       misc. system log files

               mail/      user mailbox files
               run/       system information files describing various info about system since it was
                          booted

                          utmpx       database of current users; see utmpx(5)

               rwho/      rwho data files; see rwhod(8), rwho(1), and ruptime(1)
               spool/     misc. printer and mail system spooling directories

                          mqueue/     undelivered mail queue; see sendmail(8)

               tmp/       temporary files that are kept between system reboots
               folders/   per-user temporary files and caches

1
예를 들어 /usr/X11/권장하지 않습니까?
GEdgar

@zhermes 유용하다고 생각합니다.
jaume

1
OS X가없는 독자 (for man hier) : hier (7)에 대한
Graham Perrin

1
InsanelyMac 포럼의이 게시물에 따르면 "Apple 은 Mavericks에서 커널에 mach_kernel 파일 이름을 마지막으로 사용 했으므로 Sierra에서 이러한 파일을 찾을 수 없습니다! 요세미티 이후 OS X 커널은 현재 / System / Library / Kernels 아래에 있습니다. file name kernel , "그래서 이전의 추측 은 틀린 것 같습니다.
RandomDSdevel

1
@RandomDSdevel 감사합니다. 해당 변경 사항을 알지 못했지만 답변을 업데이트했습니다.
jaume

0

필자는 /opt종종 MacPorts 와 관련되어/opt/local 있고 경로의 '표준'사용에 대해 읽었을 때 적어도 2001 년부터 주변에 있었던 Fink 도 생각 합니다. Fink는 다음 경로를 널리 사용했습니다.

/sw

Mac OS X에서 파일 시스템 계층의 비표준 부분을 부주의하게 사용하는 예

2003-02-06

모든 .Mac 회원에게 무료로 제공되는 Virex 7.2는 악명 높게 Fink 라이브러리를 덮어 썼습니다 .

이것은 매우 나쁘다. Fink 사용자는 이것을 설치하지 마십시오…

/Volumes/Virex 7.2.dmg/Virex 7.2.pkg 328 % lsbom Contents/Resources/Virex\ 7.2.bom | grep sw
./sw    40775   0/80
./sw/lib        40775   0/80
./sw/lib/libcrypto.0.9.6.dylib  100644  0/80    945416  3192711062
./sw/lib/libcurl.2.0.2.dylib    100644  0/80    634480  510417796
./sw/lib/libcurl.2.dylib        100644  0/80    634480  510417796
./sw/lib/libdl.0.dylib  100644  0/80    15124   4193639260
./sw/lib/libssl.0.9.6.dylib     100644  0/80    261776  3001832603

라이센싱 존중을 포함하여 사건에 대한 다른 토론은 다음과 같습니다.

2003-04-16

핑크 뉴스 항목 :

Virex 문제 해결

McAfee는 더 이상 주 Fink 디렉토리를 덮어 쓰지 않는 Virex 7.2.1을 출시했습니다 /sw. Fink 사용자는 Virex 7.2를 계속 피해야합니다.

초기 보고서에 따르면 Virex를 7.2에서 7.2.1로 업그레이드하면 여전히 몇 가지 문제가 남아 있습니다. Fink가 설치되지 않은 상태에서 Virex를 업그레이드 한 후 Fink를 설치하려면 설치 /sw하기 전에 수동으로 디렉토리 를 삭제해야합니다 . Fink가 이미 설치된 상태에서 Virex를 업그레이드하는 경우 즉시 Viink 업그레이드가 삭제 한 파일을 복원 하려면 finkinstall opens openssl-shlibs dlcompat-shlibs curl-ssl-shlibs 를 실행해야합니다 .

2003-05

McAfee Virex 버전 7.2.1 릴리스 정보에서는 Fink 사용자에게 발생한 문제에 대해 언급하지 않았습니다.

부수적으로…

2004-08-31

것을 관찰 Virex 7.5은 더 이상 .Mac으로 회원에게 제공했다 .


BSD 관련

OS X… 내 이해는 /usr/사용자 홈 디렉토리에 대한 것입니다 .

FreeBSD 및 PC-BSD와 같은 운영 체제에서는 여전히 그렇습니다.

반면 /usr/home/에 명시되지 https://www.freebsd.org/cgi/man.cgi?query=hier&sektion=7&manpath=FreeBSD+10.2-RELEASE 경로가 같은 문서에서 예시 :


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