Il codice in questioneerrore "a casa non assoluto" via rete: SSH
Net::SSH.start('server name', 'user')
Ciò restituisce "casa non assoluto". L'utente ha infatti una directory home. Un approccio suggerito è stato quello di modificare ~/.ssh/config con percorsi completi per IdentityFile. Questo non ha risolto il problema.
La parte pazzesca di questo è che il codice funziona bene se viene chiamato tramite irb o console. Nel momento in cui proviamo a chiamarlo da un metodo di classe (con lo stesso codice) restituisce l'errore "casa non assoluta".
L'utente può anche ssh nel server tramite la riga di comando senza problemi. Il server sta eseguendo Ubuntu.
UPDATE
Grazie a @Phrogz - La correzione di questo è stato l'impostazione ENV [ 'HOME'] a '/ home/deploy'. Tuttavia, non ho capito perché $ HOME sia impostato su "." sul server. Quindi, lascerò questa domanda senza una "risposta" finché io, o qualcun altro, non lo capirò. Il dover impostare manualmente HOME sembra più un "trucco" che una soluzione adeguata, ma funziona.
Avete impostato una variabile di ambiente 'HOME'? 'echo $ HOME' – Phrogz
@Phrogz - se lo invio via irb, console, riga di comando mostra un percorso. Tuttavia, se lo imposto come variabile nella classe (home =% x [echo $ HOME]) stesso (Rails_Root/lib/class_obj), allora mi ritorna con un "."? – Jadon
Sembra che l'interprete stia utilizzando una shell con un percorso diverso.Se lo si imposta su un percorso assoluto nel proprio script o se lo si disattiva completamente, lo risolve? – Phrogz