Los programas instalados a través de snap no se muestran en el Iniciador


37

Recién actualizado a Ubuntu 16.04 y probando paquetes snap por primera vez.

Entonces necesitaba meshlab para ver algunos archivos stl. Se encontró con un problema con el inicio de sesión de Pitn. Se encontró que la instalación de la línea de comandos de paquetes de complemento no necesita el inicio de sesión.

sudo snap install meshlab

y hey presto meshlap instalado, sin pitn iniciar sesión. Funciona bien desde la línea de comandos. Sin embargo, el programa no aparece en el iniciador. ¿Por qué es esto? ¿Los paquetes instantáneos no aparecen en el iniciador? ¿Cómo puedo arreglar esto?

Respuestas:


40

Si está utilizando zsh, los directorios binarios y de escritorio de snap no se agregarán automáticamente a sus variables de entorno. Para resolver esto, agregué la siguiente línea a / etc / zsh / zprofile (tomado de Arch):

emulate sh -c 'source /etc/profile'

Esto procesará su archivo / etc / profile con emulación bash, que a su vez genera /etc/profile.d/* y establece las PATH adecuadas, etc.

Para agregar solo los directorios de ajuste a su ruta, sin incluir todo el resto del perfil bash predeterminado:

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

1
¡Gracias! Funciona bien en 17.10 también. Cambiar a zsh también me trajo este problema.
danwit

2
Deben solucionar esto en el proceso de instalación o agregar un FAQ / Pasos de solución de problemas para snap.
BradErzwh

1
Gracias, trabajó para mí el 18.10. Espero que esto se solucione de alguna manera en el futuro.
Pavel Davydov

1
Brillante, desafortunadamente sigue siendo un problema el 19.04
jhole89

11

Está integrado en el sistema de ajuste, pero debe agregar el enlace a su tablero. Para iniciar el tipo de programa

snap run meshlab

una vez que esté en funcionamiento, haga clic derecho en el ícono y haga clic en "Agregar al tablero".


7

Para mí, también parece estar relacionado con la combinación de Wayland / ZSH en Ubuntu 18.04, aunque /var/lib/snapd/desktopaparece en la XDG_DATA_DIRSvariable (esto se hace por /etc/profile.d/apps-bin-path.sh), el iniciador no reconoce las aplicaciones de esa carpeta.

Una solución rápida es vincular los archivos de escritorio deseados, por ejemplo:

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

5

¿Los paquetes instantáneos no aparecen en el iniciador?

Lo hacen siempre que el complemento envíe los archivos .desktop adecuados. Solo Meshlab's meshlabservertiene un archivo de escritorio adecuado (y de hecho, aparece en mi lanzador). El meshlabarchivo .desktop, sin embargo, está intentando ejecutarse meshlab.meshlab, cuando debería estar usando meshlab. Como resultado, no aparece.

¿Cómo puedo arreglar esto?

Si ejecuta snap info meshlab, verá la información de contacto del editor. Te sugiero que les reportes un error. Hasta entonces, siempre puede ejecutar meshlabdesde la CLI o crear su propio archivo .desktop.


5

Ejecutar Kubuntu 18.04 la solución para mí como agregar

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

a un archivo personalizado como snap-apps.shen ~/.config/plasma-workspace/env. Pero eso solo se aplica a Plasma 5 y podría estar solucionado en Ubuntu 18.10 ya.

Como dsager ya mencionó en su respuesta, lo habitual /etc/profile.d/apps-bin-path.shno parece funcionar.


2
Esto funcionó perfectamente - compañero de usuario de Kubuntu.
John

¡Gracias! Resolvió el problema para mí en Kubuntu.
Дмитрий Полянин

3

Debe ejecutar snap run meshlabdesde el terminal y detenerlo, luego verá Meshlab en su lista de aplicaciones


3

No pude comentar sobre la publicación de otra persona. Sin embargo, esto se agrega a la respuesta de dsager que me ayudó en Fedora 28 (que, por lo que puedo decir, usa Wayland)

Agregué el siguiente fragmento a mi ~ / .bash_profile para vincular al iniciar sesión cada archivo en / var / lib / snapd / desktop / aplicaciones. Del mismo modo, esto podría modificarse para eliminar los enlaces para aplicaciones que ya no existen cambiando las rutas en la línea for y la línea if y luego reemplazando ln por una 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

Probablemente hay un puñado de formas diferentes de lograr esto, pero funciona.


1
Uso inútil de ls. Usar en su for in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ...lugar. Una forma más corta de lograr esto sería ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null.
David Foerster

Sabía que había una forma de ejecutar su primer ejemplo, sin embargo, no podía recordar la porción $ {i ## * /} cuando estaba escribiendo esto inicialmente. Editaré mi publicación para incluir esa variante. Sin embargo, su última sugerencia no verifica si el enlace ya existe, por lo tanto, vuelve a ejecutar inútilmente el comando ln. De hecho, quería encontrar una manera de evitar grep y reducir la cantidad de procesos acelerados durante la ejecución. Gracias por tu comentario.
Eric Niconovich

Mi segunda sugerencia hace de verificación si el archivo de destino ya existe y, si ese es el caso, imprime un mensaje de error (redirección a /dev/nully por lo tanto suprimida). No hace nada "inútil": bifurca y ejecuta una sola vez y hace una llamada al sistema para symlink(2)o symlinkat(2)para cada archivo coincidente. Si usa un bucle para verificar el tipo de archivo ( stat(2)) y luego (condicionalmente) fork & exec ln(1)que invoca, symlink*(2)eso es mucho más trabajo "inútil".
David Foerster

1

Lo mismo con la licuadora.

snap run blender

funciona, sin embargo, no solucionó el problema.

Tuve que copiar blender.desktopde /snap/blender/current/blender.desktopa /usr/share/applications(con sudo) y luego todo se solucionó: blender se muestra en los menús de gnome y nautilus lo asocia con .blendarchivos.

A mí me parece una especie de grieta entre instantáneas y gnomos. Quizás lo que necesitamos es un gnomo ágil (o es un complemento de gnomey; ^).


1
Hola, hice lo que me dijiste, pero ahora tengo dos íconos por cada programa que hice ... ver i.imgur.com/aamlQJZ.png ¿ Te ha pasado esto a ti también?
Cirelli94

1

Copiar acceso directo de aplicaciones de /var/lib/snapd/desktop/applications/a/usr/share/applications/

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

Tenía que hacer esto en GalliumOS 3.0 (basado en Xubuntu)


0

Me encontré con el mismo problema en Ubuntu 18.04. Parece ser un problema con Wayland. La solución para mí fue cambiar de Wayland a Xorg.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.