web-dev-qa-db-fra.com

Pourquoi les fichiers instantanés ne peuvent-ils être modifiés d'aucune façon?

Cela fait longtemps que j'essaie de changer l'icône de Blender, mais quoi que je fasse, je ne suis pas autorisé à éditer quoi que ce soit dans /snap/blender-tpaw/3/.

Voici ce que j'ai essayé:

  • Modification des fichiers de nautilussans Sudoname__.
  • Modification des fichiers de nautilusavec Sudo(Sudo nautilus in terminal).
  • Utilisation de commandes de terminal telles que cpou rmsans Sudoname__.
  • Utilisation de commandes de terminal avec Sudo(tel que Sudo cp <source> /snap/blender-tpaw/3/ ou Sudo rm /snap/blender-tpaw/3/<filename.ext>)
  • Faire tout ce qui précède dans un terminal root (en utilisant Sudo -i)

Dans tous les cas, l'erreur suivante apparaît:

cannot remove/copy '/snap/blender-tpaw/3/filename.ext': Read-only file system

où nomfichier est le fichier et .ext son extension.

Ceci s'applique également aux fichiers d'autres clichés, pas seulement à Blender.

Est-ce que je fais quelque chose de mal ici? Ou est-il simplement impossible de changer ces fichiers? Bien que je ne pense pas que ce soit impossible parce que tout ici, d'Ubuntu à Blender, est open source, ils n'ont donc aucune raison de nous empêcher de modifier ces fichiers.

EDIT:

J'ai utilisé Menu principal (alacarte) pour changer l'icône, mais je veux toujours savoir pourquoi je ne peux pas modifier un fichier instantané.

10
Tooniis

Il est impossible de modifier le contenu de la capture sans la reconstruire. Il s’agit principalement d’une mesure de sécurité visant à garantir que le cliché n’a pas été altéré.

Cependant, l'icône mentionnée est probablement dans un fichier de bureau appelé blender-tpaw_blender.desktop qui est éditable, et qui se trouve dans /var/lib/snapd/desktop/applications.

Vous pouvez changer la ligne suivante pour mettre à jour l'icône: -

Icon=/snap/blender-tpaw/3/meta/gui/icon.svg
11
popey

Bien que la prémisse de la question soit techniquement correcte (vous ne pouvez pas modifier les fichiers instantanés), il existe des moyens de contourner ce problème.

L’un des moyens consiste à utiliser l’option --bind conjointement à mountpour remonter la hiérarchie de fichiers existante ailleurs.

Par exemple, si vous souhaitez que vos instantanés utilisent les certificats système à la place des certificats installés dans corename__, vous pouvez monter le répertoire contenant les certificats système sur l'hôte par-dessus le répertoire des certificats système dans coreavec la commande suivante:

Sudo mount --bind -o nodev,ro /etc/ssl/certs /snap/core/current/etc/ssl/certs/

Cela ne change pas réellement le système de fichiers instantané. Si vous démontez le dossier, l'ancien dossier prendra sa place:

Sudo umount /snap/core/current/etc/ssl/certs

Remarque: les montages ne persistent pas entre les redémarrages. Il existe plusieurs façons de faire en sorte que les montages persistent après un redémarrage. L’un des moyens consiste à créer un script de démarrage systemdname__:

$ cat <<-EOF | Sudo tee /etc/systemd/system/snap-core-current-etc-ssl-certs.mount
[Unit]
Description=Mount unit to fix etc ssl certs in core package
After=snapd.service

[Mount]
What=/etc/ssl/certs
Where=/snap/core/current/etc/ssl/certs
Type=none
Options=bind,nodev,ro

[Install]
WantedBy=multi-user.target
EOF
$ systemctl enable snap-core-current-etc-ssl-certs.mount

Tiré de ici .

9
wheeler