XDG Base Directory (Português)

Esse artigo resumo a especificação XDG Base Directory em #Especificação e rastreia o suporte por softwares em #Suporte.

Status de tradução: Esse artigo é uma tradução de XDG Base Directory. Data da última tradução: 2019-11-24. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Especificação

Leia a especificação completa. Essa seção vai tentar destrinchar a essência do que a especificação tenta alcançar.

Apenas XDG_RUNTIME_DIR está definido por padrão por meio de pam_systemd. É deixado para que o usuário defina explicitamente as demais variáveis de acordo com a especificação.

Diretórios de usuário

  • XDG_CONFIG_HOME
    • Onde configurações específicas do usuário devem ser escrita (análogo a /etc).
    • O padrão deve ser $HOME/.config.
  • XDG_CACHE_HOME
    • Onde dados (em cache) não essenciais e específicos do usuário devem ser escritos (análogo a /var/cache).
    • O padrão deve ser .
    • Onde arquivos de dados específicos do usuário devem ser escritos (análogo a ).
    • O padrão deve ser .
  • XDG_RUNTIME_DIR
    • Usado para arquivos de dados não essenciais e específicos do usuário, como soquetes, pipes nomeados etc.
    • Não é necessário ter um valor padrão; avisos devem ser emitidos se não definido ou equivalentes não forem fornecidos.
    • Deve pertencer ao usuário com um modo de acesso de 0700.
    • Sistema de arquivos totalmente caracterizado pelos padrões do sistema operacional.
    • Deve estar no sistema de arquivos local.
    • Pode estar sujeito a limpeza periódica.
    • Modificado a cada 6 horas ou defina um bit adesivo se desejar persistência.
    • Só pode existir durante o início de sessão do usuário.
    • Não deve armazenar arquivos grandes, pois pode ser montado como um tmpfs.

Diretórios de sistema

  • XDG_DATA_DIRS
    • Lista de diretórios separadas por (análogo a ).
    • O padrão deve ser .
    • Lista os diretórios separados por (análogo a ).
    • O padrão deve ser .

Suporte

Esta seção existe para catalogar o crescente conjunto de softwares usando a XDG Base Directory Specification introduzida em 2003. Isso está aqui para demonstrar a viabilidade desta especificação listando os arquivos de ponto comumente encontrados e seu status de suporte. Para aqueles que atualmente não oferecem suporte à Base Directory Specification, as soluções alternativas serão demonstradas como emulação.

As soluções alternativas serão limitadas a qualquer coisa que não envolva o patch da fonte, a execução do código armazenado em variáveis de ambiente ou as opções de tempo de compilação. A lógica para isso é que as configurações devem ser portáveis entre sistemas e ter opções em tempo de compilação evitam isso.

Espera-se que isso forneça uma fonte de informações sobre exatamente o que são certos tipos de arquivos-ponto (dotfiles) e de onde eles vêm.

Contribuindo

Ao contribuir, certifique-se de usar a seção correta.

Nada deve exigir avaliação de código (como vim e ), patches ou opções em tempo de compilação para obter suporte e qualquer coisa que deva ser considerada codificada. Além disso, se o processo for muito propenso a erros ou difícil, como cabal do Haskell ou Eclipse, eles também deverão ser considerados como codificados.

  • A primeira coluna deve ser um link para um artigo interno, um Template:Pkg ou um Template:AUR.
  • A segunda coluna é para todos os arquivos e diretórios legados que o projeto tinha (um por linha); isso é feito para que as pessoas possam encontrá-los, mesmo que não sejam mais lidos.
  • Na terceira, tente encontrar o commit ou a versão de um projeto que mudou para o XDG Base Directory ou quaisquer discussões abertas e inclua-as nas próximas duas colunas (duas por linha).
  • A última coluna deve incluir quaisquer soluções alternativas ou soluções apropriadas. Verifique se sua solução está correta e funcional.

Tem suporte

Aplicativo Caminho legado Suporte desde Discussão Observações
~/.antimicro, ~/.antimicrox edba864
aria2 8bc1d37
2.9.0 Usa para e para outros 3 arquivos. Caminhos legados não são removidos após a migração, tendo que ser excluídos manualmente.
~/.binwalk 2051757

