Programas instalados via snap não aparecendo no Launcher


37

Apenas atualizado para o Ubuntu 16.04 e tentando pacotes de snap pela primeira vez.

Então, eu precisava do meshlab para visualizar alguns arquivos stl. Ocorreu um problema ao entrar com o pitn logon. Constatou que a instalação pela linha de comando dos pacotes snap não precisa do logon.

sudo snap install meshlab

e ei presto meshlap instalado, sem pitn log in. Funciona bem na linha de comando. No entanto, o programa não aparece no iniciador. Por que é isso? Os pacotes snap não aparecem no iniciador? Como posso consertar isso?

Respostas:


40

Se você estiver usando o zsh, os diretórios binários e da área de trabalho de snap não serão adicionados automaticamente às suas variáveis ​​de ambiente. Para resolver isso, adicionei a seguinte linha ao / etc / zsh / zprofile (extraído do Arch):

emulate sh -c 'source /etc/profile'

Isso processará seu arquivo / etc / profile com emulação bash, que por sua vez origina /etc/profile.d/* e define os CAMINHOS apropriados, etc.

Para adicionar apenas os diretórios de snap ao seu caminho, sem incluir todo o restante do perfil padrão do bash:

emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'

11
Obrigado! Funciona bem em 17.10 também. Mudar para o zsh também trouxe esse problema para mim.
Danwit

2
Eles devem corrigir isso no processo de instalação ou adicionar etapas de FAQ / Solução de problemas para snap.
21818 BradErzwh

11
Obrigado, trabalhou para mim em 18.10. Espero que isso seja corrigido de alguma forma no futuro.
Pavel Davydov

11
Brilhante, infelizmente ainda é um problema em 19.04
jhole89 18/04

11

Ele está embutido no sistema de snap, mas você precisa adicionar o link ao seu traço. Para iniciar o tipo de programa

snap run meshlab

Depois de instalado, clique com o botão direito do mouse no ícone e clique em "adicionar ao traço".


7

Para mim, também parece estar relacionado à combinação de Wayland / ZSH no Ubuntu 18.04 - mesmo estando /var/lib/snapd/desktoplistado na XDG_DATA_DIRSvariável (isso é feito por /etc/profile.d/apps-bin-path.sh), o iniciador não reconhece aplicativos dessa pasta.

Uma solução rápida é conectar simbolicamente os arquivos da área de trabalho desejados, por exemplo:

ln -s /var/lib/snapd/desktop/applications/rubymine_rubymine.desktop .local/share/applications

5

Os pacotes snap não aparecem no iniciador?

Eles fazem isso desde que o snap envie arquivos .desktop adequados. Apenas o Meshlab meshlabserverpossui um arquivo de desktop adequado (e, de fato, ele aparece no meu iniciador). O meshlabarquivo .desktop, no entanto, está tentando executar meshlab.meshlab, quando deveria estar apenas usando meshlab. Como resultado, ele não aparece.

Como posso consertar isso?

Se você executar, snap info meshlabverá as informações de contato do editor. Eu sugiro que você relate um bug para eles. Até lá, você sempre pode executar a meshlabpartir da CLI ou criar seu próprio arquivo .desktop para ele.


5

Rodar o Kubuntu 18.04 a solução para mim como adicionar

export XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/snapd/desktop/"

para um arquivo personalizado como snap-apps.shem ~/.config/plasma-workspace/env. Mas isso se aplica apenas ao Plasma 5 e pode ser corrigido no Ubuntu 18.10 já.

Como dsager já mencionado em sua resposta, o habitual /etc/profile.d/apps-bin-path.shnão parece funcionar.


2
Isso funcionou perfeitamente - companheiro usuário do Kubuntu.
john

Obrigado! Resolvido o problema para mim no Kubuntu.
Дмитрий Полянин

3

Você precisa rodar snap run meshlabdo terminal e pará-lo, e verá o Meshlab na sua lista de aplicativos


3

Não pude comentar na postagem de outra pessoa. No entanto, isso é um acréscimo à resposta da dsager que me ajudou no Fedora 28 (que até onde eu sei, usa Wayland)

Adicionei o seguinte trecho ao meu ~ / .bash_profile para vincular no login cada arquivo em / var / lib / snapd / desktop / applications. Da mesma forma, isso pode ser modificado para remover os links para aplicativos que não existem mais alternando os caminhos na linha for e na linha if, substituindo ln por uma rm.

for i in /var/lib/snapd/desktop/applications/*.desktop; do
    if [ ! -f ~/.local/share/applications/${i##*/} ];then
            ln -s /var/lib/snapd/desktop/applications/${i##*/} ~/.local/share/applications/${i##*/};
    fi;
done

Provavelmente, existem várias maneiras diferentes de fazer isso, mas funciona.


11
Uso inútil de ls. Use em for in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ...vez disso. Uma maneira mais curta de conseguir isso seria ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null.
David Foerster

Eu sabia que havia uma maneira de executar seu primeiro exemplo, mas não conseguia me lembrar da parte $ {i ## * /} quando estava escrevendo isso inicialmente. Vou editar minha postagem para incluir essa variante. No entanto, sua última sugestão não verifica se o link já existe, portanto, reutilizando inutilmente o comando ln. Na verdade, eu queria encontrar uma maneira de evitar o grep e reduzir o número de processos gerados durante a execução. Obrigado por seu comentário.
Eric Niconovich 29/07

Minha segunda sugestão faz verificação se o arquivo de destino já existe e, se esse for o caso, imprime uma mensagem de erro (redirecionamento para /dev/nulle então suprimidas). Ele não faz nada "inútil": bifurca e executa uma única vez e faz uma chamada de sistema para symlink(2)ou symlinkat(2)para cada arquivo correspondente. Se você usar um loop para verificar o tipo de arquivo ( stat(2)) e depois (condicionalmente) fork & exec, o ln(1)que invocará symlink*(2)um trabalho muito mais "inútil".
David Foerster

1

A mesma coisa com o liquidificador.

snap run blender

funciona, no entanto, não resolveu o problema.

Eu tive que copiar blender.desktopde /snap/blender/current/blender.desktoppara /usr/share/applications(com sudo) e então tudo foi corrigido: o blender é exibido nos menus do gnome e o nautilus o associa aos .blendarquivos.

Parece algum tipo de rachadura entre snaps e gnomos para mim. Talvez o que precisamos seja um gnomo ágil (ou é um gnomo ágil; ^).


11
Olá, fiz o que você disse, mas agora tenho dois ícones para cada programa que fiz isso ... consulte i.imgur.com/aamlQJZ.png Isso aconteceu com você também?
Cirelli94

1

Copiar atalho de aplicativos de /var/lib/snapd/desktop/applications/para/usr/share/applications/

Exemplo: sudo cp /var/lib/snapd/desktop/applications/brave_brave.desktop /usr/share/applications/

Eu tive que fazer isso no GalliumOS 3.0 (baseado no Xubuntu)


0

Corri para o mesmo problema no Ubuntu 18.04. Parece ser um problema com Wayland. A solução para mim foi voltar do Wayland para o Xorg.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.