web-dev-qa-db-fra.com

Comment donner un accès instantané à / somedir

Je commence juste à me mouiller les pieds. J'ai installé vlc et je veux essayer de l'utiliser. Tous mes supports sont installés sous /store, un montage NFS. Et les captures ne permettent pas l'accès à ce répertoire.

Après avoir googlé, je me suis rendu compte que je pouvais accéder aux fichiers sous /home/peter pour l'interface :home et /media pour les interfaces :removable-media.

Mais en fait, j'aime bien /store et je ne veux pas changer cela en /media/store ou /home/peter/store ou en quoi que ce soit d'autre que /store.

Existe-t-il un moyen de faire en sorte que mes captures (ou peut-être simplement vlc) aient accès à /store, de sorte que snap est 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 que quelque chose m'a manqué.

9
Peter V. Mørch

À mon grand étonnement, il semble vraiment que /home est codé en dur. mount-support.c contient:

    const struct sc_mount mounts[] = {
        {"/dev"},   // because it contains devices on Host OS
        {"/etc"},   // because that's where /etc/resolv.conf lives, perhaps a bad idea
        {"/home"},  // to support /home/*/snap and home interface
    ...

Sensationnel. Cela m'étonne. Mais là vous l'avez.

Edit: Voir aussi Launchpad numéro 1643706

3
Peter V. Mørch

monter le répertoire cible dans /home/*/snap/ est mentionné en tant qu'option; un montage de liaison simple ne fonctionnait pas pour moi, pas plus qu'un lien physique, ni un lien symbolique des fichiers ou des répertoires cibles dans le répertoire d'accrochage proposé, ou de l'un de leurs sous-répertoires. Cette limitation peut être due aux fichiers cibles existant en dehors d'un répertoire /home/*/; je n'ai pas testé les montages/liens/liens symboliques vers les fichiers compris dans le préfixe /home/*/ glob.

Cependant, une solution de contournement: une copie complète du fichier dans /home/<myuser>/snap/<appname>/<somenewdirectory> a fonctionné pour moi. Conserver des copies complètes des jeux de données était pourtant impossible pour moi, mais il existe de nombreux outils pour vous aider à gérer une telle contrainte; une copie récursive manuelle avant l'utilisation du composant logiciel enfichable, et la copie des fichiers modifiés après est une option si votre jeu de données est petit ou même atomique

Pour nommer quelques utilitaires de copie de fichiers qui pourraient vous aider:

  • cp --verbose --archive --recursive /somedir ~/snap/somedir, et source/target vice versa
  • tar -C / -c somedir | tar -C ~/snap/ -xv est un exemple de copie de fichier basé sur tar
  • rsync --archive /somedir ~/snap/somedir, rsync est populaire et comporte de nombreux wrapper/extensions

  • toute utilité de sauvegarde basée sur un fichier (exemple graphique: grsyncname__) devrait être utilisable, l'objectif étant de dupliquer l'ensemble de données en avant et en arrière si nécessaire

  • les clones git, éventuellement, cependant, les clones locaux utilisent par défaut des liens physiques. Par conséquent, si vous utilisez git pour gérer le système de fichiers en un instant, prenez garde à la possibilité que, sans désactiver les liens durs au moment du clonage, il risque d'être inaccessible au cliché.

1
ThorSummoner

Donc, pour développer ma mini-réponse ci-dessus, il n'y a aucun moyen de faire cela qui soit général, sain et sauf. Je sais que tout le monde aime personnaliser son système de fichiers, mais cela a un 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 aux fichiers à des emplacements arbitraires iff lesdites applications utilisent certaines des API GTK récemment introduites. Ceci, lorsqu’il est exécuté sous confinement, contacte un assistant de confiance, affiche une interface utilisateur de confiance qui ressemble à un sélecteur de fichiers, parle à un système de fichiers Fuse spécial pour exposer le fichier (à n’importe quel emplacement) en tant que composant spécial dans/exécuter /. .. quelque part que l'application voit et les choses peuvent bien fonctionner.

Ceci est conçu pour les choses conviviales pour les sélecteurs de fichiers comme les lecteurs multimédias ou les éditeurs Word. Votre arbre Linux hébergé à /codez ne fonctionnera pas si bien cependant.

1
Zygmunt Krynicki