2015-06-05 90 views
0

我已经做了一个C程序,但它取决于ncurses库。所以,当我把代码交给其他人时,我必须要求他/她先安装ncurses库,然后只使用我提供的Makefile编译代码。shell脚本安装包如果没有安装alreay

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

这就是我想要的脚本来完成::

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

我知道这是一个非常基本的问题,但我不知道如何做到这一点。我试图谷歌搜索,但无法找到一个简单的教程,我可以理解。

回答

1

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 

这可用于检查多个包以及。

+0

@sps - 你要运行此脚本仅在Ubuntu或任何Linux发行版。 –

+0

我的c程序适用于任何Linux系统....但现在我想至少让Debian(ubuntu)的脚本工作...我从我的手机写这个答复...我会回到我的电脑2-3小时后,然后我可以尝试脚本你建议..感谢你的帮助,并已upvoted你的答案,但不能接受它,直到我在我的电脑上测试.. – sps

+0

是的这适用于'ubuntu'。谢谢..我没有'red hat' linux来检查'yum'虽然... – sps

0

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

sudo易于得到--force-是--yes安装包