![使用 dpkg -i 而不更新已安装的软件包](https://linux22.com/image/212618/%E4%BD%BF%E7%94%A8%20dpkg%20-i%20%E8%80%8C%E4%B8%8D%E6%9B%B4%E6%96%B0%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
我如何使用 dkpg -i 并且它不会更新软件包(如果已安装)。
答案1
给定任意包文件作为参数,仅当相应的包尚未安装(任何版本)时,此脚本才会安装它:
#!/bin/sh
if ! dpkg -l "$(dpkg-deb -W --showformat '${Package}:${Architecture}' "$1")" | grep -q '^ii'; then
dpkg -i "$1"
fi
它的工作原理是从包文件中提取包名称和体系结构,并检查是否已安装匹配的包。如果没有,则会安装它。