当初做一个项目的时候给linux装nginx遇到了很多问题,当初边搞边记录,这两天翻看项目笔记的时候找出来了,就把这一部分分享出来给大家看看
ubuntu20.04 LTS 安装yum无法定位软件包
备份原来的软件源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
选择自己版本对应的镜像源 这个是20.04的
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
进到默认源文件
sudo nano /etc/apt/sources.list
把里面文件替换成上面的镜像文件
在第一行加入
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
退出更新软件源
sudoapt-get update
如果报公钥错误
W: GPG 错误:http://archive.ubuntu.com/ubuntu trusty Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
安装公钥
sudo apt-key adv --recv-keys --keyserver keyserver.Ubuntu.com 437D05B5
sudo apt-key adv --recv-keys --keyserver keyserver.Ubuntu.com C0B21F32
再次更新
sudo apt-get update
sudo apt-get upgrade
如果没有公钥错误,直接安装yum
sudo apt-get install yum
安装过程中如果有依赖包错误
缺啥安啥依赖包
我当时是这样的,缺俩包python-sqlitecachec和 python-urlgrabber
sudo apt install python-sqlitecachec
安这个的时候
sudo apt install python-urlgrabber
告诉我又缺这个包的依赖包python-pycurl
所以又先安了sudo apt install python-pycurl
再安了sudo apt install python-urlgrabber
安完之后
再次更新 sudo apt-get update
完成之后再次安装yum:
sudo apt-get install yum
安装成功
当在Ubuntu系统下使用apt-get命令来安装所需依赖包时,可能会报错“E: 无法定位软件包问题”
由于centos中的yum和ubuntu中的apt-get命令下载的依赖包名称可能不一致,所以导致报错“E: 无法定位软件包问题”。
安完yum 执行,进到解压nginx之后的那个目录里面,执行这个命令安装nginx
./configure --with-stream
安装nginx的时候会出现一些问题缺少包,把下面这几个安上去
比如在安装nginx时,centos系统中安装nginx所需的依赖lib指令为:
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
ubuntu系统中安装nginx所需的依赖lib指令为:
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g-dev
sudo apt-get install openssl libssl-dev
安完之后再
./configure --with-stream
就没问题
然后输入编译安装命令
make && make install
如果出现问题就是
nginx版本和服务器版本不对应,有个过高了
找了很多解决办法,
删/usr/src/nginx-1.12.2/objs/Makefile文件中的“ -Werror”,
注释掉/usr/src/nginx-1.12.2/src/os/unix/nginx_user.c第36行的"cd.current_salt[0] = ~salt[0];"
单独用都不好使,一起用奏效了,但也有人是单独用好使,总之都试试吧。
我是两个都弄了才起作用,中间有的语法是报了警告,不过编译是成功了
搞完再make && make install就ok了