gpt4 book ai didi

ruby - bundle exec thin start 对比 ./bundle/bin/thin start

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

我正在尝试了解 bundle exec 的工作原理及其作用。我已经使用 bundle install 安装了 gems,如下所示:

bundle install --binstubs ./bundle/bin --path ./bundle/lib'

这会创建一个脚本 ./bundle/bin/thin,我可以使用它来启动我的 Rails 应用程序,如下所示:

./bundle/bin/thin start -p 8080

但是我看到互联网上的大多数文章都建议像这样使用 bundle exec 开始瘦身:

bundle exec thin start -p 8080

两者有什么区别?我的测试表明 bundle exec 不调用 ./bundle/bin/thin 脚本,那么 bundle exec 与脚本有何不同?

最佳答案

没有显着差异:它们是完成同一件事的两种方法,即为您的包运行正确版本的命令,并设置环境以确保命令可以加载其他 bundle 的基因.选择归根结底是为了方便。

bundle exec 的好处是您无需生成 binstubs 即可使用它:它只适用于现有的 Gemfile。这解释了为什么您没有看到它调用您拥有的 binstub。

有些人不喜欢在每个命令之前都必须键入 bundle exec,因此 binstubs 的目标是您可以将目录添加到 PATH 的前面并正常调用命令。缺点是如果 bundle 的 gem 包含隐藏重要系统命令的命令(例如,ls),则存在潜在的安全性或可用性问题。

如果你不把它放在你的 PATH 中并且总是将它称为 bundle/bin/thin,你就没有安全问题,但它也没有给你带来比使用bundle exec thin.

关于ruby - bundle exec thin start 对比 ./bundle/bin/thin start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18004185/

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