【问题标题】:Error running script on Mac OS but runs ok after ssh在 Mac OS 上运行脚本时出错,但在 ssh 后运行正常
【发布时间】:2016-07-28 21:07:09
【问题描述】:

我在 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

感谢您的帮助,谢谢。

【问题讨论】:

  • 脚本是否依赖于任何环境变量?这些环境变量设置在哪里?

标签: ruby macos cordova ssh


【解决方案1】:

默认情况下,SSH 会建立一个非登录 shell,因此不会选择该用户的任何环境设置。具体来说,在您的系统上,它不会选择 xcodeproj 的设置。

使用bash --login建立登录shell:

ssh -i ~/.ssh/mykey admin@IP_ADDRESS -t 'bash --login -c "cd /Users/admin/scripts;./build.sh"'

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2015-05-02
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2017-10-15
    • 2018-09-29
    相关资源
    最近更新 更多