Les programmes installés via snap n'apparaissent pas dans Launcher

37

Vient de mettre à jour Ubuntu 16.04 et d’essayer les paquets instantanés pour la première fois.

Il me fallait donc meshlab pour visualiser des fichiers stl. Ran in à émettre avec pitn log in. Il a été constaté que l'installation en ligne de commande de packages d'accrochage n'a pas besoin de se connecter.

sudo snap install meshlab

et hé presto meshlap installé, pas de log pitn in. Fonctionne bien en ligne de commande. Cependant, le programme n'apparaît pas dans le lanceur. Pourquoi est-ce? Les paquets instantanés n'apparaissent-ils pas dans le programme de lancement? Comment puis-je réparer cela?

Ron
la source

Réponses:

40

Si vous utilisez zsh, les répertoires d'alignement binaires et de bureau ne seront pas automatiquement ajoutés à vos variables d'environnement. Afin de résoudre ce problème, j'ai ajouté la ligne suivante à / etc / zsh / zprofile (tiré de Arch):

emulate sh -c 'source /etc/profile'

Cela traitera votre fichier / etc / profile avec une émulation bash, qui à son tour va générer /etc/profile.d/* et définir les PATHs appropriés, etc.

Pour n’ajouter que les répertoires d’accrochage à votre chemin, sans inclure tout le reste du profil bash par défaut:

emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'
hackel
la source
1
Merci! Fonctionne bien aussi le 17.10. Le passage à zsh a également soulevé ce problème.
Danwit
2
Ils devraient résoudre ce problème dans le processus d'installation ou ajouter une FAQ / étapes de dépannage pour snap.
BradErzwh
1
Merci, a travaillé pour moi le 18.10. J'espère que cela sera corrigé d'une manière ou d'une autre à l'avenir.
Pavel Davydov
1
Génial, malheureusement c’est toujours un problème le 19.04
jhole89
11

Il est intégré au système d'accrochage, mais vous devez ajouter le lien à votre tableau de bord. Pour démarrer le type de programme

snap run meshlab

une fois qu'il est opérationnel, faites un clic droit sur l'icône et cliquez sur "ajouter au tiret".

William MacDonald
la source
7

Pour moi, il semble également être lié à la combinaison de Wayland / ZSH sous Ubuntu 18.04 - même si elle /var/lib/snapd/desktopest répertoriée dans la XDG_DATA_DIRSvariable (cela se fait par /etc/profile.d/apps-bin-path.sh), le programme de lancement ne reconnaît pas les applications de ce dossier.

Une solution rapide consiste à créer un lien symbolique entre les fichiers de bureau souhaités, par exemple:

ln -s /var/lib/snapd/desktop/applications/rubymine_rubymine.desktop .local/share/applications
déssager
la source
5

Les paquets instantanés n'apparaissent-ils pas dans le programme de lancement?

Ils le font tant que le composant logiciel enfichable expédie les fichiers .desktop appropriés. Seul Meshlab meshlabservera un fichier de bureau approprié (et effectivement, il apparaît dans mon lanceur). Le meshlabfichier .desktop, cependant, tente d'exécuter meshlab.meshlab, alors qu'il devrait simplement l'utiliser meshlab. En conséquence, cela ne se voit pas.

Comment puis-je réparer cela?

Si vous exécutez, snap info meshlabvous verrez les informations de contact pour l'éditeur. Je vous suggère de leur signaler un bug. Jusque-là, vous pouvez toujours vous lancer à meshlabpartir de la CLI ou créer votre propre fichier .desktop.

Kyle
la source
5

Lancer Kubuntu 18.04 la solution pour moi en ajoutant

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

dans un fichier personnalisé comme snap-apps.shdans ~/.config/plasma-workspace/env. Mais cela ne concerne que Plasma 5 et pourrait déjà être corrigé dans Ubuntu 18.10.

Comme mentionné précédemment dans sa réponse, l’habituel /etc/profile.d/apps-bin-path.shne semble pas fonctionner.

A. Ziegler
la source
2
Cela a parfaitement fonctionné - collègue utilisateur de Kubuntu.
john
Merci! Résolu le problème pour moi sur Kubuntu.
Дмитрий Полянин
3

Vous devez exécuter snap run meshlabdepuis le terminal et l'arrêter, vous verrez alors Meshlab dans votre liste d'applications

Kyaw Kyaw Soe
la source
3

Je ne peux pas commenter sur le post de quelqu'un d'autre. Cependant, ceci est à ajouter à la réponse de dsager qui m'a aidé sur Fedora 28 (qui, autant que je sache, utilise Wayland)

J'ai ajouté le fragment suivant à mon fichier ~ / .bash_profile pour lier chaque fichier de connexion à la connexion dans / var / lib / snapd / desktop / applications. De même, cela pourrait être modifié pour supprimer les liens pour les applications qui n'existent plus en commutant les chemins dans les lignes for et if, puis en remplaçant ln par un 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

Il y a probablement une poignée de façons différentes d'y parvenir, mais cela fonctionne.

Eric Niconovich
la source
1
Utilisation inutile de ls. Utilisez à la for in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ...place. Un moyen plus court pour y parvenir serait ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null.
David Foerster
Je savais qu'il y avait un moyen d'exécuter votre premier exemple, mais je ne me souvenais pas de la portion $ {i ## * /} lorsque j'écrivais ceci pour la première fois. Je vais éditer mon article pour inclure cette variante. Cependant, votre dernière suggestion ne vérifie pas si le lien existe déjà, donc ré-exécute inutilement la commande ln. En fait, je voulais également trouver un moyen d’éviter grep afin de réduire le nombre de processus entraînés lors de l’exécution. Merci pour votre commentaire.
Eric Niconovich
Ma deuxième suggestion fait vérifier si le fichier cible existe déjà et, si tel est le cas, imprime un message d'erreur (redirection vers /dev/nullet donc supprimé). Il ne fait rien d '"inutile": il divise et exécute une seule fois et effectue un appel système vers symlink(2)ou symlinkat(2)pour chaque fichier correspondant. Si vous utilisez une boucle pour vérifier le type de fichier ( stat(2)), puis (conditionnellement) fork & exec, ln(1)ce qui appelle symlink*(2)un travail beaucoup plus «inutile».
David Foerster
1

Même chose avec le mélangeur.

snap run blender

ne fonctionne pas, mais n'a pas résolu le problème.

Je devais copier blender.desktopde ( /snap/blender/current/blender.desktopvers ) et ensuite tout était corrigé: blender apparaissait dans les menus gnome et nautilus l’associait à des fichiers./usr/share/applicationssudo.blend

On dirait une sorte de fissure entre les clichés et les gnomes pour moi. Peut-être avons-nous besoin d’un gnome accrocheur (ou est-ce un claquement gnomey; ^).

Mike Ward
la source
1
Bonjour, j’ai fait ce que vous avez dit, mais j’ai maintenant deux icônes pour chaque programme que j’ai fait. Voir i.imgur.com/aamlQJZ.png .
Cirelli94
1

Copier le raccourci d'applications de /var/lib/snapd/desktop/applications/à/usr/share/applications/

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

Je devais le faire sur GalliumOS 3.0 (basé sur Xubuntu)

JT
la source
0

J'ai rencontré le même problème sur Ubuntu 18.04. Cela semble être un problème avec Wayland. La solution pour moi était de revenir de Wayland à Xorg.

romaind
la source