O SSHFS parece estar funcionando, mas o Sublime + SSHFS não?


9

Eu uso o comando, para montar meu sistema de arquivos remoto usando SSHFS:

$ sshfs -o uid=1000 -o gid=1000 root@10.0.1.198:/ "/home/chendy/my_mount"

Tudo parece estar feliz, a menos que eu tente abrir e salvar um arquivo com o Sublime ...

Ver e renomear arquivos? SIM:

... Posso visualizar meus arquivos no explorador de arquivos e renomear arquivos com sucesso usando o explorador de arquivos.

Permissões / Usuários / Grupos? SIM

... Ao verificar as permissões, tudo parece em ordem:

$ ls -l '/home/chendy/my_mount/home/kano/test.py'
-rwxrwxrwx 1 chendy chendy 927 Apr 15 16:24

Editar arquivo com o VIM? SIM

... Também posso abrir o arquivo com o VIM e salvá-lo.

Editar arquivo com o Sublime? ERRO

... Mas quando abro o arquivo no Sublime (Sublime Text 3 Build 3059) carregando-o no explorador de arquivos ou usando a linha de comando:

 $ /opt/sublime_text/sublime_text '/home/chendy/my_mount/home/kano/test.py'

Eu recebo o mesmo erro:

Não foi possível salvar ~ / my_mount / home / kano / test.py Erro: renomeado (/home/chendy/my_mount/home/kano/.subl979.tmp, /home/chendy/my_mount/home/kano/test.py) falhou : Operação não permitida

O que está acontecendo? Existe alguma maneira de resolver?


1
tente usar touch /home/chendy/my_mount/home/kano/.subl979.tmp.
Braiam

Respostas:


7

Como muitos editores, o Sublime salva em um arquivo temporário e depois move esse arquivo temporário para o local. É feito dessa maneira no caso de o sistema travar durante o salvamento: é garantido que o arquivo original ou a nova versão estará presente, você não corre o risco de perder o arquivo.

O SSHFS é construído sobre o SFTP, que (pelo menos como implementado pelo OpenSSH) não permite renomear um arquivo e sobrescrever atomicamente o destino. (Isso é mencionado nas Perguntas frequentes do SSHFS .)

Você pode contornar essa limitação dizendo ao SSHFS para permitir renomear e sobrescrever, mas tornando a operação não atômica (portanto, há um tempo muito pequeno durante o qual o arquivo antigo é removido, mas o novo arquivo ainda tem seu nome temporário). Este é um problema para alguns casos de uso, mas não apenas ao editar um arquivo.

Adicione a opção -o workaround=renameà sua sshfslinha de comandos.


1

Resposta curta, defina esta configuração na sua configuração:

"atomic_save": false

Ele evitará renomear por sshfs (SFTP), que não é suportado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.