4

我在 shell 脚本中完全是菜鸟我想要的是 shell 脚本,它确定当前安装的库/包的列表,如果没有用户许可不安装它们

我想要的是确定库/包当前是否安装在系统中

我知道aptitude search命令,但我正在寻找更好的解决方案

例如,我现在已经定义(在 shell 脚本中)检查 readline 库/包,我如何从 shell 脚本(我想创建)中知道当前是否安装了 readline 包。

任何想法或建议肯定会有所帮助

4

4 回答 4

9

我想要的是确定库/包当前是否安装在系统中

dpkg -s不需要root权限,会显示包状态详情。

示例外壳脚本:

#!/bin/sh

for P; do
    dpkg -s "$P" >/dev/null 2>&1 && {
        echo "$P is installed."
    } || {
        echo "$P is not installed."
    }
done

用法是:

script.sh package1 package2 .... packageN

于 2012-05-15T05:40:01.050 回答
2

为了简单地进行测试,您似乎可以为您感兴趣的库 grep 诸如 ldconfig -p 之类的命令的输出。

或者,您可以提供一个与所需库链接的小型测试程序,尝试运行它,然后测试是否失败。

于 2012-05-13T05:18:03.373 回答
0

如果您尝试设置依赖项检查,正确的解决方案是创建一个虚拟包,Depends:该包位于您需要安装的包上。有一个名为equivs的工具对此有所帮助。(然而,它被批评为“过度设计”;当然,如果您熟悉 Debian 软件包的格式,如果您的要求如此简单,则可能不需要单独的工具。)然后您只需安装此软件包并它将拉入指定为依赖项的包。

您仍然必须知道提供的库libreadline.solibreadline5-dev. Debian 软件包搜索可以帮助您找到需要放入的软件包名称Depends:

于 2012-05-15T12:45:40.400 回答
-1

你可能可以做你想做的事dpkg

于 2012-05-13T13:39:10.393 回答