핵심 요약
- 한 개발자가 Node 패키지 관리 도중 /usr 폴더가 잡다한 파일들로 엉망이 되자 리눅스 파일 시스템 계층 표준(FHS) 문서를 공유했습니다.
- FHS 표준은 /bin, /etc, /usr, /var 등 각 디렉터리의 명확한 역할과 파일 배치 가이드라인을 규정하고 있습니다.
- 소프트웨어 간 충돌을 방지하고 일관된 시스템 관리를 돕기 위한 표준으로 많은 개발자들의 공감을 샀습니다.
요약 해외 개발자 커뮤니티에서 한 개발자가 Node.js 관련 패키지 등을 다루다 `/usr` 디렉터리에 온갖 쓰레기 파일들이 어지럽혀진 경험을 토로하며, 리눅스 및 유닉스 계열 운영체제의 파일 시스템 표준인 FHS(Filesystem Hierarchy Standard) 문서를 공유해 개발자들의 공감을 샀습니다.
리눅스를 처음 접하거나 패키지 관리를 직접 하다 보면 도대체 어떤 파일을 어디에 넣어야 할지 혼란스러운 경우가 많습니다. 공유된 FHS 표준 문서(2.3 버전)는 유닉스 계열 시스템에서 파일과 디렉터리가 어디에 위치해야 하는지에 대한 체계적인 가이드라인을 제공합니다. 이는 소프트웨어 개발 도구나 시스템 관리 스크립트, 일반 애플리케이션 간의 상호 운용성을 보장하고 시스템 문서화의 일관성을 유지하기 위해 제정되었습니다.
문서에 정리된 루트 파일시스템 계층 구조에 따르면, `/bin`은 모든 사용자가 필수적으로 쓰는 기본 명령어 바이너리를 보관하고, `/boot`는 부트로더 관련 정적 파일을, `/dev`는 장치 파일, `/etc`는 호스트 고유의 시스템 설정 파일을 담도록 규정되어 있습니다. 추가 소프트웨어 패키지는 `/opt`에, 시스템 관리자 전용 바이너리는 `/sbin`에 위치해야 합니다.
또한 작성자가 어지럽혀졌다고 호소한 `/usr` 계층은 대부분의 사용자 명령어가 들어가는 `/usr/bin`, 헤더 파일용 `/usr/include`, 공통 라이브러리가 담기는 `/usr/lib`, 로컬 전용 계층인 `/usr/local` 등으로 세분화됩니다. 로그 파일이나 캐시 등 가변적인 런타임 데이터는 `/var/log`, `/var/cache`, `/var/spool` 등 `/var` 디렉터리 하위에 격리하도록 정의되어 있어, 시스템이 꼬이지 않도록 파일 배치 원칙을 명확히 제시합니다.
Sponsored · 광고