일부 응용 프로그램은 구성 데이터에 ~ / .config / appname을 사용하고 다른 응용 프로그램은 ~ / .appname을 사용하는 이유는 무엇입니까?


37

일부 응용 프로그램은 구성 파일을 넣는 ~/.config/appname반면 다른 응용 프로그램은 ~/.appname(기본 방식 인 AFAIK) 사용합니다. 이 구별의 의미는 무엇이며 내 응용에 대해 고려해야 할 것이 무엇입니까?

업데이트 : 내 (XUbuntu 11.10 기본값) $ XDG_CONFIG_HOME이 설정되어 ~/있고 내 시스템의 대부분의 응용 프로그램 (Mozilla Firefox, Adobe Flash Player, Midnight Commander, Opera, Wine 등)이이를 준수하는 것처럼 보입니다. 그러나 ~/.config/대신 사용 하는 많은 응용 프로그램 (Compiz, Deadbeef, VLC, Qt Creator, Chrome, XFCE 등)이 여전히 있습니다. 다른 의심스러운 점은 디렉토리 ~/.config/가 자체적으로 숨겨져 있지 않다는 것입니다 (이름에 점이 없음)-응용 프로그램 구성 디렉토리가 위치 ($ XDG_CONFIG_HOME 값)에 의존하지 않고 일정한 이름을 가질 것으로 예상되지 않습니까?

답변:


44

일부 문제를 해결하는 jasonwryan의 훌륭한 답변을 보완합니다.

  • 귀하 $XDG_CONFIG_HOME가로 설정되어 있지 않습니다~/ . 단순히 설정되지 않았습니다. 따라서 XDG 사양을 따르는 응용 프로그램 은 기본값을 사용합니다.~/.config

  • 내부의 먼지 /.config는 필요하지 않기 때문에 숨겨져 있지 않습니다. ~/.configdir 을 사용하는 요점은 사용자를 정리 하는 것 $HOME입니다. 그들은 이미 별도의 숨겨진 디렉토리에 있으므로 내부에 숨길 필요가 없습니다.

  • 사양 (불행하게도 여전히 대다수)을 따르지 않는 소프트웨어의 설정에 대한 숨겨진 디렉토리를 사용 (같은 ~/.myapp)이 같은 시도 사용자를 혼란하지 $HOME. 그것은 (kinda) 작동하지만, 예를 들어 설정과 "큰 데이터"(예 : 사진, 비디오, 음악)를 별도로 백업하려고 할 때 여전히 나쁜 접근 방식입니다. 사용자의 데이터와 혼합하지 않고 한 곳에서 모든 설정을하는 것이 훨씬 더 나은 방법입니다

  • 에 관해서는 "관계없이 어디 상수 이름을 가진 XDG_CONFIG_HOME포인트는" 그들은 이미 수행 그것입니다 appname 없이 선행 점. 기억하십시오 : 사용 $HOME/.appname하는 것은 XDG 스펙 을 무시 하는 것입니다 . 하드 코드 된 경로를 사용합니다.

  • 응용 프로그램에 대해서는 XDG 표준을 사용하십시오 ! 나는 당신을 구걸하며, 사용자들은 더 이상 $ HOME을 어지럽히 지 않아서 고맙다고 말할 것입니다.


4
대답이 가장 훌륭 하다고 말하고 싶습니다 ! 기존의 지혜는 특히 유용하며 귀하의 요점은 잘 설명되어 있습니다 :) 감사합니다!
Steve Benner

HOME 디렉토리의 숨겨진 파일 목록과 숨겨진 구성 디렉토리의 숨겨진 파일 목록의 차이점은 어디에 있습니까? 나를 위해 그것은 긴만큼 넓습니다.
ceving

@ ceving : 나는 화장품과 실용적인 두 가지 주요 차이점을 보았습니다. 여러 $HOME관점에서 볼 ~/.config때 수십 가지가 아닌 단일 항목입니다. 또한 설정 백업 (또는 제외)을 훨씬 쉽게 수행 할 수 있습니다! 귀하 ~/Documents또는 귀하의 소프트웨어 설정을 어떻게 구별 할 수 ~/.cache있습니까?
MestreLion

24