Há suporte apenas no branch master do Git, não havendo lançamentos estáveis atualizados.

Blender ~/.blender 4293f47
Chromium 23057

f7c3193
Composer 1.0.0-beta1
7f6104b
Dolphin emulator ~/.dolphin-emu a498c68
7e777ca
78b6e2b
elixir afaf889
fish
fontconfig 8c255fb Usa para armazenar fones.
e4c2cc7

freerdp edf6e72
Gajim 3e777ea
fc28caa
GIMP

60e0cfe 483505f

Git 0d94427
GStreamer 4e36f93
GTK 3
htop 93233a6
i3 ~/.i3 7c130fb
c3f7fc4
Inkscape 0.47
Kakoune
latexmk (em )
~/.lftp 21dc400
~/.gogdownloader d430af6
LibreOffice

a6f56f7 25bd2ee

Streamlink ea80591
llpp 3ab86f0 Atualmente, llpp coloca a configuração diretamente sob XDG_CONFIG_HOME, em vez de criar um diretório.
mc

1b99570 0b71156 ce401d7

Mercurial

3540200 4.2

.
msmtp

af2f409 v1.6.7+

.
87ab26b XDG_CACHE_HOME/mesa
~/.milkytracker_config eb487c5
mpd 87b7328
mpv cb250d4
mutt b17cd67
cf723b7
nano c16e79b
ncmpcpp

38d9f81 27cd86e

ncmpcpp_directory deve ser definido para evitar um arquivo em .
Neovim 1ca5646

newsbeuter ~/.newsbeuter 3c57824 É necessário criar ambos diretórios :
node-gyp 2b5ce52a Disponível apenas no master até 2018-12-04.
56a1cc2
4593e72 não reconhece soluções alternativas para ipython/jupyter
OfflineIMAP 5150de5
opentyrianAUR 39559c3
0bed0ab
pcsx2

87f1e8f a9020c6 3b22f0f 0a012ae

Pry

a0be0cc7 15e1fc92 e9d1be0e

6.0
6.0
~/.ppsspp 132fe47
af53e17

pacman 80eca94
~/.panda3d 2b537d2
PulseAudio

59a8618 87ae830 9ab510a 4c195bc

3.10.0
qutebrowser
qtile

fd8686e 66d704b 51cff01

Algumas barras opcionais podem criar arquivos e diretórios em caminhos sem conformidade, mas geralmente eles ainda são configuráveis.
rclone 9d36258
02e7d41
RSpec 5e395e2
rTorrent 6a8d332
RuboCop ~/.rubocop.yml 6fe5956
8.0
snes9x 93b5f11 Por padrão, o arquivo de configuração é deixado em branco com a intenção de que o usuário vá preenchendo-o de acordo com sua própria vontade (por interface gráfica ou manualmente).
O cache é colocado em em vez do esperado .
surfraw

3e4591d bd8c427 f57fc71

sway 614393c
systemd
termite
, ~/.tig_history 2.2 O diretório deve existir, do contrário escreve para ~/.tig_history.
tmuxinatorAUR 2636923
Transmission b71a298
570b321
Uzbl c6fd63a
VirtualBox 4.3

68a25c7 d138908

VLC ~/.vlcrc 16f32e1
Visual Studio Code Note que o diretório de extensões não vai ser movido; veja .
~/.warsow-2.x 98ece3f
Wireshark b0b53fa
b4999f5
xmonad 40fc10b

Alternativamente, as variáveis de ambiente , e também são configuráveis.
xsel ee7b481
2d454b5

Parcial

Aplicativo Caminho legado Suporte desde Discussão Observações
ack
Anki

~/Anki
~/Documents/Anki

aspell
Atom
~/.aws 1.7.45
$ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion
bazaar 2.3.0 Discussão no relatório de erro do upstream informa que o bazaar vai usar se existir. O arquivo de log ainda pode ser escrito.
Ruby#Bundler
$ calcurse -C "$XDG_CONFIG_HOME"/calcurse -D "$XDG_DATA_HOME"/calcurse
Rust#Cargo $ export CARGO_HOME="$XDG_DATA_HOME"/cargo
ccache
conky 00481ee $ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc
coreutils
crawl A barra ao final é necessária:

