이 주제에 대해 몇 가지 조사를 했지만 원하는 정확한 정보를 얻을 수 없었습니다. 사실, 구체적인 공개가 없으며 모든 사람의 접근 방식이 다릅니다.
을 위한:파일 시스템 계층 표준
내 파일을 다음 위치에 저장해야 합니다.
임시 파일:
/var/temp/app_name/*
또는/temp/app_name/*
캐시 파일:
/var/cache/app_name/*
구성 파일:
~/.config/app_name/*
로그 파일:
/var/log/app_name/*
데이터 파일(데이터베이스 등):
???
질문 1:이것이 최신 시스템에 대한 올바른 접근 방식입니까?
XDG
표준 용여기에 설명되어 있습니다:
임시 파일:
???
또는/temp/app_name/*
캐시 파일:
~/.cache/app_name/*
구성 파일:
~/.config/app_name/*
로그 파일:
???
데이터 파일(데이터베이스 등):
???
왜 캐시 파일을 ~/.cache
./var/cache
이런 경우에는 혼란스럽습니다. 어디를 가든 접근 방식이 달랐습니다.
질문 2:순수 Linux 배포판($XDG를 사용하지 않음)에서 애플리케이션을 생성하려면 파일(데이터, 로그, 임시 파일, 구성 등)을 어디에 두어야 합니까?
Q3:일부 애플리케이션은 Linux 구조를 사용합니다 XDG
. 그들은 이것을 어떻게 선택했는가? 어떤 상황에 따르면? $XDG
우리가 사용한다면 환경 변수를 사용하게 될까요?
위 내용을 바탕으로 내 env | grep -i "XDG"
결과는 다음과 같습니다.
XDG_VTNR=1
XDG_SESSION_ID=1
XDG_DATA_DIRS=/home/furkan/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
첨부된: 내가 보여주고 있는 부분을 모르겠다. ???
답변1
혼란스러운 부분은 사용자 응용 프로그램과 시스템 응용 프로그램의 차이일 수 있습니다.
예를 들어 apache
최종 사용자로 실행되지 않습니다("Harry"는 일반적으로 Apache를 실행하지 않으며 시스템 시작 스크립트(systemd 또는 init 등)에서 실행됩니다). 이러한 애플리케이션은 일반적으로 파일 시스템 표준을 따르고 로그 파일을 /var/log
구성 파일 /etc
등에 저장합니다.
마찬가지로 root
전체 시스템에 영향을 주기 위해 시스템 관리자가 실행하는 명령(예: apt
또는 yum
)도 파일 시스템 표준을 따릅니다.
그러나 웹 브라우저 및 기타 데스크톱 애플리케이션과 같이 최종 사용자가 실행하도록 설계된 애플리케이션은 XDG 표준을 따릅니다. 여기에서 "Harry"는 "Julie"와는 다른 자신만의 개인 캐시를 가지고 있으며, 서로 다른 사이트를 방문하므로 서로 다른 페이지가 캐시됩니다. 마찬가지로 Harry는 Julie와 다른 데스크탑을 구성할 수 있으므로 구성은 ~/.config
해당 영역에 있게 됩니다.
일부 위치(예: /tmp
)는 모든 사용자가 공유하도록 설계되었으므로 데스크톱 응용 프로그램에서도 사용할 수 있습니다. 하지만 여기에서도 때로는 /run/user/
더 현대적인 구조가 사용됩니다.