【发布时间】:2014-03-07 20:49:13
【问题描述】:
我需要下载一个 tar.gz 文件,并将其中的目录替换为另一个 tar.gz 文件的内容。到目前为止,我已经尝试了以下宝石,发现它们缺乏
- archive-tar2:它丢失了倒数第二个路径分隔符(“/”),因此实际上无法提取
- archive-tarsimple:根本没有解压压缩包,没有返回错误信息
- minitar:遇到了一个错误,导致文件路径超过 100 个字符时失败
- archive-tar-minitar - 与其父级 Errno::ENAMETOOLONG 一样失败/文件名太长
- libarchive: bundle install 未能通过 gcc 编译(即使在成功 brew install libarchive 之后)
我开始失去信心。是否有一个好的、最新的、维护良好的 tar 存档 gem 可以正常工作?我更喜欢不调用命令行的,因为我想消除命令行注入攻击的可能性。但在这一点上,我将采取任何避免手动调用 shell 的方法。
【问题讨论】:
-
您是否尝试过从 stackoverflow.com/a/11505644/931925 中的几个 Gems::Package::TarReader 复制到 Gems::Package::TarWriter? (对不起,我不熟悉 Ruby,所以很容易误解。)
-
不,但我会试一试