当前位置: 首页 > 知识库问答 >
问题:

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

越涵衍
2024-07-04

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

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

共有2个答案

邓宜年
2024-07-04

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

卓星波
2024-07-04

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 是该项目的依赖,而 ~> 符号表示安装指定主要版本和次要版本中的最新版本(但不包括下一个主要版本)。

 类似资料:
  • 问题内容: 我对Linux相对较新,正在尝试为python安装pygame开发环境。当我运行setup.py时,它说我需要安装以下依赖项,其中之一是我找到并安装的(SDL)。但是,其他的则更加难以捉摸。 如果您能给我一些指导,我将不胜感激。 谢谢。 问题答案: 对于debian,有一个预构建的软件包。看这里。您应该能够使用或类似的方式安装它。

  • 问题内容: 我正在尝试在OSX上设置virtualenvwrapper,我发现的所有说明和教程都告诉我向.profile添加源命令,指向virtualenvwrapper.sh。我已经检查了所有的python和site- packages目录,但找不到任何virtualenvwrapper.sh。这是我需要单独下载的东西吗?pip安装不正确吗? 这是/Library/Frameworks/Pyth

  • 我正在尝试在OSX上安装VirtualEnvrapper,我找到的所有说明和教程都告诉我向.profile添加一个源命令,指向virtualEnvrapper.sh。我已经检查了所有python和site packages目录,但找不到任何virtualenvwrapper.sh。这是我需要单独下载的东西吗?pip是否安装不正确? 这是/Library/Frameworks/Python.fram

  • 对于我的一些模块,Intellij的想法不是导入依赖项和插件。只导入活循环。 当我在命令行编译时,POM是有效的。我已经删除了模块并重新导入它们。我删除了他们的项目,并重新导入它。 所以我想知道Intellij在模块上的想法信息被删除后是否有一些秘密缓存。

  • 问题内容: 我正在使用和。 我想从URL安装额外的库,例如安装setup.py上的git repo。 我在中添加了额外的参数。这意味着,我的库需要额外的库,并且还必须安装它们。 但是git repos之类的网址不是in中的有效字符串。假设,我想从github安装一个库。我已经搜索过该问题,发现了可以放入库中的内容。但这仍然行不通。这是我的依赖链接定义; 链接有效。我可以使用这些URL从Intern

  • If you have just checked out a package from version control, you will need to install those dependencies. If you are adding dependencies for your project, then those dependencies are automatically ins

  • 我试图设置JAVA_HOME使Tomcat7工作,但没有成功。 我用的是Centos6.3。以下是我到目前为止所做的: 没起作用。我在网上搜索了stackoverflow的另一个用户,他在/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/java中找到了它 我在电脑上搜索了一下,发现java位于/usr/lib/jvm/jre-1.6.0-ope

  • 问题内容: 我是python的新手。最近,我有一个用python编写的项目,需要进行一些安装。我运行以下命令进行安装,但出现错误。 我在Google上搜索并找到了此链接,但我不太了解该帖子中的解决方案。 以下是我的requirements.txt文件: 有没有简单的方法来在此python项目中安装所有必需的依赖项? 编辑1 以下是的输出。 我已经安装了,但是pip命令仍然报告缺少此依赖项。 问题答