查找是否使用shell脚本安装库

时间:2012-05-13 03:21:17

标签: linux shell deb

我是shell脚本中的完整noob我想要的是shell脚本,它确定当前安装的库/包的列表,如果没有用户权限就不安装它们

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

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

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

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

4 个答案:

答案 0 :(得分:9)

  

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

dpkg -s不需要root权限,并会显示包状态详细信息。

示例shell脚本:

#!/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

答案 1 :(得分:2)

对于简单的测试,似乎你可以为你感兴趣的库grep ldconfig -p等命令的输出。

或者您可以提供一个与所需库链接的小型测试程序,尝试运行它,并测试非故障。

答案 2 :(得分:0)

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

您仍然必须知道提供libreadline.so的库是libreadline5-devDebian package search可以帮助您找到需要放入Depends:

的软件包名称

答案 3 :(得分:-1)

你可以用dpkg

做你想做的事