ChatGPT解决这个技术问题 Extra ChatGPT

从 Github 分支安装 Gem?

在我的 gemfile 我有这个:

gem "authlogic", :git => "git://github.com/odorcicd/authlogic.git", :branch => "rails3"

如何将其安装为 gem,以便进行测试?


A
Archonic

您不需要在本地构建 gem。在您的 gemfile 中,您可以使用 ref、branch 或 tag 指定 github 源。

gem 'rails', git: 'git://github.com/rails/rails.git', ref: '4aded'
gem 'rails', git: 'git://github.com/rails/rails.git', branch: '2-3-stable'
gem 'rails', git: 'git://github.com/rails/rails.git', tag: 'v2.3.5'

然后运行 bundle install 或简称为 bundle

在此处阅读更多信息:http://bundler.io/man/gemfile.5.html#GIT

更新:a github source identifier

gem 'country_select', github: 'stefanpenner/country_select'

但是,他们警告不要使用它:NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system.

在 Bundler 2.0 之后,您可以使用 Gemfile 顶部附近的以下语句解决上述问题:

git_source(:github) { |repo| "https://github.com/#{repo}.git" }

从 2017 年开始更新,我无法让 GitHub 源标识符工作,但 :git => ref 工作正常
也许是它的 Windows 恶作剧,但在 Windows 10 上使用 RubyInstaller 2.3,我对未发布的 gem 有相同的设置,我发出 bundle install 命令,RubyGems 说它正在获取 git repo,并已安装,但是当我做了gem list gemname,它没有出现在我本地安装的 gem 中。
nvm,这是因为我希望 bundle install 像全局一样安装,或者适用于所有 rubygems。但是,它是按项目执行的,有时是按用户执行的。 github.com/bundler/bundler/issues/3070#issuecomment-46361014
至少对于我们的环境,github: 标识符给出了我希望避免的 transmits data without encryption 警告。使用 https 转换为 git: 标识符可能还不够,因为我还需要指定一个分支。
关于使用 github 源标识符安装:NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system. - 根据 link you gave
p
patrick-fitzgerald

克隆 Git 存储库。 $ git clone git://github.com/odorcicd/authlogic.git 切换到新目录。 cd authlogic Checkout 分支 $ git checkout -b rails3 remotes/origin/rails3 构建 gem。 $ rake build gem 安装 gem。 $ gem install pkg/gemname-1.23.gem


我需要将 4. 更改为“rake build”来构建 gem。
而不是 4. 我不得不使用 gem build name-of-file.gemspec 来构建 gem rake build o rake gem 对我不起作用
而不是 4 和 5 你可以做“rake install”
或直接来自 github:gem 'rails', :github => 'rails', :branch => '5.0-stable' - 链接:bundler.io/v1.3/git.html
对我来说 gem build <gem-name>.gemspec 有效。我没有在 Gemfile 中列出 rake。所以 rake build gem throw rake 不是捆绑包的一部分。将其添加到 gemfile
H
Hai Feng Kao

我必须修改@janic_ 的答案才能使其正常工作。希望它能帮助像我这样的其他红宝石新手。

克隆 Git 存储库。 $ git clone git://github.com/odorcicd/authlogic.git 切换到新目录。 $ cd authlogic Checkout branch $ git checkout -b rails3 remotes/origin/rails3 安装包 $ bundle install 构建 gem。 $ rake build 安装 gem。 $ gem install pkg/gemname-1.23.gem


c
charlesdg

要更新@Archonic 答案,您需要根据 https 协议替换 git 协议

fatal: remote error:
  The unauthenticated git protocol on port 9418 is no longer supported.

因此,您需要编写:

gem 'rails', git: 'https://github.com/rails/rails.git', ref: '4aded'
gem 'rails', git: 'https://github.com/rails/rails.git', branch: '2-3-stable'
gem 'rails', git: 'https://github.com/rails/rails.git', tag: 'v2.3.5'