2015-05-01 10 views
1

Я хочу установить grails в моем basg-файле резервной установки (который выполняется как root). Я пытался изменить установку, как показано на grails manual:Установите grails в качестве другого пользователя с sudo

curl -s get.gvmtool.net | sudo -u vagrant -H bash 
sudo -u vagrant -H bash "$HOME/.gvm/bin/gvm-init.sh" 
sudo -u vagrant -H bash gvm install grails 

Но это дает ошибки:

bash: /root/.gvm/bin/gvm-init.sh: Permission denied 
bash: gvm: No such file or directory 

, что я делаю неправильно?

+0

и какие ошибки могут быть? – cfrick

+2

Прежде всего вы не должны запускать скрипт инициализации, но вы должны его исправить. Вторая проблема заключается в том, что 'gvm' - это функция оболочки и сценарий. я бы удостоверился, что поиск происходит в .profile вашего бродячего пользователя, а затем «bash -c» gvm install grails »может работать через sudo. Чтобы попробовать, я начну с' sudo -u vagrant -H bash -i' и попытаться сделать его первой работой внутри пользователя. – cfrick

+0

'-i Если присутствует опция -i, оболочка является интерактивной.' почему shoul, который помогает? сценарий предоставления бродяг не является вообще интерактивным;) – rubo77

ответ

0

Это может работать:

curl -s get.sdkman.io | sudo -u vagrant -H bash -i 
sudo -u vagrant -H bash -i 'source "$HOME/.sdkman/bin/sdkman-init.sh"; sdk install grails' 

Ключ -i (имитировать начальный логин) опцию
... Это означает, что для входа в конкретных файлов ресурсов, такие как .profile или .login будут считаны оболочка. Если задана команда, она передается в оболочку для выполнения .