ruby - 调用系统命令会比 ruby​​ 方法更快吗?

标签 ruby shell

我正在编写一个 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/

相关文章:

ruby-on-rails - 如何在 rspec 中模拟数据库查询响应以根据响应测试其他方法

ruby - 即使默认路由是用模块化风格实现的,Sinatra 也不知道这个小事

linux - if语句中的shell条件

linux - 嵌入 bash 命令

mysql - ruby mysql2 gem 安装错误

ruby-on-rails - 未知验证器 : 'InValidator' on Ruby on Rails

ruby - EventMachine 和循环

Bash:列出没有文件扩展名的.addr_book 的所有文件

linux - linux 变量 $BASH_SUBSHELL 与 $SHLVL 之间的区别

linux - awk 命令,打印在 csv 文件中只出现一次的行