centos7更换阿里云yum源后无法安装nginx的问题解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7更换阿里云yum源后无法安装nginx的问题解决相关的知识,希望对你有一定的参考价值。

在centos7上,我将yum源更换为阿里云源,按照配置完成后,想使用yum安装nginx,但是老是提示我找不到nginx,没有可用的安装包,无论我是换为华为云的yum源,还是其他国内源,都无法找到。我的centos版本为7.7
技术图片

无论我是安装epel-release,还是安装nginx的仓库,都没办法找到nginx包
技术图片

我的nginx repo配置也没问题
技术图片

一安装就找不到
技术图片

但是可以用yum搜索到nginx的其他组件
技术图片

这不科学

后来我想一个办法,在能够yum安装nginx的同样的机器上,把nginx相关包下载下来,然后把rpm包导入问题的机器上,然后使用rpm方式安装

yum install --downloadonly --downloaddir=/tmp/nginx nginx<br/>
命令说明
--downloadonly 只下载,不安装

--downloaddir=/tmp/nginx 指定下载保存目录

可以看到相关的依赖的rpm包已经下载好了

技术图片

然后使用打包上传到问题机器上

tar -cvf nginx.tar nginx
scp  nginx.tar root@172.31.208.131:/root

到问题机上解压后,以依次忽略依赖和强制安装的方式安装这些rpm包

rpm -ivh nginx-all-modules-1.12.2-2.el7.noarch.rpm --nodeps --force
rpm -ivh nginx-filesystem-1.12.2-2.el7.noarch.rpm --nodeps --force
rpm -ivh nginx-mod-http-geoip-1.12.2-2.el7.x86_64.rpm --nodeps --force
rpm -ivh nginx-mod-http-image-filter-1.12.2-2.el7.x86_64.rpm --nodeps --force
rpm -ivh nginx-mod-http-perl-1.12.2-2.el7.x86_64.rpm --nodeps --force
rpm -ivh nginx-mod-http-xslt-filter-1.12.2-2.el7.x86_64.rpm --nodeps --force
rpm -ivh nginx-mod-mail-1.12.2-2.el7.x86_64.rpm --nodeps --force
rpm -ivh nginx-mod-stream-1.12.2-2.el7.x86_64.rpm --nodeps --force

安装完成后,确定nginx可用

技术图片

最后将nginx作为服务加入sytemd启动

vi /lib/systemd/system/nginx.service

内容如下:

 [Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target                                

技术图片

Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

然后niginx就可以正常启动了

技术图片

以上是关于centos7更换阿里云yum源后无法安装nginx的问题解决的主要内容,如果未能解决你的问题,请参考以下文章

centos8将yum源更换为国内(阿里云)源

centos7 阿里云yum源更换

centos7 更换yum源为阿里云

Centos7更换阿里云yum源

centos8更换国内源(阿里源)

更换CentOS7的下载源为阿里云