【问题标题】:What to do after removing a gem from the Gemfile?从 Gemfile 中删除 gem 后该怎么办?
【发布时间】:2013-07-22 20:01:19
【问题描述】:

我从 Gemfile 中删除了一个 gem 'mygem',但刚才我意识到它仍然被安装。

那么我如何告诉 bundler 重新扫描 Gemfile 并更新 Gemfile.lock,而不更新每个 gem?

来自 php,我习惯这样做:composer update nothing。捆绑器是否有等价物?

【问题讨论】:

    标签: ruby-on-rails ruby bundler


    【解决方案1】:

    您可以只运行 bundlebundle install 来根据您的 Gemfile 安装 gem。这将从您的 Gemfile.lock 文件中删除 mygem 的实例。但是,它不会从您的系统中删除 gem。为此,请运行gem uninstall mygem

    不完全相关,但仍有帮助:

    • bundle outdated 将向您展示不在最新版本上的宝石。不要与此列表捆绑在一起 - 拥有不在最新版本上的 gem 是很常见的,因为某些 gem 是作为依赖项安装的,并且一个 gem 可能需要旧版本的另一个宝石。
    • bundle upgrade mygem 将升级只是该 gem,并将其依赖项更新。这意味着其他 gem 也可能会升级或安装。
    • 您可以搜索RubyGems 以查看gem 在其每个版本之间的依赖关系。作为 gem 用户,您只需要关注 gem 页面底部的“运行时依赖项”列表。

    【讨论】:

    • 还有一个非常方便的bundle clean 命令可以自动删除旧的和未使用的宝石。是否适用于 Bundler >= 1.1 并且如果使用 --path 选项安装了 gem。
    • 哦,酷!我一直在使用gem cleanup ...知道两者有何不同吗?
    • 我喜欢这样的综合性答案
    • bundle install --clean 见官方文档:bundler.io/v1.15/man/bundle-install.1.html
    【解决方案2】:

    清理捆绑器目录中未使用的 gem: 捆绑清洁 --force

    【讨论】:

    • 这从我的其他存储库中删除了所有宝石
    • 是的,不要这样做。它会删除所有内容,而不仅仅是项目中的宝石
    • 这个答案需要被删除。这是误导。
    猜你喜欢
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    相关资源
    最近更新 更多