【发布时间】:2011-08-25 07:30:21
【问题描述】:
我正在用 Perl 编写包安装程序脚本。如果安装了 Ubuntu/Debian 软件包,我需要一个命令(可能是操作系统命令),它向调用者脚本返回一个简单的 0 或 1。
我试过了
dpkg -s
它总是返回 0。
dpkg -L
几乎可以工作,但如果用户不这样做
apt-get --purge remove
包,一些文件被留下并且总是返回0
我不想 grep 文本 - 我需要一个简单的真或假。 有什么想法吗?
@安迪:
aptitude remove unixodbc -y
dpkg-query -W unixodbc; echo $?
unixodbc 2.2.11-21
0
aptitude install unixodbc -y
dpkg-query -W unixodbc; echo $?
unixodbc 2.2.11-21
0
【问题讨论】:
-
但是
grep确实返回一个简单的真或假。 -
@ikegami 必须有一个返回 0 或 1 的简单包管理器命令。如果我 grep 的文本更改并且我的程序在世界上,我所有的程序都会失败 - 不是一个选项。
-
已记录包状态。如果他们改变,那将违反他们的文件。
-
@ikegami grep 文本时的问题是文本可以更改。这里有一个空格,你的正则表达式停止工作。没有人不会更改文本输出的断言。
-
搜索引擎素材:使用标准包装系统,它是
rpm -qi packagename packagename。如果安装了所有命名包,则返回值为 0,否则为 1。
标签: perl ubuntu debian package