Não é possível modificar os arquivos instalados por 'snap'

3

Eu instalei um pacote usando snap e preciso modificar um dos arquivos, mas quando tento alterar sua propriedade ou permissões, sempre recebo a seguinte mensagem:

sudo chmod +x ./my_file.js
chmod: changing permissions of '/snap/my_app/my_file.js': Read-only file system

Como posso modificar arquivos que são instalados via snap ?

    
por Miladiouss 12.05.2018 / 02:40

2 respostas

4

Use as partições do Snap SquashFS , que é basicamente um formato de imagem de disco compactado, somente leitura que é normalmente usado para criar CDs / DVDs ao vivo. O SquashFS simplesmente não foi projetado para ser lido / gravado. Para editar o conteúdo, mesmo algo tão simples quanto alterar permissões de arquivo, não pode ser feito através de uma simples remontagem.

Suas opções são:

Se você gostaria de se tornar um desenvolvedor Snap, você pode começar com este tutorial para criar seu primeiro encaixe .

    
por xiota 12.05.2018 / 07:30
0

Os arquivos de programas do Snap são protegidos contra alterações. Isso é feito pelo processo de montar os arquivos protegidos em seu espaço específico como somente leitura.

O processo também tem espaço específico para dados de configuração que incluem o espaço home específico do usuário ( /home/user/snap ) para dados e configurações e um espaço para dados mundiais ( /var/snap ).

Todos os arquivos snap mundiais são legíveis e acessíveis através de links simbólicos para a área /snap .

Você pode verificar a localização real e como os espaços estão vinculados aos seguintes comandos.

Um comando para ver exemplos de montagens protegidas do snap:

$ mount | egrep snap | egrep ro,
/var/lib/snapd/snaps/core_4486.snap on /snap/core/4486 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/communitheme_185.snap on /snap/communitheme/185 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/hello-world_27.snap on /snap/hello-world/27 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/core_4407.snap on /snap/core/4407 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/communitheme_124.snap on /snap/communitheme/124 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core_4571.snap on /snap/core/4571 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/communitheme_246.snap on /snap/communitheme/246 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/vlc_190.snap on /snap/vlc/190 type squashfs (ro,nodev,relatime,x-gdu.hide)

Um comando para ver exemplos de espaços do snap que não são protegidos contra gravação:

$ mount | egrep snap | egrep -v ro,
tmpfs on /run/snapd/ns type tmpfs (rw,nosuid,noexec,relatime,size=3293156k,mode=755)
nsfs on /run/snapd/ns/hello-world.mnt type nsfs (rw)
nsfs on /run/snapd/ns/vlc.mnt type nsfs (rw)

Por sua mensagem de erro, você está tentando fazer alterações em arquivos que foram programados protegidos pelo programador. Sua pergunta sugere que você é o programador do aplicativo. Então você teria que usar os recursos da configuração de programação do snap para decidir quais arquivos serão colocados onde.

Como posso resolver isso?

Como sugeri nos comentários, seria mais seguro e mais comum para você projetar seu programa em um ambiente de desenvolvimento como um usuário normal ... normalmente em seu próprio espaço pessoal, em seguida, usar o sistema de desenvolvimento do snap para instalar o nova versão.

Não sou um programador instantâneo e não posso fornecer detalhes exatos de como o processo de criação e exportação para uso funciona com o snap. Mas posso imaginar que seja semelhante a projetar programas Android ou Java, em que o desenvolvedor usará algum tipo de método de exportação ou publicação para executar ou testar a nova versão em uma configuração instalada.

Você poderia experimentar com a remontagem dos sistemas de arquivos protegidos somente para leitura / leitura. Eu não aconselharia isso, porque pode ser possível quebrar a integridade do sistema snap ou fornecer um comportamento inesperado em que seu aplicativo pode não se comportar conforme o planejado devido à modificação do sistema snap em si.

    
por L. D. James 12.05.2018 / 10:59