我在Mac OS机器上有一个.sh脚本,用于使用PhoneGap生成IPA文件。如果我通过ssh登录计算机,然后运行该脚本,它将成功运行。但是,如果我尝试远程执行它,通过执行ssh并调用脚本如下:
~$ ssh -i ~/.ssh/mykey admin@IP_ADDRESS 'cd /Users/admin/scripts && ./build.sh'
然后我收到此错误:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- xcodeproj (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from generate_scheme.rb:2:in `<main>'
我在.sh文件的开头有这个:
#!/bin/bash
PATH=$PATH:/bin:/usr/bin:Users/admin/.rvm/gems/ruby-2.2.4/bin:/Users/admin/.rvm/gems/ruby-2.2.4@global/bin:/Users/admin/.rvm/rubies/ruby-2.2.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/admin/.rvm/bin:/Users/admin/.rvm/rubies/ruby-2.2.4/bin/xcodeproj:/Users/admin/.rvm/rubies/ruby-2.2.4/bin/ruby
export PATH
这就是失败的路线:
ruby generate_scheme.rb
感谢任何帮助,谢谢。
答案 0 :(得分:0)
默认情况下,Ssh会建立一个非登录shell,因此不会为该用户选择适当的环境设置。具体来说,在您的系统上,它不会选择xcodeproj
的设置。
使用bash --login
建立登录shell:
ssh -i ~/.ssh/mykey admin@IP_ADDRESS -t 'bash --login -c "cd /Users/admin/scripts;./build.sh"'