我正在编写一个 ruby 脚本来比较大量 debian 软件包的版本。我在这里有两个选择,使用来自 ruby 脚本的 debian 系统的 dpkg --compare-versions
或在 Ruby 中实现比较例程。
我的问题是哪个会更快?我应该依赖 dpkg --compare-versions
还是实现算法?
注意:我假设该脚本只能从 debian 系统运行,尽管从非 debian 系统运行的能力当然会是一个额外的好处。
版本比较算法在Ubuntu policy中有描述。
最佳答案
Ruby-Debian也可能是另一种选择。根据描述:
ruby interface for dpkg
This package provides Debian::Dpkg and Debian::DpkgDeb modules and Debian::Deb, Debian::Dsc, Debian::Archives, Debian::Sources, Debian::Packages and Debian::Status classes for ruby
(不幸的是,该网页不包含有关如何使用它的示例,所以我想您最好的选择是安装它并在 irb/pry session 中使用它)。
更新
这是一个完整的示例,按照@Amadan 的说明(我必须使用 require 'debian'
而不是 require 'ruby-debian'
)
安装
apt-get install libapt-pkg-dev
gem install ruby-debian
用法
require 'debian'
puts Debian::Version.cmp_version("1.2.3", "<", "1.2.11")
关于ruby - 调用系统命令会比 ruby 方法更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30589231/