SSHFS sembra funzionare, ma Sublime + SSHFS no?


9

Uso il comando per montare il mio filesystem remoto usando SSHFS:

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

Tutto sembra essere felice, a meno che non provi ad aprire e salvare un file con Sublime ...

Visualizza e rinomina i file? SÌ:

... Posso visualizzare i miei file in Esplora file e posso rinominare correttamente i file utilizzando Esplora file.

Permessi / utenti / gruppi? SÌ

... Quando si controllano le autorizzazioni, tutto sembra in ordine:

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

Modifica file con VIM? SÌ

... Posso anche aprire il file con VIM e salvarlo.

Modifica il file con Sublime? ERRORE

... Ma quando apro il file in Sublime (Sublime Text 3 Build 3059) caricandolo tramite Esplora file o utilizzando la riga di comando:

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

Ho fatto lo stesso errore:

Impossibile salvare ~ / my_mount / home / kano / test.py Errore: rinomina (/home/chendy/my_mount/home/kano/.subl979.tmp, /home/chendy/my_mount/home/kano/test.py) non riuscito : Operazione non permessa

Cosa sta succedendo? C'è un modo per risolvere?


1
prova ad usare touch /home/chendy/my_mount/home/kano/.subl979.tmp.
Braiam,

Risposte:


7

Come molti editor, Sublime salva in un file temporaneo, quindi sposta quel file temporaneo in posizione. Viene eseguito in questo modo nel caso in cui il sistema si arresti in modo anomalo durante il salvataggio: è garantito che sia presente il file originale o la nuova versione, non si rischia di perdere il file.

SSHFS è basato su SFTP, che (almeno come implementato da OpenSSH) non consente di rinominare un file e sovrascrivere atomicamente la destinazione. (Questo è menzionato nelle FAQ su SSHFS .)

Puoi aggirare questa limitazione dicendo a SSHFS di consentire la ridenominazione e la sovrascrittura, ma rendendo l'operazione non atomica (quindi c'è un tempo molto piccolo durante il quale il vecchio file viene rimosso ma il nuovo file ha ancora il suo nome temporaneo). Questo è un problema per alcuni casi d'uso ma non quando si modifica un file.

Aggiungi l'opzione -o workaround=renamealla tua sshfsriga di comando.


1

Risposta breve, imposta questa impostazione nella tua configurazione:

"atomic_save": false

Eviterà di rinominare over sshfs (SFTP), che non è supportato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.