Установите программное обеспечение, использующее другую оболочку

Я хотел бы установить cryoSPARC, и, просматривая readme, похоже, что эта программа требует, чтобы пользователь использовал bash в качестве своей оболочки по умолчанию. На данный момент я использую tcsh и создал файл .cshrc, который я не знал бы, как перевести его в файл .bashrc, поэтому я не хочу менять оболочки.

Программное обеспечение должно быть установлено на одной конкретной машине, которую я использую, нескольких, к которым у меня есть доступ. Я обращаюсь к этому компьютеру через ssh -X. Возможно, я могу изменить оболочку по умолчанию только для того, чтобы войти в эту конкретную машину?

Есть ли у кого-нибудь какие-либо предложения относительно наилучшего способа установки этого программного обеспечения?

Оказывается, что bash требуется, чтобы быть оболочкой по умолчанию, вероятно, из-за того, как структурирована программа: когда она запускает задание, мастер проверяет всех рабочих и запускает задание на одном из рабочих через ssh. Это происходит независимо от оболочки пользователя по умолчанию, в моем случае tcsh. Просто чтобы убедиться, что это помогло, я попытался добавить строки

setenv SHELL /bin/bash exec /bin/bash --login

в конец моего файла .cshrc, но это не помогло и b) создало проблемы с логином, когда я пытался войти в систему, я получил черный экран, а затем вернулся на экран входа в систему. Тем не менее, я бы предпочел не менять свою оболочку по умолчанию в любом случае из-за причины выше. Кто-нибудь есть идеи о том, как обойти это?

3
задан 10 May 2018 в 23:39

2 ответа

Вы можете просто запустить оболочку bash в оболочке ssh (независимо от оболочки по умолчанию для ssh) или запустить ее непосредственно, когда ssh с помощью:

ssh -tX USER@SERVER "bash -l"

Однако этот последний подход может не подобрать вашу среду tcsh, если вы хотите, чтобы она использовала следующую команду:

ssh -tX USER@SERVER "tcsh -cl bash"

Источник: SSH, затем измените Shell · SO

0
ответ дан 17 July 2018 в 14:43

Вы можете просто запустить оболочку bash в оболочке ssh (независимо от оболочки по умолчанию для ssh) или запустить ее непосредственно, когда ssh с помощью:

ssh -tX USER@SERVER "bash -l"

Однако этот последний подход может не подобрать вашу среду tcsh, если вы хотите, чтобы она использовала следующую команду:

ssh -tX USER@SERVER "tcsh -cl bash"

Источник: SSH, затем измените Shell · SO

0
ответ дан 20 July 2018 в 14:47
  • 1
    Это работает для установки, которая требует bash, но при запуске программы я сталкиваюсь с ошибками. Я думаю, что причина этого заключается в том, что программа структурирована: я устанавливаю «мастер» и «рабочий», а затем после установки я взаимодействую только с «мастером», хотя интерфейс браузера. Когда я прошу «хозяина» выполнить задание, он отправляет их на «рабочий» через ssh. Поэтому, пока программа запущена, я сам не выполняю ssh, это происходит внутри. Когда он это делает, он использует оболочку по умолчанию, которая в моем случае является tcsh, но затем сталкивается с проблемами. – Suzanne Scott 10 May 2018 в 23:13
  • 2
    Ошибка, с которой я сталкиваюсь, - это Command '[' ssh ', u' & lt; user & gt; @ & lt; server & gt; ',' nohup ', u' & lt; worker_path & gt; run --project P1 - job J9 --master_hostname & lt; server & gt; --master_command_core_port 39002 & gt; & lt; project_directory & gt; /P1/J9/job.log 2 & amp; 1 & amp; ']' возвращает ненулевой статус выхода 1 – Suzanne Scott 10 May 2018 в 23:15
  • 3
    @SuzanneScott Нет проблем, владелец сообщения всегда получает уведомление. :) Пожалуйста, опубликуйте новый вопрос с этим описанием, сообщением об ошибке и содержимым <project_directory>/P1/J9/job.log. Однако, если программа не позволяет вам изменить свой вызов ssh, я боюсь, что единственный способ - изменить оболочку по умолчанию на «рабочей» машине. Я действительно не знаю, почему разработчик не просто запустил оболочку bash - это, на мой взгляд, стоит вопрос github с запросом на функцию. Такие вещи быстро исправляются! – dessert 10 May 2018 в 23:27

Другие вопросы по тегам:

Похожие вопросы: