CentOS 7 提示 No package certbot-nginx available 的解决办法
Let's encrypt 证书申请工具 Certbot 最近进行了更新,在 CentOS 7 + Nginx 环境下有了专门的插件。因此,安装 Certbot 不再推荐使用
sudo yum install certbot
转而使用
sudo yum install certbot-nginx
本来这是一个进步,但我们在阿里云的ECS上运行这个命令,却遇到了问题:
No package certbot-nginx available
也就是说,certbot-nginx 这个包在阿里云的默认 yum 源里是不可用的。
怎么办呢?我们来开启一下测试源,这个源包含额外的软件包。
如果要永久开启,命令如下:
yum-config-manager --enable epel-testing
然后来更新一下系统:
yum update
如果要临时开启,可以在更新的时候加参数,像这样:
yum update --enablerepo=epel-testing
但是,更新系统时又遇到了问题:
Error: Package: python2-certbot-0.18.2-2.el7.noarch (epel-testing)
Requires: python2-psutil >= 2.1.0
Error: Package: python2-certbot-0.18.2-2.el7.noarch (epel-testing)
Requires: python2-zope-component
有两个组件不满足要求,我们修复一下。
第一个是已安装但版本低,卸载了重装:
pip uninstall psutil
sudo yum install gcc python-devel python-pip
pip install psutil
第二个是没安装,直接装一下:
rpm -Uvh epel-release*rpm
yum install python-zope-component
安装完了再尝试更新一次:
yum -y update
然后安装 certbot-nginx:
sudo yum install certbot-nginx
成功。
注意:如果使用第三方面板部署环境,Nginx 配置文件一般不在默认位置,无法被 certbot-nginx 插件识别。这时候 certbot-nginx 就没什么用了,我们还是使用 certbot。