gpt4 book ai didi

ruby-on-rails - ruby net/ssh 无法远程执行 rake 命令

转载 作者:数据小太阳 更新时间:2023-10-29 08:50:15 24 4
gpt4 key购买 nike

您好,我正在尝试使用 ruby​​ net/ssh gem (2.0.24) 连接到远程服务器并运行 rake 任务。我可以使用下面概述的脚本运行其他简单任务,但 rake 失败了。

这是我的代码

Net::SSH.start("myremote_server", 'ubuntu', :keys => ['abcdef.pem'], :paranoid => false, :verbose => :debug) do |ssh|
result = ssh.exec!("cd a_rails_directory; rake sunspot:solr:start")
puts result
ssh.loop
end

我收到以下错误消息

rake aborted!
uninitialized constant Bundler
/home/ubuntu/a_rails_directory/config/boot.rb:9:in `rescue in <top (required)>'
/home/ubuntu/a_rails_directory/config/boot.rb:5:in `<top (required)>'
/home/ubuntu/a_rails_directory/config/application.rb:1:in `<top (required)>'
/home/ubuntu/a_rails_directory/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

当我手动通过 ssh 连接到远程服务器时,我可以很容易地运行 rake taks,但正如我在上面概述的那样,它不适用于 net/ssh。

不知何故,我觉得我没有连接到正确的 shell 或正确访问路径变量,但我不确定,我也不知道如何修复它。有什么想法吗?

TIA

最佳答案

没关系。弄清楚如何加载相关的 ruby​​ 路径信息

result = ssh.exec!("[[ -s \"$HOME/.rvm/scripts/rvm\" ]] && source \"$HOME/.rvm/scripts/rvm\" ; cd rails_directory; rake sunspot:solr:start")

关于ruby-on-rails - ruby net/ssh 无法远程执行 rake 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com