AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 564003
Accepted
MountainX
MountainX
Asked: 2020-01-25 22:43:04 +0800 CST2020-01-25 22:43:04 +0800 CST 2020-01-25 22:43:04 +0800 CST

XDG_DATA_DIRS contém caminhos duplicados; Como consertar?

  • 772

Estou executando o Arch Linux e o KDE e estou curioso para aprender sobre associações de arquivos do tipo mime.

Ao investigar meu sistema, notei este problema:

$ echo $XDG_DATA_DIRS
/usr/share:/usr/share:/usr/local/share

Observe que o caminho /usr/shareestá duplicado. Gostaria de saber como resolver isso e como resolver.

Além disso, meu sistema não possui um /usr/local/share/applications/ Pode esse caminho ser removido do $XDG_DATA_DIRSenv var? Se sim, como?

Acredito que o resultado final deve ser:

$ echo $XDG_DATA_DIRS
/usr/share

Aqui estão algumas informações de solução de problemas. Não vejo esses caminhos ao executar como root. Isso não produz saída std:

# echo $XDG_DATA_DIRS

Na minha conta de usuário normal na minha máquina, o comando a seguir não produz uma saída padrão e um valor de retorno de 1:

$ grep -r XDG_DATA_DIRS /etc/profile.d/

Esta pesquisa não encontra correspondências, exceto no arquivo binário places.sqlite (no perfil do Firefox):

find /home/myuser -mount -type f -exec grep -r XDG_DATA_DIRS= {} +

Isso também não produz saída padrão:

grep -r XDG_DATA_DIRS /etc/

Até agora, a única correspondência que encontrei é esta:

# grep -r XDG_DATA_DIRS= /usr
/usr/share/ECM/kde-modules/prefix.sh.cmake:export XDG_DATA_DIRS=@KDE_INSTALL_FULL_DATADIR@:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}

Então...

pacman -F /usr/share/ECM/kde-modules/prefix.sh.cmake
usr/share/ECM/kde-modules/prefix.sh.cmake is owned by extra/extra-cmake-modules 5.66.0-1

Arch Linux - extra-cmake-modules 5.66.0-1 (qualquer) https://www.archlinux.org/packages/extra/any/extra-cmake-modules/

Espero que esse pacote não seja responsável por estragar minhas associações de tipo mime ...

Em uma nova conta de usuário em uma instalação limpa do Arch em outro dispositivo, os três comandos a seguir não produzem saída padrão:

echo $XDG_DATA_DIRS
grep -r XDG_DATA_DIRS /etc/profile.d/
grep -r XDG_DATA_DIRS= /usr
mime-types
  • 5 5 respostas
  • 723 Views

5 respostas

  • Voted
  1. Best Answer
    Munzir Taha
    2020-01-26T13:19:19+08:002020-01-26T13:19:19+08:00

    Além disso, meu sistema não possui um /usr/local/share/applications/ Esse caminho pode ser removido do $XDG_DATA_DIRS env var

    /usr/local/share/applicationsnão está nos $XDG_DATA_DIRSvalores que você colou então não há necessidade de remover o inexistente

    Se você grep -r XDG_DATA_DIRS /usr

    e você verá muitas ocorrências de XDG_DATA_DIRS.

    Espero que esse pacote não seja responsável por estragar minhas associações de tipo mime ...

    Não, não estraga nada. Ele apenas pesquisa esses diretórios também

    Em uma nova conta de usuário em uma instalação limpa do Arch em outro dispositivo, os três comandos a seguir não produzem saída padrão

    Exatamente, você obtém valores diferentes em sistemas diferentes. São esses pacotes que você instala e as variáveis ​​env que são definidas para esse usuário específico, que definiriam os diretórios que serão pesquisados ​​por arquivos de dados. Se o mesmo valor for definido duas vezes, ele aparecerá duas vezes. Não há nada de estranho em ter isso porque às vezes os pacotes não se coordenam. grep /usr/, /opte $HOMEvocê encontrará o culpado em algum lugar com certeza. Se não grep /;)

    • 1
  2. Stéphane Chazelas
    2020-01-26T00:45:06+08:002020-01-26T00:45:06+08:00

    Se você estiver usando o zshshell, poderá adicionar ao seu ~/.zshrc:

    typeset -UT XDG_DATA_DIRS xdg_data_dirs
    

    Então a $XDG_DATA_DIRSvariável escalar será Tligada ao $xdg_data_dirsque torna muito mais fácil de manipular e os elementos são Uexclusivos com -U.

    Em seguida, para remover os componentes inexistentes, você pode adicionar:

    xdg_data_dirs=($^xdg_data_dirs(N-/))
    

    O que removeria componentes que não são diretórios reais ( /, após a resolução do link simbólico ( -))

    • 0
  3. Philippe
    2020-01-26T03:05:50+08:002020-01-26T03:05:50+08:00

    Para remover duplicatas e diretórios inexistentes no bash :

    #!/usr/bin/env bash
    
    XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share
    IFS=: read -ra xdg_data_dirs <<< "$XDG_DATA_DIRS"
    declare -p xdg_data_dirs
    for d in "${xdg_data_dirs[@]}"; do
        test -d "$d" || continue
        [[ :$result: != *:$d:* ]] || continue
        result+="${result+:}$d"
    done
    XDG_DATA_DIRS=$result
    

    Você pesquisou em seu diretório inicial?

    • 0
  4. MountainX
    2020-01-30T15:15:38+08:002020-01-30T15:15:38+08:00

    Ao investigar meu sistema, notei este problema:

    $ echo $XDG_DATA_DIRS  
    /usr/share:/usr/share:/usr/local/share  
    

    Observe que o caminho /usr/share está duplicado. Gostaria de saber como resolver isso e como resolver. Meu sistema não tem/usr/local/share/applications/

    Esta é a única solução infalível que encontrei:

    unset XDG_DATA_DIRS
    export XDG_DATA_DIRS=/usr/share
    

    Eu coloquei esses comandos no meu ~/.bashrcarquivo

    • 0
  5. Wiley
    2020-08-29T06:40:39+08:002020-08-29T06:40:39+08:00

    Verifique /usr/bin/x-session-manager e /usr/bin/startxfce4 ambos duplicados /usr/share em XDG_DATA_DIRS.

    • 0

relate perguntas

  • Qual é o procedimento para atualizar associações de tipo mime no KDE?

  • Arquivos de configuração para configurações de mime

  • Como definir o Midnight Commander como o gerenciador de arquivos padrão?

  • Clicar em um tipo MIME executa um script para abrir o arquivo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve