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 安装包
我做了一个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 安装包