在shell脚本中检测Apache2的版本

在shell脚本中检测Apache2的版本,apache,ubuntu,debian,deb,dpkg,Apache,Ubuntu,Debian,Deb,Dpkg,我正在创建一个依赖于apache2的deb包。我希望我的软件包能在所有最新版本的Debian和Ubuntu上运行,因此它应该能在Apache2.2和2.4上运行 检测apache2版本的优雅方法是什么 这在bash脚本中工作,但当我将其放入.postinst中时,软件包安装失败。我最终使用了dpkg和-compare版本: dpkg-l apahce2-*dev将更加高效,但dpkg-l的一个固有问题是它将截断长版本号。您可以摆弄列,使其真正广泛地打印这些字段,也可以使用dpkg-s apach

我正在创建一个依赖于apache2的deb包。我希望我的软件包能在所有最新版本的Debian和Ubuntu上运行,因此它应该能在Apache2.2和2.4上运行

检测apache2版本的优雅方法是什么

这在bash脚本中工作,但当我将其放入.postinst中时,软件包安装失败。

我最终使用了dpkg和-compare版本:

dpkg-l apahce2-*dev将更加高效,但dpkg-l的一个固有问题是它将截断长版本号。您可以摆弄列,使其真正广泛地打印这些字段,也可以使用dpkg-s apache2 dev apache2 prefork dev 2>/dev/null | awk'/^Version:/{print$2}
ISAP22=$(apache2 -v | grep "Apache/2.2")
if [ "$ISAP22" ]; then
  #asssume apache 2.2
else
  #assume apache 2.4
fi
APACHE_VERSION=$(dpkg -l | awk '$2 ~ /apache2(-prefork)?-dev/ { print $3 }')
echo "Found Apache version $APACHE_VERSION"
if dpkg --compare-versions $APACHE_VERSION lt 2.4; then
    echo "Patching config for Apache 2.2"
fi