$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/

Apesar disso, clusterssh ainda vai criar .

CUDA
dict ~/.dictrc
Docker
docker-machine
DOSBox
ELinks $ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks

Apesar dessas opções, ainda vai criar o arquivo , pois o módulo web o tem codificado

GDB ~/.gdbinit
~/.get_iplayer
getmail
GnuPG ~/.gnupg
Google Earth Alguns caminhos podem ser alterados com as opções e em
gopass Se sobrepõe às configurações em :
GQ LDAP client 1.51
Gradle ~/.gradle
GTK 1
GTK 2
hledger
~/.httpie
ipython/jupyter não vai corrigir
irb ~/.irbrc
irssi ~/.irssi
isync
Java (Português)#OpenJDK
ledger , $ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc
less
pode ser usado para desabilitar esse recurso.
libdvdcss

Certifique-se que XDG_CACHE_HOME esteja definido antes para o usuário do diretório que está usando Xorg tenha acesso de escrita ao mesmo.

Não use XDG_RUNTIME_DIR, pois ele está disponível após o início da sessão, do contrário os gerenciadores de exibição que iniciam Xorg (como o GDM) vão falhar repetidamente.

libx11

~/.XCompose
~/.compose-cache

~/.m2
Mathematica
mednafen
MOC
most
MPlayer $ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer
MySQL
Preclui a pesquisa de caminho do sistema:
ncmpc
Netbeans $ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans
Node.js
notmuch
$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
é desnecessário (e não há suporte) se o Node.js for instalado por .
~/.nuget/packages
NVIDIA Usa XDG_CACHE_HOME se definido, do contrário retrocede inadequadamente para em vez de .
~/.nvidia-settings-rc
Octave

$ export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts"
$ export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"

Deve-se fornecer à opção um caminho absoluto.

7c3077b0f Não honra totalmente a XDG Base Directory Specification, veja

Atualmente, ele codifica .

OpenSSL ~/.rnd O local do arquivo semeador pode ser definido com a varável de ambiente conforme FAQ.
20170422 $ export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
Pass
Pidgin
PostgreSQL 9.2

É necessário criar ambos diretórios: $ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"

PulseAudio Provavelmente gerado pelo módulo . Ele pode ser configurado para usar um local diferente, mas faz muito mais sentido apenas comentar este módulo em ou .
python-azure-cliAUR
python-pylint não vai corrigir
$ export PLTUSERHOME="$XDG_DATA_HOME"/racket
readline
Ruby#RubyGems

$ export GEM_HOME="$XDG_DATA_HOME"/gem
$ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem

Certifique-se de remover de

Rust#Rustup $ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
(cuidado com )
GNU Screen
Haskell#Stack ~/.stack
subversion

~/.task
~/.taskrc

Ele ainda vai espera haver o arquivo .
tmux ~/.tmux.conf
Unison ~/.unison
urxvtd
Vagrant

~/.vagrant.d
~/.vagrant.d/aliases

WeeChat
wget


e adicionar o seguinte como um alias para wget:

ou definir a variável hsts-file com um caminho absoluto, pois não tem suporte a variáveis de ambiente:

wine Winetricks usa local tipo XDG abaixo para gerenciamento de WINEPREFIX:

$ mkdir -p "$XDG_DATA_HOME"/wineprefixes
$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default

xbindkeys
xinit

$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc

Note que essas variáveis são respeitadas pelo xinit, mas não pelo startx. Em vez disso, especifique o nome de arquivo como um argumento:

Em última análise, você deve estar usando e já que esses recursos são carregados por meio de xrdb, você pode especificar um caminho como .

Codificado

Aplicativo Caminho legal Discussão Observações
adb $ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android
AMule
Android Studio
anthy
Apache Directory Studio
ARandR
Arduino

~/.arduino15
~/.jssc

não vai corrigir
Audacity
Avidemux
Bash não vai corrigir

Um bashrc especificado pode ser carregado a partir de .

Especifique como uma alternativa a para shells interativos.

