Ich mache nur meine Füße nass mit Schnappschuss. Ich habe vlc installiert und möchte versuchen, es zu verwenden. Alle meine Medien sind unter /store
einem NFS-Mount installiert . Und Snaps erlauben keinen Zugriff auf dieses Verzeichnis.
Nach dem Googeln habe ich verstanden, dass ich auf Dateien /home/peter
für die :home
Schnittstelle und /media
für die :removable-media
Schnittstellen zugreifen kann .
Aber ich mag das wirklich /store
und möchte es nicht ändern, um /media/store
oder /home/peter/store
oder irgendetwas anderes zu sein /store
.
Gibt es eine Möglichkeit, Snap zu erhalten, um meinen Snaps (oder vielleicht nur VLC) Zugriff zu gewähren /store
, sodass Snap meinen Namenskonventionen entspricht, oder bin ich gezwungen, in die Einstellungen von Snap zu konvertieren?
Das scheint sehr unflexibel und ich hoffe, dass ich etwas verpasst habe.
sudo snap remove vlc
) zu entfernen und dann mit der klassischen Option neu zu installieren. Kann helfen, kann nicht .. (sudo snap install vlc --classic
)--classic
und--devmode
- keiner hat funktioniert. Aber auch ich möchte explizit Zugang geben,/store
aber nicht alles wie/supersecret
Antworten:
Zu meinem Erstaunen sieht es wirklich so aus, als wäre
/home
es fest codiert. mount-support.c enthält:Beeindruckend. Das wundert mich. Aber da hast du es.
Bearbeiten: Siehe auch Launchpad-Ausgabe 1643706
quelle
Um meine obige Mini-Antwort zu erweitern, gibt es keine Möglichkeit, dies allgemein, sicher und solide zu tun. Ich weiß, dass jeder gerne sein Dateisystem anpasst, aber das hat einige Kosten und dies ist einer von ihnen.
Durch die Arbeit an XDG-Portalen können bestimmte Anwendungen (insbesondere grafische Anwendungen) schließlich an beliebigen Stellen auf Dateien zugreifen, wenn diese Anwendungen einige der kürzlich eingeführten GTK-APIs verwenden. Wenn Sie unter eingeschränkten Bedingungen ausgeführt werden, wenden Sie sich an einen vertrauenswürdigen Helfer, öffnen eine vertrauenswürdige Benutzeroberfläche, die wie eine Dateiauswahl aussieht, und sprechen mit einem speziellen FUSE-Dateisystem, um die Datei (an einem beliebigen Speicherort) als besondere Sache in / run / verfügbar zu machen. .. irgendwo, wo die Anwendung sieht und die Dinge gut funktionieren können.
Dies ist für Dateiauswahl-freundliche Dinge wie Mediaplayer oder Worteditoren konzipiert. Ihr Linux-Baum, auf dem gehostet
/codez
wird, funktioniert jedoch nicht so gut.quelle
extradirs=/store:/other/location
oder etwas in/etc/snapd.conf
oder/etc/snapd/conf.d/vlc.conf
. Genau wie Tonnen anderer Linux-Anwendungen da draußen. Es scheint gut zu funktionieren für zB Docker. Dies ist, als ob Apache zu hartem Code wäreDocumentRoot /var/www
.Das Mounten des Zielverzeichnisses
/home/*/snap/
wird optional erwähnt. Ein einfaches Bind-Mount hat bei mir nicht funktioniert, ebenso wenig wie ein Hardlink oder ein Symlink der Zieldateien oder Verzeichnisse in das vorgeschlagene Snap-Verzeichnis oder ein Unterverzeichnis davon. Diese Einschränkung kann auf die Zieldateien zurückzuführen sein, die außerhalb eines/home/*/
Verzeichnisses vorhanden sind. Ich habe mounts / hard / symlinks nicht auf Dateien innerhalb des/home/*/
Präfix-Glob getestet.Eine Problemumgehung: Eine vollständige Dateikopie in
/home/<myuser>/snap/<appname>/<somenewdirectory>
hat bei mir funktioniert. Das Verwalten vollständiger Datensatzkopien war für mich noch nicht möglich, aber es gibt viele Tools, die helfen, mit einer solchen Einschränkung umzugehen. Eine manuelle rekursive Kopie vor der Verwendung des Snaps und das erneute Kopieren der geänderten Dateien ist eine Option, wenn Ihr Dataset klein oder sogar atomar istUm einige Dienstprogramme zum Kopieren von Dateien zu nennen, die Ihnen helfen könnten:
cp --verbose --archive --recursive /somedir ~/snap/somedir
und Quelle / Ziel umgekehrttar -C / -c somedir | tar -C ~/snap/ -xv
ist ein Beispiel für eine tar-basierte Dateikopiersync --archive /somedir ~/snap/somedir
, rsync ist beliebt und hat viele Wrapper / ErweiterungenJedes dateibasierte Sicherungsprogramm (grafisches Beispiel :)
grsync
sollte verwendbar sein, da das gesamte Ziel darin besteht, das Dataset nach Bedarf vorwärts und rückwärts zu duplizierenGit-Klone, möglicherweise, jedoch verwenden lokale Klone standardmäßig Hardlinks. Wenn Sie also Git verwenden, um das Dateisystem io in einem Snap zu verwalten, sollten Sie vorsichtig sein, dass der Git-Klon ohne Deaktivierung der Hardlinks zum Zeitpunkt des Klons möglicherweise nicht auf den Snap zugreifen kann.
quelle
Ich kann keinen Kommentar posten, weil ich nicht genug Ruf habe, aber ich kann eine Antwort posten ..?
Wie auch immer, dies ist nicht das ursprüngliche Problem, aber wenn jemand wie ich hierher gekommen ist, um herauszufinden, wie man einem Snap Zugriff auf / media gewährt (z. B. um Darktable zu verwenden, das ohne es im Grunde genommen nutzlos ist), können Sie es tun Entweder über die Snap-Store-Oberfläche oder durch Hinzufügen des 'Plug' für Wechselmedien zu Ihrer Snap-App in der Befehlszeile. Einige Dokumente hier: https://snapcraft.io/docs/interface-management
quelle