Ruby项目一般是把依赖安装在哪里的呢?

Ruby项目一般是把依赖安装在哪里的呢?

1)gem install xxx,之后好像没有在项目目录下
image.png
2)是否可以像nodejs项目一样把packages安装在项目的根目录下?

阅读 1.2k
avatarAI BotBETA

Ruby 项目中依赖的管理主要通过 RubyGems(简称 gem)来进行。以下是针对你提出的问题的回答:

1)当你使用 gem install xxx 命令时,gem 会将指定的包安装到 Ruby 的全局 gem 仓库中。这个仓库通常位于系统的某个特定目录下,具体位置取决于你的操作系统和 Ruby 安装方式。例如,在 Unix-like 系统(如 Linux 或 macOS)上,它可能位于 /usr/local/lib/ruby/gems/ 下的某个版本中。而在 Windows 上,则可能在类似 C:\Ruby\lib\ruby\gems\ 的路径下。

2)是的,Ruby 项目可以像 Node.js 项目一样将依赖安装在项目的根目录下。这通常通过使用 bundle 命令和 Gemfile 文件来实现。Gemfile 列出了项目的所有依赖和它们所需的版本。你可以使用 bundle install 命令来根据 Gemfile 安装所有依赖,这些依赖将被安装到项目的 vendor/bundle 目录(这是默认设置,但可以通过 .bundle/config 文件或环境变量进行更改)或系统 gem 仓库中(如果你没有设置 --path 参数)。

如果你想让 gem 依赖安装在项目的本地目录中,你可以在项目的根目录下运行 bundle install --path vendor/bundle 命令。这会将所有的 gem 安装到项目的 vendor/bundle 目录中,这样你的项目就可以在不依赖系统全局 gem 仓库的情况下运行了。

以下是一个简单的 Gemfile 示例:

source 'https://rubygems.org'

gem 'rails', '~> 6.0'
gem 'puma', '~> 3.11'
# ... 其他依赖

在这个示例中,railspuma 是该项目的依赖,而 ~> 符号表示安装指定主要版本和次要版本中的最新版本(但不包括下一个主要版本)。

2 个回答

gem install,在我的macOS中是安装到/usr/lib/ruby/gems/x.x.x/,其他的Linux系统估计类似,Windows系统应该也是在Ruby的安装目录中

如果想和nodejs一样,依赖都在项目文件中,需要用到Bundler

也有类似package.json的依赖管理文件Gemfile

通过bundler install安装,安装后会在项目中生成vender/xxx的依赖文件

更多参考:https://bundler.io/guides/rationale.html

新手上路,请多包涵

可以看看这两个命令的输出 :

gem info
gem env

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