【问题标题】:How to redirect gem file installation如何重定向gem文件安装
【发布时间】:2017-09-05 03:42:49
【问题描述】:

编辑后的 ​​gem 文件与我正在处理的应用程序位于同一文件夹中。路径是/Users/name/Ruby/Instagram。我需要安装它,但我不能只使用gem 'gem_name' install,因为它会从 GitHub 安装通用版本。如何让它安装我刚刚更改的 gem?

另外,我使用的是 RVM,无法进入 .rvm 文件进行拖放。

【问题讨论】:

    标签: ruby-on-rails ruby rubygems rvm gemfile


    【解决方案1】:

    有几种可能:

    你可以给宝石起一个不同的名字。

    您可以为 gem 指定一个比原始版本更高的版本号,那么它将是首选……直到原始作者发布更高版本。

    您可以建立自己的存储库并将其放在搜索列表的首位(如果您想制作私有 gem,这通常是一个好主意)。同样,这仅适用于您的版本号至少与官方版本号一样高的情况。

    您可以简单地将 gem 文件的路径传递给 gem install。但同样,这只会在原作者发布的版本数量大于您的版本之前有效。

    【讨论】:

    • 我如何将gem文件的路径(你的意思是什么)传递给gem install ...它会选择我所做的更改吗?
    • gem install /path/to/your.gem.
    • 我要尽快试试这个
    • 它不起作用我收到一个错误,显示为ERROR: Could not find a valid gem '/Users/name/Ruby/Instagram/insta_scrape-1.1.4/lib/insta_scrape/version.rb' (>= 0) in any repository 我不确定我要为安装路径写入 gem 包的哪个文件
    【解决方案2】:

    这是我的设置: 每当我处理我编辑的 gem 版本或想要将其加载到应用程序时,我都会执行 RAILS_ENV=development bundle install,当我想要实时版本时,我会进行捆绑安装。

    您需要使用不同的版本,即使是 1.0.0 到 1.0.1 的补丁版本也可以,因此 bundle 将使用正确的路径更新 .lock 文件。

    version = '0.1.0'
    if ENV['RAILS_ENV'] == 'development'
      gem 'lorem', version, path: "/home/#{ENV['USER']}/work/lorem"
    else
      gem 'lorem', version, git: 'git@bitbucket.org:ipsum/lorem.git'
    end
    

    为了简化这一点并只获取您的本地版本,您可以执行以下操作:

      gem 'lorem', 0.1.1, path: "/Users/#{ENV['USER']}/Instagram/gem_folder/"
    

    然后您将 gem 的版本更改为与实际版本不同,然后运行 ​​bundle install

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多