Я пытаюсь выполнить команду через ssh на сервере под управлением Mac OS 10.9.5 с помощью команды вроде
ssh server.address command
и я получаю ошибку bash: command: command not found
.
Когда я вхожу в интерактивную сессию, все работает нормально, и команда находится в /usr/local/bin/command
:
$ which command
/usr/local/bin/command
И когда я запрашиваю неинтерактивный путь через ssh от клиента, он включает /usr/local/bin
:
$ ssh server.address "echo $PATH"
/Users/me/.rvm/gems/ruby-2.1.10/bin:/Users/me/.rvm/gems/ruby-2.1.10@global/bin:/Users/me/.rvm/rubies/ruby-2.1.10/bin:/Users/me/anaconda3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Library/TeX/texbin:/Users/me/.rvm/bin
Поэтому я не уверен, почему он не находит команду (или любую из команд в /usr/local/bin
)
Я подозревал, что это из-за этих странных путей в начале $PATH
(например, /Users/me/.rvm/gems/ruby-2.1.10@global/bin
, но я не могу найти, где они добавляются в Путь в первую очередь. Я проверил ~/.bash_profile
и ~/.profile
. Эти рубиновые пути также отсутствуют в PATH
когда я вхожу в интерактивном режиме.
Я не уверен, куда идти отсюда. Использование полного пути к команде не вариант, потому что она вызывается из другой программы. (Плюс, это обязательно произойдет снова, если я не смогу найти /usr/local/bin
на моем пути).
Заранее благодарю за любую помощь!