如果安装了软件包列表,我需要一些代码来检查。这个检查应该适用于每个Linux发行版(Fedora,Arch-Linux,Debian,RedHat,...)。
实际上我的剧本看起来像那样:
#!/bin/bash
# At first check, if all needed softwares are installed
declare -a NEEDED_SOFTWARE_LIST=(bash rsync wget grep telnet)
if [ -f /etc/debian_version ]; then
for SOFTWARE in ${NEEDED_SOFTWARE_LIST[@]}; do
dpkg -l | grep -i $SOFTWARE | head -1 | if [[ "$(cut -d ' ' -f 1)" != "ii" ]]; then
echo -e "$SOFTWARE is NOT installed completely! Please install it...\n";
exit 1;
fi
done
else
echo "No Debian";
fi
我希望有人可以帮助我。
答案 0 :(得分:1)
当你说:
此检查应适用于每个Linux发行版(Fedora,Arch-Linux,Debian,RedHat,...)。
你快要死了......
没有简单的方法可以对所有发行版充满信心。
通过这种方法,你会发现:
因此,如果您需要创建一个安装程序并具有依赖关系,请使用一个众所周知的包管理器,构建一个好的包,并且不要重新发明轮子。
这可能听起来令人生畏,但从长远来看它会得到回报。
答案 1 :(得分:0)
检查二进制文件是否找不到更简单?
declare -a NEEDED_SOFTWARE_LIST=(bash rsync wget grep telnet)
for SOFTWARE in ${NEEDED_SOFTWARE_LIST[@]} ; do
$SOFTWARE --version |& grep "command not found" && echo "$SOFTWARE is NOT installed completely! Please install it..." && exit 1
done