shell 用于安装软件包的脚本(如果尚未安装)

shell script to install a package if not alreay installed

我做了一个C程序,但是它依赖于ncurses库。因此,当我将我的代码提供给其他人时,我必须要求 him/her 先安装 ncurses 库,然后仅使用我提供的 Makefile 编译代码。

但是,我想编写一个 shell 脚本,如果尚未安装,它将自动安装 ncurses。这样我就可以简单地让我的朋友运行脚本。

这就是我希望脚本执行的操作::

if(ncurses-dev package not installed)
     sudo apt-get install ncurses-dev

我知道这是一个非常基本的问题,但我不知道该怎么做。我尝试 google 搜索但找不到我能理解的简单教程。

For fedora

if ! rpm -qa | grep -qw $package_name$; then
    yum install $package_name
fi

For UBUNTU

#!/bin/sh

for package; do
    dpkg -s "$package" >/dev/null 2>&1 && {
        echo "$package is installed."
    } || {
        sudo apt-get install $package
    }
done

这也可用于检查多个包。

要在 Debian 上自动安装而无需用户交互(在您的情况下 Ubuntu),您可以在命令行参数列表中使用 --force-yes --yes 开关。像这样:

sudo apt-get --force-yes --yes 安装包