cabal Veja a discussão para soluções alternativas em potencial. Não é muito fácil ou direta, mas pode ser possível emular a conformidade com Base Directory.
cmake Usado para registro de pacote de usuário , detalhado em e na página wiki de Package registry. Parece que é codificado, por exemplo em cmFindPackageCommand.cxx.
Cinnamon
cryptomatorAUR
CUPS não vai corrigir
darcs
dbus Isso deve ser evitável com kdbus [citação necessária].
Codificado aqui
Dia ~/.dia/
Eclipse A opção -Dosgi.configuration.area=@user.home/.config/.. sobrescreve, mas deve ser adicionado para em vez de linha de comando que significa que você tem que ter acesso de escrita para . (Arch Linux codifica em )
Emacs É possível definir , mas tem efeitos colaterais inesperados. Até agora, a abordagem mais promissora é modificar outra variável de ambiente do Emacs para alterar o caminho de carregamento e criar o seu próprio arquivo de site, que pode carregar manualmente o arquivo init, mas altera significativamente o processo de carregamento.
Fetchmail ~/.fetchmailrc
Firefox
Flatpak não vai corrigir
GHC ~/.ghc
GoldenDict
gtk-recordMyDesktop ~/.gtk-recordmydesktop
idris
iwd / iwctl ~/.iwctl_history
Java OpenJDK
Java OpenJFX
julia
lldb
mathomatic O histórico pode ser movido usando rlwrap mathomatic -r com o ambiente definido apropriadamente.
Minecraft
Minetest não vai corrigir
mongodb Esse tópico do Stack Overflow sugere uma solução alternativa parcial usando a opção de linha de comando .
Nestopia UE não vai corrigir
~/.netrc Assim como , muitos programas esperam que esse arquivo esteja aqui. Estes incluem projetos como curl (), ftp (), s-nail (), etc. Enquanto alguns deles oferecem locais alternativos configuráveis, muitos não o fazem, como w3m, wget e lftp.
Networkmanager-openvpn
NSS ~/.pki
OpenSSH não vai corrigir Presume-se estar presente por muitos daemons e clientes de ssh, tal como DropBear e OpenSSH.
palemoon
Uma opção existe, mas só pode ser definido relativo a .
perf ~/.debug Codificado em tools/perf/util/config.c:29.
vários shells e gerenciadores de exibição
python Todo o histórico de sessões interativas salvas em por padrão desde a versão 3.4, um caminho personalizado ainda pode ser definido na mesma forma como em versões antigas (veja este exemplo).
Qt Designer ~/.designer
RedNotebook
Remarkable
Ren'Py
SANE cria um arquivo lá
scribus
A única solução alternativa é modificar
SeaMonkey
simplescreenrecorder O autor parece não concordar com esse recurso.
Solfege
spacemacs
SpamAssassin
spectrwm ~/.spectrwm
SQLite
Steam Muitos motores de jogo (Unity 3D, Unreal) seguem a especificação, mas publicadores de jogo individual codificam os caminhos em Steam Auto-Cloud fazendo os salvamento de jogos sincronizar para diretório errado.
TeamSpeak
~/.infokey
TeXmacs
Thunderbird
tllocalmgr
vim

~/.vim
~/.vimrc
~/.viminfo

A partir de 7.3.1178, vem com suporte a se não for encontrado.
vimperator $ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"
~/.w3m
wpa_cli
Por algum motivo o script codifica . Isso é usado por chromium entre outros.
xombrero ~/.xombrero
~/.xournalpp
YARD Aceitaria uma Pull Request se alguém quisesse implementá-la.
zenmap
zsh Considere exportar em (isso é codificado por causa de problema de inicialização). Você também poderia adicionar isso a /etc/zsh/zshenv e evita a necessidade de quaisquer dotfiles em seu . Porém, fazer isso requer privilégios de root que não ser viável e é para todo sistema.
 /!\ A pasta precisa existir

Bibliotecas

C
C99: implementação simples do Cloudef.
JVM
Java, Kotlin, Clojure, Scala, ...
directories-jvm
Go
go-appdir
Haskell
Oficialmente no diretório desde 1.2.3.0 ab9d0810ce.
xdg-basedir
Perl
File-BaseDir
perl-file-xdg
Ruby
rubyworks/xdg
Rust
directories-rs
rust-xdg
Python
pyxdg
Vala
Suporte embarcado via GLib.Environment.
Veja , , get_user_config_dir, etc.

Veja também

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.