如果我将.gem文件下载到计算机中的文件夹中,以后可以使用gem install安装该文件吗?

评论

这篇文章与stackoverflow.com/questions/1864618/install-gem-locally相关

#1 楼

是的,当您执行gem install时,它将首先搜索当前目录,因此,如果您的.gem文件在那里,它将进行选择。我在gem参考上找到了它,您也可能会发现它很方便:


gem install将安装命名的
gem。它将尝试在本地安装
(即,当前目录中的.gem文件),如果失败,则
它将尝试下载并安装最新版本。您想要的
宝石中的一个。


评论


链接以无限重定向结束:(

–艾因·托夫里(Ain Tohvri)
2014年11月25日10:57

检查说这对我来说在2019年有效。

–查尔斯·伍德
19年7月5日在13:26

我有一个Gemfile,但没有.gem文件。那么,这个.gem文件是什么?它应该包含什么? –等待–我明白了。您的意思是gem-name.gem文件。请记住,在Unix上,以“。”开头的文件是很正常的。所以最好把它说清楚。

–马丁
20-3-22在8:15



我可以确定从2020年的未来开始,该链接对我有用。万一它在遥远的将来不起作用,这是Archive.org 2020年4月19日的快照

–杰德·伯克(Jed Burke)
20-05-30在10:23

#2 楼

另外,您可以使用gem install --local path_to_gem/filename.gem

,这将跳过在离开--local时发生的常规gem仓库扫​​描。

评论


我以zip格式下载宝石,例如rubygems。因此,这里没有.gem文件。如何从本地安装它?谢谢。

– Erran Morad
2015年1月10日,0:15

@ BoratSagdiyev,zip文件不是gem。像大多数zip文件一样,您需要先将其解压缩,然后才能进行大量处理。如果包含gem,则可以在提取的.gem文件上使用gem install。我不记得gem格式的内部结构;可能只是带有特殊标头的zip文件,但rubygems无法识别这种zip文件。

–JasonTrue
2015年1月10日,3:50

#3 楼

您还可以在您的gem文件中使用完整的文件名:

#4 楼

如果使用捆绑器创建宝石:

# do this in the proper directory
bundle gem foobar


写完后可以用耙子安装它们:

# cd into your gem directory
rake install

< br可能是,您下载的gem也将知道rake install

评论


这似乎是最好的现代答案。接受的答案是8年前

–sixty4bit
16年6月3日在20:33

这对于创建宝石的人很有用,但对那些只想安装预建宝石的人没有太大帮助

–伊戈尔·斯科钦斯基(Igor Skochinsky)
20-10-20在13:23

#5 楼

如果您是从github或其他scm主机站点下载项目文件,请首先使用gem build来构建项目,这样您就可以在当前目录中获得一个what.gem文件。然后用gem安装它!

#6 楼

如果要处理在本地修改的gem分支,最好的方法是

gem 'pry', path: './pry'

在Gemfile中。

...其中./pry将是您的存储库的克隆。只需运行一次bundle install,您对宝石来源所做的任何更改都会立即反映出来。使用gem install pry/pry.gem时,源仍然移到GEM_PATH中,您将始终必须同时运行bundle gem prygem update进行测试。

#7 楼

转到宝石所在的路径,然后致电gem install -l gemname.gem

#8 楼

好吧,这是我的DRY安装:


查找计算机,该计算机在缓存目录中需要安装的gem(默认情况下:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
将所有“ *.gems文件”复制到一台没有宝石的计算机放置在自己的宝石缓存位置(默认情况下,第一步的相同赞助人路径:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
在控制台中,位于宝石缓存(cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)中,然后启动gem install anygemwithdependencieshere(例如cucumber-2.99.0) />
这是DRY,因为安装任何gem后,默认情况下rubygems会将gem文件放在缓存gem目录中,并且没有重复的thats文件,如果您希望两台计算机具有相同的版本(或通过偏执的安全规则:v)


编辑:在某些版本的ruby或rubygems中,它不起作用并发射警告或错误,您可以将宝石放在其他位置但没有得到DRY,
另一种方法是使用启动集成命令gem server
在gem来源中添加本地主机url,更多信息请参见: guides.rubygems.org/run-your-own-gem-server/


#9 楼

您可以从https://rubygems.org/gems/下载宝石,也可以通过捆绑和机架来构建本地宝石。

例如:


捆绑宝石yourGemName
rake install

在安装实际的gem之前要先安装依赖项。


gem install --local /pathToFolder/xxx-2.6.1。 gem

注意:如果在同一台计算机上使用流利的td代理和红宝石。请确保使用td-agent的td-agent-gem命令。 td-agent拥有自己的Ruby。