구성 파일을 배치하는 응용 프로그램 $HOMEXDG 기본 디렉토리 사양을 무시하므로 다음과 같은 이점이 있습니다.

사용자 별 구성 파일을 작성하는 데 필요한 단일 기본 디렉토리가 있습니다. 이 디렉토리는 환경 변수 $ XDG_CONFIG_HOME에 의해 정의됩니다.

$ XDG_CONFIG_HOME이 설정되지 않거나 비어 있지 않은 경우 $ HOME / .config와 같은 기본값을 사용해야합니다.

my (XUbuntu 11.10 기본값)이로 $XDG_CONFIG_HOME설정되어 ~/있지만 여전히 사용하는 많은 응용 프로그램이 있습니다~/.config/
Ivan

3
이 답변은 완전하지 않습니다. 즉, 사양이 첫날부터 존재했음을 암시하는 것처럼 보이며 처음부터 사양을 무시한 앱일뿐입니다. 그러나 실제로 XDG보다 사양이 더 긴 앱이 많이 있습니다.
Ruslan

버전 0.7 Poettering 표준. 정말 중요합니다. 아무도 표준이 해결하는 문제를 설명 할 수 있습니까?
ceving

@Ruslan : 2003 년부터 시작되었습니다. 15 년 전입니다. 사실, 그 첫날이 아니며 그 전에 많은 소프트웨어가 만들어졌습니다. 그러나 그러한 소프트웨어는 오늘날에도 여전히 사용중인 많은 업데이트가 있었을 가능성이 높으므로 XDG 표준으로 마이그레이션하지 않은 소프트웨어는 고의로 무시하기로 선택하는 것이 안전합니다.
MestreLion

@ceving : /데이터와 실행 파일을 구성과 혼합하지 않고 같은 방식으로 사용자 디렉토리를 구성하는 문제를 해결합니다 . ~/.config는 사용자의 대응 물이며 /etc예를 들어 백업에 크게 도움이됩니다. 이 없으면 /.config설정 백업에서 모든 앱 디렉토리를 수동으로 포함하거나 모든 사용자 "빅 데이터"디렉토리 (동영상, 음악 및 기타 개인 디렉토리)를 수동으로 제외해야합니다.
MestreLion

7

더 논란의 여지가있는 답변은 다음과 같습니다.

  • ~/.configXDG 표준의 기본값은 FreeDesktop.org 표준을 준수하는 응용 프로그램에만 적용됩니다 ( $XDG_CONFIG_HOME변수 사용을 통해 ).
  • ~/.appname freedesktop 표준 이전에 존재했습니다
  • 모든 사람이 freedesktop 표준을 좋아하는 것은 아닙니다
  • $HOME제 생각에는 "잡음" 은 문제가되지 않습니다.

2
그것은 논란의 여지가있는 대답이 아니며, 오해의 소지가 있고 명백한 잘못입니다.-현재 ~/.configLibre Office, Chromium, Deluge와 같은 FreeDesktop.org와 관련이없는 응용 프로그램 에서 120 개의 디렉토리 가 있습니다. Unity3D), Google 앱 (Chrome, Earth), Python (IPython, Eric), Emulators (Muppen 64, Desmune)를 사용하는 모든 게임 만 해당됩니다 . FreeDesktop.org 자체에는 응용 프로그램이 거의 없습니다. -이 ~/.appnameXDG 전에 존재 관례이지만, 여전히 사용 오늘날 대부분의 소프트웨어는 방법을 만든 표준.
MestreLion

5
- 소프트웨어 개발자의 관점에서, 디렉토리 표준처럼 아무것도 또는 싫어하는 없다, 그것은 단지에서 디렉토리 일정을 저장 변경 $HOME/.myapp${XDG_CONFIG_HOME:-$HOME/.config}/myapp
MestreLion

specification.freedesktop.org/basedir-spec/…에 정의 되어 있으며 원하지 않는 응용 프로그램은 무료입니다. 모든 사람이 .config로 분리해야하는 것은 아닙니다.
David Gardner

그러나 표준을 따르는 응용 프로그램이 "FreeDesktop.org 응용 프로그램"이라는 것은 매우 잘못된 것입니다.
MestreLion

2
~/.app이상의 이점이 ~/.config/app있습니까?
sam boosalis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.