Snap (Español)

Esta traducción de
Snap
fue revisada el
2019-02-27
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
Flatpak
AppArmor
Snap
es un sistema de despliegue y manejo de paquetes. Los paquetes son llamados 'snaps' y la herramienta para usarlos es 'snapd', la cual funciona en una amplia gama de distribuciones Linux y permite, por lo tanto, el despliege ascendente de software agnóstico a la distribución. Snap fue originalmente diseñado y desarrollado por Canonical.
snapd
es un demonio REST API para la administración de paquetes snaps. Los usuarios pueden interactuar con él al usar el cliente
snap
, el cual es parte del mismo paquete.
Los snaps pueden ser confinados usando
AppArmor
el cual ahora es habilitado por el kernel predeterminado. Consulte las páginas wiki relevantes para encontrar instrucciones para habilitar
AppArmor
en su sistema.
Instalación
Instale
el paquete
snapd
AUR
o
snapd-git
AUR
.
Sugerencia
snapd
instala un script en
/etc/profile.d/snapd.sh
para exportar las rutas de los binarios instalados con el paquete snapd y los accesos directos. Reinicie una vez para que el cambio surta efecto.
Desde la versión 2.36,
snapd
habilita el soporte AppArmor para Arch Linux. Para usarlo, tiene que habilitar AppArmor en su sistema, vea
AppArmor#Instalación
.
Nota
Si AppArmor no está habilitado en su sistema todas las snaps se ejecutarán en modo
devel
lo que significa que tendrán el mismo, acceso sin restricciones a su sistema como las aplicaciones instaladas desde los repositorios Arch Linux.
Si está usando
AppArmor
:
$ systemctl enable --now apparmor.service
 $ systemctl enable --now snapd.apparmor.service
Configuración
Para lanzar el demonio
snapd
cuando
snap
intente usarlo,
inicie
y/o
habilite
snapd.socket
Utilización
La herramienta
snap
es utilizada para administrar las snaps.
Buscando
Para encontrar snaps para instalar, puede consultar Ubuntu Store con:
$ snap find
searchterm
Instalando
Una vez haya encontrado la snap que busca puede instalarla con:
# snap install
snapname
Esto requiere privilegios de root. La instalación de snaps por usuario no es posible, aún. Descargará la snap en
/var/lib/snapd/snaps
y la montará en
/var/lib/snapd/snap/
snapname
para que esté disponible en el sistema.
También creará unidades de montaje por cada snap y las agregará a
/etc/systemd/system/multi-user.target.wants/
como enlaces simbólicos para que todas las snaps estén disponibles cuando su sistema es iniciado.
Una vez hecho esto debería encontrarla en la lista de snaps instaladas junto con su número de versión, revisión y desarollador usando:
$ snap list
También puede cargar snaps desde su disco duro local con:
# snap install --dangerous
/path/to/snap
Actualización
Para actualizar su snap manualmente use:
# snap refresh
Las snaps se actualizan automáticamente de acuerdo a la configuración snap
refresh.timer
.
Para ver el siguiente/último tiempo de actualización use:
# snap refresh --time
Para establecer un tiempo de actualización diferente, ej. dos veces al día:
# snap set core refresh.timer=0:00~24:00/2
Vea
página de documentación de opciones de sistema
para detalles sobre como personalizar el tiempo de actualización.
Eliminando
Los snaps pueden ser eliminados al ejecutar:
# snap remove
snapname
Consejos y trucos
Snaps Clásicas
Algunas snaps (e.j. Julia y Pycharm) usan el confinamiento clásico. Sin embargo, el confinamiento clásico requiere el directorio
/snap
, que no es compatible con FHS. Por lo tanto, el paquete snapd no lleva éste directorio. Sin embargo, si el usuario lo desea, puede crear manualmente un enlace simbólico de
/snap
a
/var/lib/snapd/snap
, para permitir la instalación de snaps clásicas:
# ln -s /var/lib/snapd/snap /snap
Confinamiento
Cuando se utiliza
AppArmor
, snapd (2.36+) generará los mismos perfiles para las snaps como en Ubuntu. El analizador de
AppArmor
es suficientemente inteligente para eliminar las reglas que aún no son compatibles por la línea principal del kernel.
Para verificar si el confinamiento básico está funcionando, instale la snap
hello-world
. Luego ejecute lo siguiente:
$ hello-world.evil
 Hello Evil World!
 This example demonstrates the app confinement
 You should see a permission denied error next
 /snap/hello-world/27/bin/evil: 9: /snap/hello-world/27/bin/evil: cannot create /var/tmp/myevil.txt: Permission denied
La denegación fue causada por AppArmor y debería haber sido registrada.
# dmesg
 ...
 [  +0.000003] audit: type=1327 audit(1540469583.966:257): proctitle=2F62696E2F7368002F736E61702F68656C6C6F2D776F726C642F32372F62696E2F6576696C
 [ +12.268939] audit: type=1400 audit(1540469596.236:258): apparmor="DENIED" operation="open" profile="snap.hello-world.evil" name="/var/tmp/myevil.txt" pid=10835 comm="evil" requested_mask="wc" denied_mask="wc" fsuid=1000 ouid=1000
 [  +0.000006] audit: type=1300 audit(1540469596.236:258): arch=c000003e syscall=2 success=no exit=-13 a0=55d991ba6bc8 a1=241 a2=1b6 a3=55d991ba6be0 items=0 ppid=31349 pid=10835 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=3 comm="evil" exe="/bin/dash" subj==snap.hello-world.evil (enforce)
 ...
Si no ve ningúna denegación, verifique que los perfiles se hayan cargado.
$ sudo aa-status |grep snap.hello-world
    snap.hello-world.env
    snap.hello-world.evil
    snap.hello-world.hello-world
    snap.hello-world.sh
Además, puede verificar que las características sandbox están disponibles en el sistema de acuerdo a snapd:
$ snap debug sandbox-features
 apparmor:             kernel:caps kernel:domain kernel:file kernel:mount kernel:namespaces kernel:network_v8 kernel:policy kernel:ptrace kernel:query kernel:rlimit kernel:signal parser:unsafe policy:default support-level:partial
 confinement-options:  devmode
 dbus:                 mediated-bus-access
 kmod:                 mediated-modprobe
 mount:                freezer-cgroup-v1 layouts mount-namespace per-snap-persistency per-snap-profiles per-snap-updates per-snap-user-profiles stale-base-invalidation
 seccomp:              bpf-argument-filtering kernel:allow kernel:errno kernel:kill_process kernel:kill_thread kernel:log kernel:trace kernel:trap
Administración Gráfica
Tanto Gnome Software Center como KDE Discover pueden proporcionar soporte nativo de snap con los paquetes
gnome-software-snap
AUR
[
enlace roto
: package not found]
o
discover-snap
AUR
.
Soporte
Arch Linux related mailing lists and other official Arch Linux support channels are not an appropriate place to request help with snaps on Arch Linux. An appropriate place to ask for support is the
Snapcraft forum
.
Las listas de correo relacionadas con Arch Linux y otros canales oficiales de soporte de Arch Linux no son lugar apropiado para solicitar ayuda sobre snaps en Arch Linux. Un lugar apropiado para solicitar ayuda de soporte es el
foro Snapcraft
.
Véase también
Sitio oficial
Repositorio GitHub
Artículo de arstechnica
(06/16) acerca de snaps de Ubuntu que estarán disponibles para Arch y otras distribuciones