是否建议将ruby依赖项安装到本地文件夹中



我最近在学习ruby,我是一名前端开发人员,当我使用bundle install时,我发现依赖项已安装到C:/Ruby31-x64/lib/ruby/gems/3.1.0文件夹中。依赖关系似乎是像CCD_ 3一样默认全局安装的。我知道Bundler也有办法将gems安装到本地文件夹中,所以我想知道它建议像npm那样将依赖项安装到本地文件夹?

与Composer类似,Bundler负责维护您的依赖项,但它不是在项目文件夹中安装所有内容,而是在系统范围内分发您的gems,然后由您的所有项目共享。使用项目文件夹中的Gemfile,它可以跟踪每个项目需要哪些库。Bundler是Rails的默认包管理器,所以您应该让它做自己的事情。它做得很好。

希望这能有所帮助。

为Ruby使用版本管理器,为Gem版本管理使用Bundler

偶尔会有一些理由将gem从另一个隔离安装进来,但大多数情况下,您应该使用Ruby版本管理器来管理您的非系统Rubies和Bundler来处理多个gem版本和位置。尽可能避免修改您的系统Ruby或其宝石。此外,请注意,即使使用RVM gemset(或其他版本管理器中的类似功能(而不调整rvm gemset globalcache enable等文档记录不佳的功能,也可能造成不必要的隔离级别,并可能大幅增加磁盘使用量。

如果您需要宝石隔离

也就是说,如果你想确保你正在隔离你的gem或将它们本地化到你的应用程序,并且没有使用direnv的Ruby布局来管理所有涉及的各种环境变量,你可以使用Bundler的BUNDLE_PATH环境变量来";供应商";将您的gem放入本地应用程序目录(现在通常在vendor/bundle下(。对于部署或容器化,如果您不想在安装gem后依赖Bundler本身的可用性,也可以使用--deployment--standalone标志和要安装的gem组列表来调用bundle安装。

这类东西可能对构建容器或tarball很有用,但对开发并不是很有用。除非你有充分的理由,否则不要这么做。

最新更新