我想使用本地腳本在服務器上遠程安裝ruby。以下是我的代碼:使用rvm install安裝Ruby時使用腳本自動輸入密碼?
sshpass -p ****** ssh [email protected]$HOST 'bash -s' <<'ENDSSH'
export PATH=$PATH:/home/hx/.rvm/bin/
rvm install 2.2.0
ENDSSH
當我運行此腳本,出現錯誤說:
Error running 'requirements_debian_update_system ruby-2.2.0',
showing last 15 lines of /home/hx/.rvm/log/1423392690_ruby-2.2.0/update_system.log
++ [[ -d /usr/sbin ]]
++ [[ :/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hx/.rvm/bin/:/home/hx/.rvm/bin: != *\:\/\u\s\r\/\s\b\i\n\:* ]]
++ for sbin_path in /sbin /usr/sbin /usr/local/sbin
++ [[ -d /usr/local/sbin ]]
++ [[ :/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hx/.rvm/bin/:/home/hx/.rvm/bin: != *\:\/\u\s\r\/\l\o\c\a\l\/\s\b\i\n\:* ]]
++ [[ -n '' ]]
++ command_to_run=(__rvm_sudo -p "%p password required for '$*': " "${command_to_run[@]}")
++ __rvm_sudo -p '%p password required for '\''apt-get --quiet --yes update'\'': ' apt-get --quiet --yes update
++ command sudo -p '%p password required for '\''apt-get --quiet --yes update'\'': ' apt-get --quiet --yes update
++ sudo -p '%p password required for '\''apt-get --quiet --yes update'\'': ' apt-get --quiet --yes update
sudo: no tty present and no askpass program specified
++ return 1
++ typeset __ret=1
++ case ${__ret} in
++ return 1
Requirements installation failed with status: 1.
make: *** [install-ruby] Error 1
事實證明,運行時RVM安裝作爲非root用戶,它會問你輸入密碼更新過程中的apt-get。
有沒有辦法在我的腳本中自動輸入密碼? Like
echo password | apt-get -S install xxxxxx
也許'apt-get -S安裝smh <「密碼」'? – ForceBru 2015-02-08 11:17:01