我是shell脚本中的完整noob我想要的是shell脚本,它确定当前安装的库/包的列表,如果没有用户权限就不安装它们
我想要的是确定当前是否在系统中安装了库/包
我知道 aptitude search 命令,但我正在寻找更好的解决方案
例如,我已经定义了(在shell脚本中)检查readline库/包现在如何从shell脚本(我想创建)中知道当前是否安装了readline包。
任何想法或建议肯定会有所帮助
答案 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-dev
。 Debian package search可以帮助您找到需要放入Depends:
答案 3 :(得分:-1)
你可以用dpkg