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

9

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

$ sshfs -o uid=1000 -o gid=1000 [email protected]:/ "/home/chendy/my_mount"

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

Ver e renomear arquivos? SIM:

... Eu posso ver meus arquivos no explorador de arquivos, e posso renomear arquivos usando o explorador de arquivos.

Permissões / usuários / grupos? SIM

... Ao verificar as permissões, tudo parece estar 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

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

Editar o arquivo com o Sublime? ERRO

... Mas quando eu abro o arquivo no Sublime (Sublime Text 3 Build 3059) carregando-o através do 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:

Unable to save ~/my_mount/home/kano/test.py Error: rename(/home/chendy/my_mount/home/kano/.subl979.tmp, /home/chendy/my_mount/home/kano/test.py) failed: Operation not permitted

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

    
por Chendy 16.04.2014 / 16:17

2 respostas

7

Como muitos editores, o Sublime salva em um arquivo temporário e, em seguida, move esse arquivo temporário para o lugar. Isso é feito desta forma, caso o sistema trave 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 sobrescrevê-lo atomicamente ao destino. (Isso é mencionado na FAQ do SSHFS .)

Você pode contornar essa limitação informando 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 arquivo temporário). nome). Este é um problema para alguns casos de uso, mas não apenas para editar um arquivo.

Adicione a opção -o workaround=rename à sua linha de comando sshfs .

    
por 17.04.2014 / 01:40
1

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

"atomic_save": false

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

    
por 05.08.2014 / 16:19

Tags