如何在 Debian 9 上仅升级 apache2 软件包?

如何在 Debian 9 上仅升级 apache2 软件包?

在 Debian Stretch 中有apache2版本 2.4.25-3,但我至少需要 2.4.26(对于ProxyFCGISetEnvIf)。我不是 Debian 的专业人士,并且不知道执行此操作的正确方法...我也尝试找到最新的存储库apache2- 没有运气。

升级到Debian Sid似乎不太对劲。也许有人可以告诉我如何在 Debian Stretch 中获取最新的 Apache 2.4?

答案1

您最好的选择是使用 Buster 源包从源代码构建较新的 Apache 包。这涉及构建一些额外的构建依赖项。您最终将使用 Debian 软件包干净地安装 Web 服务器,一旦您升级到该版本,它将自动升级到 Buster 版本。同时,您必须跟踪 Buster 软件包的任何安全更新并自行重建它们。

首先安装一些有用的软件包:

sudo apt install build-essential devscripts

启用 Stretch 向后移植,这是我们在一个包中需要的:

echo deb http://deb.debian.org/debian stretch-backports main | sudo tee /etc/apt/sources.list.d/stretch-backports.list
sudo apt update

建造libapr

cd /tmp
dget -x http://deb.debian.org/debian/pool/main/a/apr/apr_1.6.5-1.dsc
dpkg-source -x apr_1.6.5-1.dsc
cd apr-1.6.5
mk-build-deps debian/control
sudo apt install ./apr-build-deps_1.6.5-1_amd64.deb
mv ./apr-build-deps_1.6.5-1_amd64.deb ..
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -us -uc

安装它:

sudo dpkg -i ../libapr1_1.6.5-1_amd64.deb ../libapr1-dev_1.6.5-1_amd64.deb

建造libssl

cd /tmp
dget -x http://deb.debian.org/debian/pool/main/o/openssl/openssl_1.1.1a-1.dsc
dpkg-source -x openssl_1.1.1a-1.dsc
cd openssl-1.1.1a
mk-build-deps debian/control
sudo apt install ./openssl-build-deps_1.1.1a-1_all.deb
mv ./openssl-build-deps_1.1.1a-1_all.deb ..
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -us -uc

安装它:

sudo dpkg -i ../libssl-dev_1.1.1a-1_amd64.deb ../libssl1.1_1.1.1a-1_amd64.deb

建造apr-util

cd /tmp
dget -x http://deb.debian.org/debian/pool/main/a/apr-util/apr-util_1.6.1-3.dsc
dpkg-source -x apr-util_1.6.1-3.dsc
cd apr-util-1.6.1
mk-build-deps debian/control
sudo apt install ./apr-util-build-deps_1.6.1-3_all.deb
mv ./apr-util-build-deps_1.6.1-3_all.deb ..
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -us -uc

安装它:

sudo dpkg -i ../libaprutil1-dev_1.6.1-3_amd64.deb ../libaprutil1_1.6.1-3_amd64.deb

建造apache2

cd /tmp
dget -x http://deb.debian.org/debian/pool/main/a/apache2/apache2_2.4.38-2.dsc
dpkg-source -x apache2_2.4.38-2.dsc
cd apache2-2.4.38
mk-build-deps debian/control
sudo apt install ./apache2-build-deps_2.4.38-2_all.deb

(如果您libaprutil安装了其他软件包,这可能会失败;通过安装之前构建的相应软件包来升级它们。)

mv ./apache2-build-deps_2.4.38-2_all.deb ..
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -us -uc

最后,在上一步中构建的软件包中安装您需要的 Apache 软件包。

答案2

echo 'deb-src http://deb.debian.org/debian/ testing main' > /etc/apt/sources.list.d/testing.list
apt-get update
apt-get source apache2
apt-get build-dep apache2
cd apache2-*
dpkg-buildpackage -rfakeroot -b -uc
apt install ../*apache*deb

如果您发现任何未满足的依赖关系build-dep,请对此包重复相同的命令,安装它,然后重试。

相关内容