답변:
"유닉스 기반 시스템"은 모든 유닉스 기반 시스템에 적용되는 모든 종류의 일반적으로 적용 가능한 결정을하기에는 너무 일반적인 범주 입니다. 문제는 파일 시스템 구조 (그리고 "적절한"/ "전통적인"장소)는 "Unix"의 다른 풍미들 (당신이 그것을 호출 할 수 있다면) 사이에서 아주 다르게 다르다는 것입니다. 사례별로.
몇 가지 예 :
그 대답은 Linux, BSD, Solaris, HP-UX 등의 배포판이든 모든 운영 체제에서 무엇을 저장할 것인지에 대한 정식의 사회적으로 수용 가능하며 통합 된 규칙 은 정확한 환경에 달려 있다는 것입니다 . 구체적으로 특별히:
apt-get
또는 같은 명령을 사용 하거나 yum
설치할 수 있습니까?모든 요소를 고려하지 않고 이에 대한 정답은 없습니다. 그러나 Ubuntu 12.04의 경우 .deb
PPA에 배포 할 파일로 패키지를 작성 하거나 Ubuntu의 자체 패키지 리포지토리 ( main
또는 universe
) 에 제출 하는 경우 캐시를에 저장하는 것이 좋습니다 /var/cache
. 그러나 즉 우분투 만 당신은 확실히해야 모든 배포판 또는 유닉스 기반 OS이 허용을 고려 것이라는 가정을 적용합니다.
또한 시스템의 부트에서 캐시 데이터를 저장하는 데 이점이 없다면 / tmp에도 속할 수 있다고 생각합니다.
프로그램에서 사용하는 모든 파일 유형 (공유 데이터, 실행 파일, 라이브러리, 도움말 파일, 이미지, 사운드, 웹 페이지 등)에 대해 이러한 경로 지정 규칙 문제가 발생합니다 . 따라서 캐시 파일에 대해 묻는 경우 다른 파일 형식을 처리하는 방법에 대해 궁금합니다. 당신은 순진한 가정을하고 아무도 당신과 동의하지 않기를 바라고 있습니까? 어디에 두어야하는지 제안하는 우분투 문서 나 표준을 읽지 않았다면 한 가지만 가정하는 것은 좋지 않습니다. 예를 들어, / usr / lib에서 라이브러리를 항상 고수하는 것은 다른 곳에 속하는 상황에 따라 실수가 될 수 있습니다.
또한 소프트웨어 개발자로서 가장 책임감있는 일은 최종 사용자가 파일을 저장할 위치를 결정하는 것입니다. 기본값을 설정할 수 있지만 사용자 (및 배포자)는 배포판에 맞게 빌드를 사용자 지정할 수 있으며 사용자 지정합니다.
가장 쉬운 방법은 GNU Autoconf를 사용하여 프로그램을 빌드하는 것 입니다. Autoconf는 사용자가 명령 줄 인수를 빌드 스크립트에 전달하여 다양한 "디렉토리 유형"의 경로를 기본값과 다르게 변경할 수있는 빌드 시스템입니다. 거의 모든 배포본에는 모든 Autoconf 패키지에 대한 빌드 스크립트가있어 각 유형에 대해 적절하지 않은 기존 디렉토리를 설정합니다. 캐시의 디렉토리 유형 인 sharedstatedir도 있습니다.
gem
도구 가 gem을 설치하는 매우 구체적인 디렉토리가 있습니다. 그러나 gem이 애플리케이션을 다운로드 한 디렉토리와 동일한 디렉토리 내에 런타임에 파일을 작성하는 것은 적절하지 않을 수 있습니다. 반면에 사용자로 앱을 실행하는 경우 사용자를 위해 읽기 / 쓰기 가능한 디렉토리가 필요하며 이는 권한 변경 (그룹 생성과 같이 설치시 더 많은 시스템 통합 작업이 필요함)을 의미합니다. 등) 또는 전역 읽기 / 쓰기 디렉토리 (예 : / tmp)를 사용합니다.
/usr
, /lib
또는 /bin
응용 프로그램에서.
/tmp
폴더입니다. 귀하의 질문에 대한 답변은 (다운로드, 아니오, 아니오, 아니오, 아니오, 아니오, 아니오)입니다. 아마 대부분의 사람들이 결론을 내리는 것이 평범한 것처럼 보이지만/tmp
나는 유닉스 시스템에 익숙하지 않으며 우분투 운영 체제 기반의 규칙은 나에게 익숙하지 않습니다. 이것은 gem이 불가지론 적 디스크 캐싱 (사용자 불가지론)을 허용하는 흥미로운 아이디어를 열어줍니다. 고마워, +1