如何判断某个包是否已经安装?

如何判断某个包是否已经安装?

我在 Windows 主机上以客户机身份安装了 Ubuntu 14.04.1。
在安装 GCC 之前,我需要确保安装了以下软件包:

GMP、MPFR 和 MPC

我检查了 Ubuntu 软件包站点并且我认为它们对应:

libgmp10、libmpfr4 和 libmpc3

如何查看软件包是否已经安装?如果尚未安装,如何安装?

谢谢。

答案1

你可以通过 dpkg 列出所有已安装的软件包,如下所示

dpkg -l

然后你可以通过 grep 管道来查找你感兴趣的内容:

dpkg -l | grep libgmp10

或者你可以在 grep 中不那么具体

dpkg -l | grep libgmp

Grep 将在输出中找到包含该字符串的任何行。

安装也很容易

sudo apt-get install <package>

不确定软件包名称? apt-get install 命令中的 Tab complete 也有效,或者你可以使用:

sudo apt-cache search <string>

答案2

有很多方法可以查找某个软件包是否在 Ubuntu 中安装。例如,如果我们想查找 是否vim在 Ubuntu 中安装,我们可以使用以下任一命令:

dpkg -s vim
dpkg --get-selections | grep 'vim' #I always prefer this one as it shows other packages that has the pattern `vim` in their names, very useful in some cases
dpkg -l vim
apt-cache policy vim

现在如果发现某个包尚未安装但又想安装它,只需执行以下操作(这里我们正在安装vim,只需将 vim 替换为您想要的任何包):

sudo apt-get update #It will update the local cache of repositories, not mandatory but recommended
sudo apt-get install vim

这是一个简单的bash脚本,用于检查某个包是否已安装,如果没有安装,则安装该包。它会要求您输入包的名称。

#!/bin/bash
echo "What's the name of the package you want to check?"
read package
check=$(dpkg -s $package 2>/dev/null | sed -n '2,3p' | grep -o 'installed')

if [[ "$check" == 'installed' ]]
        then
                echo -e "$package is already Installed\n\n"
else
        echo -e "$package is Not installed\n\n"
        sudo apt-get install $package
fi

答案3

使用sudo apt-get install $package-name1 $package-name2 $package-name3,根据需要添加任意数量的包。如果已经安装,它会提示$package-name is already the newest version.

答案4

将 dpkg -l 的整个输出保存到文件:

dpkg -l > ~/Desktop/packages

并使用文本编辑器打开:

nano ~/Desktop/packages

相关内容