Очевидный ответ «установить команду на удаленной машине» - самое чистое решение, поэтому мы не должны его игнорировать:
Если это возможно , чтобы установить команду как корень, например , с
sudo apt-get install fish
,
команда может работать следующим образом:
ssh remote -t fish
Вопрос в том, что делать, если мы не можем установить команду на удаленном компьютере.
Или, более конкретно, речь идет о том, что мы не можем установить команду от имени пользователя root .
Это не значит, что мы не можем установить вообще!
Что еще возможно, это установить команду внутри домашнего каталога , собрав ее из исходного кода .
Преимущество этого заключается в том, что он заботится обо всех связанных файлах поддержки, которые могут поставляться с командой, и о том, как программа их находит. В fish
примере оболочки это функции завершения и т. Д., Все они недоступны, если мы просто скопируем fish
двоичный файл.
Сборка команды из исходного кода требует средств разработки и файлов разработки используемых библиотек, что может быть слишком сложным.
Но многие программы поставляются со всеми необходимыми источниками, поэтому это может быть легко. Трудно сказать раньше, но можно просто попробовать.
Для установки команды в домашний каталог configure
предоставляется путь для установки, который необходимо проверить в инструкциях по сборке. Например:
mkdir ~/local
./configure --prefix=~/local
make
make install
Обратите внимание , что это не sudo make install
как обычно - в это весь смысл установки его на месте , чтобы не нужно SUDO здесь.
Для получения общей информации об установке программ из исходного кода см. Askubuntu.SE: Как мне установить файл .tar.gz (или .tar.bz2)?