Ошибка «не -абсолютный дом» через сеть :SSH

Рассматриваемый код

Net::SSH.start('server name', 'user')

Это возвращает «не -абсолютный дом». На самом деле у «пользователя» есть домашний каталог. Один из предложенных подходов состоял в том, чтобы изменить ~/.ssh/config, указав полные пути к IdentityFile. Это не решило проблему.

Сумасшедшая часть этого заключается в том, что код работает нормально, если вызывается через irb или консоль. В тот момент, когда мы пытаемся вызвать его из метода класса (с тем же кодом ), он возвращает ошибку «не -абсолютный дом».

«Пользователь» также может без проблем подключиться к серверу по ssh через командную строку. Сервер работает под управлением Ubuntu.

ОБНОВЛЕНИЕ

Спасибо @Phrogz -Исправление для этого заключалось в установке ENV['HOME'] в '/home/deploy'. Однако я не понял, почему $HOME устанавливается в "." на сервере. Итак, я оставлю этот вопрос без «Ответа», пока я или кто-то другой не выяснит это. Необходимость вручную устанавливать HOME больше похожа на «взлом», чем на правильное решение, но это работает.

8
задан Jadon 3 May 2012 в 16:25
поделиться