【问题标题】:Remove unnecessary temporary files after gem install nokogiri [duplicate]gem install nokogiri 后删除不必要的临时文件 [重复]
【发布时间】:2014-03-11 07:32:35
【问题描述】:

我必须使用nokogiri 进行一些 xml 处理。 为此,我创建了一个特定于项目的 rvm gemset,并通过 gem install nokogiri 安装 nokogiri。目前没有问题。

但是,当我查看 ~.rvm/gems/ruby-...@nokogiri/gems/nokogiri-.../ext/nokogiri/ 及其子文件夹时,我发现文件系统中有 140MB 的文件。

有没有一些通用的方法可以去除这个垃圾?

【问题讨论】:

  • 我不知道你所说的“通用方式”是什么意思。请注意,Nokogiri 维护者认为当前情况为a bug

标签: ruby gem rvm nokogiri


【解决方案1】:

这比我得到的要大一些。我在 OS X 上看到 108MB,主要违规者是 ext 中的 88MB、ports 中的 18MB、test 中的 750k 和 lib 中的 520k。

ext/nokogiri 中,您当然不需要tmp 目录的87MB。所以这是一个很大的节省。

phrogz$ pwd
/Users/phrogz/.rvm/gems/ruby-1.9.3-p392/gems/nokogiri-1.6.1

phrogz$ du -sh .
 108M     .

phrogz$ rm -rf ext/tmp
phrogz$ du -sh .
 21M     .

同样,您也不需要任何源文件、头文件或编译文件:

phrogz$ cd ext/nokogiri/
phrogz$ rm *.c *.h *.o
phrogz$ cd ../../
phrogz$ du -sh .
 20M     .

我很确定您不需要 ports/archives 目录,其中包含 libxml2 和 libxslt 的 .tar.gz 源:

phrogz$ rm -rf ports/archives/
phrogz$ du -sh .
 12M     .

然后,您可以肯定地删除一些库文档:

phrogz$ rm -rf ports/x86_64-apple-darwin13.1.0/libxml2/2.8.0/share/doc/
phrogz$ rm -rf ports/x86_64-apple-darwin13.1.0/libxml2/2.8.0/share/gtk-doc/
phrogz$ rm -rf ports/x86_64-apple-darwin13.1.0/libxslt/1.1.26/share/doc/
phrogz$ du -sh .
 4.4M     .

您可能会进一步削减它,删除 test 目录之类的内容。但现在你已经解决了这个问题。

【讨论】:

  • 感谢您的回答。尽管我真的很想朝着更一般的方向前进,然后自己清理宝石。
  • @Gizmomogwai 然后等到 RubyGems 修复提供必要的钩子,并修复 Nokogiri gem 以删除构建后的垃圾。
  • 另外(未经测试)我认为如果 Nokogiri 必须自己构建 libxml2 和 libxslt,它只会生成这些大量文件。如果您在机器上本地安装了适当的版本,则不会构建它们。
  • 谢谢 Phrogz ...我现在应该如何处理您的回答...将其添加为已接受?或者是重复的没有价值接受?
  • @Gizmomogwai 因为我不相信它解决了你的确切愿望,所以我不会接受它。如果它对你有帮助,也许可以投票(如果你还没有)。
猜你喜欢
  • 2019-05-07
  • 2019-09-13
  • 2013-07-30
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 2017-02-17
  • 2011-03-10
相关资源
最近更新 更多