在这里似乎是第 22 个问题。将服务器更新到较新版本是不可能的。我只需要将 Apache 更新到特定的(旧版本)。
服务器是 CentOS 6.3。基本存储库已过时,我必须对其进行更新以使用保险库存储库。yum
但是,它需要 HTTPS,并且每当我在更新存储库后尝试运行时,我都会得到:
https://vault.centos.org/centos/6/os/i386/repodata/repomd.xml:[Errno 14] 建立 ssl 连接的问题
显然,我需要更新 yum、openssl 等……但是,当我无法从 through 开始下载软件包时,我该怎么做yum
?有没有办法避免手动构建这些包?
这是 CentOS-Base.repo:(注意:将这些更改为 http 似乎不起作用)
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=https://vault.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
我遇到了同样的问题,经过多次试验和错误后,Webserver 的 Docker 是解决方案。我建议不要尝试仅更新 Apache。有太多的依赖最终会让你绝望。
(我知道这应该放在评论部分,但我很少有声誉来评论一个问题。)
我设法
yum
通过手动安装所有更新的软件包来运行。首先,我从 CentOS 6.10 vault 下载了软件包——是的,我故意在我的 6.3 服务器上使用了 6.10:(注意,repo 是劣质的,我不得不多次重试这些命令)
然后我安装了软件包:
如果对已安装的软件包有任何警告,请添加
--force
到rpm
命令中。最后,我跑了
yum clean all
,然后yum install httpd
一切又正常了。已安装最新的 Apache 补丁级别。上面的某些软件包可能不需要。这取决于系统上已经安装的内容。例如,如果
openssl-perl.i686
未安装,请不要安装它,否则将需要安装 Perl 依赖项。生命周期结束意味着他们已经放弃尝试修复安全漏洞——让这台机器暴露在外会给您的服务和网络上的其他所有人带来风险。即使该网络是互联网。
有时升级不是一个可行的选择——在这种情况下,您应该将此服务器包装在一个私有网络上,该网络由在当前平台上运行的代理提供。巧合的是,这也解决了服务器端 SSL 的问题,因为只有代理可以连接,而代理本身可以为客户端提供当前协议。
代理客户端 SSL 连接有点复杂——您需要使用 SSL MITM(可以配置 Squid 来执行此操作)。