Ruby项目一般是把依赖安装在哪里的呢?
1)gem install xxx,之后好像没有在项目目录下
2)是否可以像nodejs项目一样把packages安装在项目的根目录下?
Ruby项目一般是把依赖安装在哪里的呢?
1)gem install xxx,之后好像没有在项目目录下
2)是否可以像nodejs项目一样把packages安装在项目的根目录下?
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'
# ... 其他依赖
在这个示例中,rails
和 puma
是该项目的依赖,而 ~>
符号表示安装指定主要版本和次要版本中的最新版本(但不包括下一个主要版本)。
27 回答13k 阅读
6 回答1.3k 阅读✓ 已解决
8 回答2.9k 阅读
3 回答2.2k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
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