Je mouille juste les pieds avec un claquement. J'ai installé vlc et je veux essayer de l'utiliser. Tous mes médias sont installés sous /store
, un montage NFS. Et les snaps ne permettent pas d'accéder à ce répertoire.
Après avoir googlé, j'ai compris que je pouvais accéder aux fichiers sous /home/peter
pour l' :home
interface et /media
pour les :removable-media
interfaces.
Mais j'aime vraiment /store
et je ne veux pas que cela soit /media/store
ou /home/peter/store
ou autre chose que /store
.
Existe-t-il un moyen d'obtenir snap pour autoriser l'accès à mes snaps (ou peut-être simplement vlc) /store
, afin que snap soit conforme à mes conventions de dénomination ou suis-je obligé de convertir les préférences de snap?
Cela semble très rigide et j'espère qu'il y a quelque chose que j'ai manqué.
sudo snap remove vlc
) puis réinstaller avec l'option classique. Peut aider, peut ne pas .. (sudo snap install vlc --classic
)--classic
et--devmode
- ni travaillé. Mais je veux aussi donner un accès explicite à/store
mais pas tout comme/supersecret
Réponses:
À mon grand étonnement, on dirait vraiment qu'il
/home
est codé en dur. mount-support.c contient:Sensationnel. Cela m'étonne. Mais là vous l'avez.
Edit: Voir aussi Launchpad issue 1643706
la source
Donc, pour développer ma mini-réponse ci-dessus, il n'y a aucun moyen de le faire qui soit général, sûr et sain. Je sais que tout le monde aime personnaliser son système de fichiers mais cela a un certain coût et c'est l'un d'entre eux.
Finalement, grâce au travail sur les portails XDG, certaines applications (en particulier les applications graphiques) peuvent accéder à des fichiers à des endroits arbitraires si ces applications utilisent certaines des API GTK récemment introduites. Cela, lors de l'exécution sous confinement, atteindra un assistant de confiance, affichera une interface utilisateur fiable qui ressemble à un sélecteur de fichiers, parlera à un système de fichiers FUSE spécial pour exposer le fichier (à n'importe quel endroit) en tant que chose spéciale dans / run /. .. quelque part que l'application voit et les choses peuvent bien fonctionner.
Ceci est conçu pour les choses conviviales de sélection de fichiers comme les lecteurs multimédias ou les éditeurs de mots. Votre arbre Linux hébergé sur
/codez
ne fonctionnera pas si bien cependant.la source
extradirs=/store:/other/location
ou quelque chose dans/etc/snapd.conf
ou/etc/snapd/conf.d/vlc.conf
. Tout comme des tonnes d'autres applications Linux. Cela semble bien fonctionner, par exemple pour Docker. C'est comme si apache devait coder en durDocumentRoot /var/www
.le montage du répertoire cible dans
/home/*/snap/
est mentionné en option; un montage de liaison simple ne fonctionnait pas pour moi, pas plus qu'un lien physique, ou un lien symbolique des fichiers ou répertoires cibles dans le répertoire d'accrochage proposé, ou un de ses sous-répertoires. Cette limitation pourrait être due aux fichiers cibles existant en dehors d'un/home/*/
répertoire, je n'ai pas testé les montages / disques durs / liens symboliques vers des fichiers dans le/home/*/
préfixe glob.Cependant, une solution de contournement: une copie complète du fichier dans
/home/<myuser>/snap/<appname>/<somenewdirectory>
a fonctionné pour moi. Maintenir des copies complètes de l'ensemble de données était encore impossible pour moi, mais il existe de nombreux outils pour aider à faire face à une telle contrainte; une copie récursive manuelle avant d'utiliser l'accrochage, et la copie des fichiers modifiés après est une option si votre jeu de données est petit ou même atomiquePour nommer quelques utilitaires de copie de fichiers qui pourraient vous aider:
cp --verbose --archive --recursive /somedir ~/snap/somedir
, et source / cible vice versatar -C / -c somedir | tar -C ~/snap/ -xv
est un exemple de copie de fichier basé sur tarrsync --archive /somedir ~/snap/somedir
, rsync est populaire et possède de nombreux wrappers / extensionsn'importe quelle utilité de sauvegarde basée sur un fichier (exemple graphique :)
grsync
devrait être utilisable car l'objectif global est de dupliquer le jeu de données en avant et en arrière selon les besoinsles clones git, éventuellement, cependant les clones locaux utilisent par défaut des liens physiques, donc si vous utilisez git pour gérer le système de fichiers io dans un snap, soyez prudent de la possibilité que sans désactiver les liens durs au moment du clone, ce clone git puisse être inaccessible au snap.
la source
Je ne peux pas poster de commentaire car je n'ai pas assez de réputation, mais je peux poster une réponse ..?
Quoi qu'il en soit, ce n'est pas le problème d'origine, mais si quelqu'un d'autre, comme moi, est venu chercher comment donner accès à / media à un snap (par exemple pour utiliser Darktable, qui est fondamentalement inutile sans lui), vous pouvez le faire soit via l'interface snap-store, soit en ajoutant la «prise» de support amovible à votre application snap sur la ligne de commande. Quelques documents ici: https://snapcraft.io/docs/interface-management
la source