gpt4 book ai didi

ruby - 为什么 ruby​​ 对 'which' 命令给出了不同的答案

转载 作者:数据小太阳 更新时间:2023-10-29 09:02:28 26 4
gpt4 key购买 nike

我需要指向一个可执行路径,我尝试在 IRB 中使用它:

%x( which wkhtmltopdf )
#"/home/james/.rbenv/versions/2.2.2/bin/wkhtmltopdf\n"

但是当我在命令行中输入命令时,我得到:

 % which wkhtmltopdf  
#/usr/local/bin/wkhtmltopdf

我想这是 2 个问题:

1) 为什么 ruby​​ 给出了不同的答案?

2) 有没有办法在 ruby​​ 中获取命令行答案?

最佳答案

在 ruby​​ 环境中,您在 Bundler 的上下文中执行,它有效地将路径覆盖为从 rbenv 继承的登录变量。

看起来您之前运行过 gem install wkhtmltopdf-binary。这将覆盖您在路径上使用的任何系统安装。

查看 Login Shell Blogpost获取更多信息。

如果您启动了一个新的 shell,它可能不会继承 rbenv 环境:

%x(bash -l which wkhtmltopdf)

或者,您可以获取路径上的所有实例,然后过滤掉结果,使其不包含 rbenv。 (具体代码未经测试)

all_binaries = %x(which -a wkhtmltopdf).split

original_binary = ""

all_binaries.each do |bin|
if not s.contains? "rbenv"
original_binary = bin

# Will break on the first instance which isn't within the rbenv.
break
end
end

关于ruby - 为什么 ruby​​ 对 'which' 命令给出了不同的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31984456/

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