Linux_软件包管理_rpm包管理_yum管理rpm包

1 篇文章 0 订阅
1 篇文章 0 订阅

Linux_软件包管理

1. 软件包介绍

# 简介
	与windows类似,在linux系统上也可以安装各种应用程序,或称软件包,linux下软件包分为三类
    
# 分类
	1. rpm包
        # 安装
        	预先编译打包,安装简单     
        # 特点
        	通常软件的稳定版会被官方做成rpm,所以软件版本偏低
            
	2. 源码包
    	# 安装
        	手动编译打包,安装繁琐
        # 特点
        	软件版本丰富,可选择性强
            
    3. 二进制包
    	# 安装
        	解压即可使用,安装简单
        # 特点
        	不能修改源代码

2. rpm包管理

1. rpm简介

# rpm简介
	Red-Hat Package Manager (RPM软件包管理器) 
    这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的
    在主流的linux系统上,多数软件的安装、升级、移除以及维护工作都是使用RPM软件包管理程序来完成的	

2. rpm包格式

在这里插入图片描述

3. rpm包格式示例

# 示例1
mysql-connector-odbc-5.2.5-8.el7.x86_64.rpm 

# 软件包的名称
	mysql-connector-odbc 
# 软件的版本号      
	Version:5.2.5 
# 发布版本次数      
	Release:8
# 平台
	el7.x86_64 
# 后缀名
	.rpm 

# 示例2
abrt-python-doc-2.1.11-57.el7.centos.noarch.rpm 

# 软件包的名称 
	abrt-python-doc 
# 软件的版本  
	2.1.11
# 软件编译之后的发布的次数    
	57 
# 适合的操作系统的版本     
	el7: enterprise linux Centos7   
# 适用于不同版本的CPU     
	noarch  
# 后缀名   
	.rpm       

4. RPM闭包使用的平台

redhat/centos/redora/suse 

# 查看自己当前平台 
[root@localhost ~]# uname -m 
x86_64 
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

5. 管理rpm包有两种命令

1. rpm命令
	需要自己找到rpm包,并且手动解决包的依赖性关系 
    ps:实际情况下,很难分辨缺少什么依赖包 
    
2. yum命令
	相关rpm包事先都被存放于一个仓库里,仓库包含了所有的依赖包,yum安装可以帮我们解决依赖性问题

6. RPM包获取

1. 本地的ISO镜像光盘(软件包可能存在版本偏低情况)
	# 挂载镜像有以下三种方式 
    方式1
    	[root@localhost ~]# mount /dev/cdrom /opt/ 
    方式2
    	[root@localhost ~]# mount /dev/sr0 /opt/ 
    方式3
    	[root@localhost ~]# mount -o loop /xxx.iso /opt 
    查看光盘里的rpm包 
    	[root@localhost ~]# ls /opt/Packages/ 
    
2. 自己去网上下载rpm包进行安装 

3. 联网从yum仓库里获取rpm包

3. rpm命令

1. 选项

1. 安装
	rpm -ivh <RPM包名全称> 

2. 卸载
	rpm -e <RPM包名> 

3. 升级
	rpm -Uvh <RPM包名>

4. 查询
	# 查询系统中安装的所有RPM软件包
	rpm -qa  
    
    # 检索系统中已经安装有关php的软件包
    rpm -qa | grep php  
    
    # 查询指定软件包是否已安装
    rpm -q <RPM包名>  
    # 示例
        [root@lee ~]# rpm -q zip 
        zip-3.0-11.el7.x86_64 
    
    # 查询系统中已安装包的描述信息 
    rpm -qi <RPM包名> 
    
    # 查询系统中已安装包里所包含的文件 
    rpm -ql <RPM包名> 
    
    # 查询指定软件包的所有配置文件
    rpm -qc <RPM包名>  
    # 示例
    	[root@lee ~]# rpm -qc mariadb 
        /etc/my.cnf.d/client.cnf 
        
    # 查询某个包安装的帮助文档
    rpm -qd <RPM包名> 
    # 示例
    	[root@localhost ~]# rpm -qd zlib 
        
    # 查询系统中指定文件所属的软件包    
    rpm -qf 文件路径  
    # 示例
    	[root@lee ~]# rpm -qf /usr/sbin/ifconfig 
        net-tools-2.0-0.25.20131004git.el7.x86_64 
      
    # 在上述选项的基础上加选项-p,就可以查看尚未安装的rpm包信息
    -p 
    # 示例
    	# 先卸载一下,证明本地rpm数据库中没有该包信息
    	[root@localhost ~]# rpm -e dos2unix 
        [root@localhost ~]# rpm -qip /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm 
        [root@localhost ~]# rpm -qlp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
        [root@localhost ~]# rpm -qcp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm 
        [root@localhost ~]# rpm -qdp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
        
5. 额外选项
	# 不检验软件包的签名
	--nomd5  
    
    # 忽略依赖性安装软件,安装后软件有可能无法使用,最好是解决依赖性后再安装
    --nodeps  
    # 示例 忽略依赖关系
    	[root@localhost ~]# rpm -e dos2unix --nodeps  
        
    # 强制安装软件包,只有安装和升级可以强制执行    
    --force 

2. 安装

1. rpm包在本地 
[root@lee ~]# mount /dev/sr0 /opt 
[root@lee ~]# rpm -ivh /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm 

2. rpm来自于网络
	如果安装过程中报错:curl: (60) Peer's Certificate has expired
	请先将系统时间修改正确,然后再安装即可 
    [root@lee ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0- 2.el7.x86_64.rpm

3. 安装与依赖

[root@lee ~]# rpm -ivh /opt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm 
错误:依赖检测失败: 
	/etc/mime.types 被 httpd-2.4.6-88.el7.centos.x86_64 需要
    httpd-tools = 2.4.6-88.el7.centos 被 httpd-2.4.6-88.el7.centos.x86_64 需要 
    libapr-1.so.0()(64bit) 被 httpd-2.4.6-88.el7.centos.x86_64 需要 
    libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-88.el7.centos.x86_64 需要

# 解决思路:安装提示的库
[root@egon ~]# rpm -ivh /opt/Packages/apr-1.4.8-3.el7_4.1.x86_64.rpm 
[root@egon ~]# rpm -ivh /opt/Packages/apr-util-1.5.2-6.el7.x86_64.rpm 
[root@egon ~]# rpm -ivh /opt/Packages/httpd-tools-2.4.6-88.el7.centos.x86_64.rpm 
# 查看到mime.types对应的依赖包为mailcap-
[root@egon ~]# yum search mime.types 
[root@egon ~]# rpm -ivh /opt/Packages/mailcap-2.1.41-2.el7.noarch.rpm 
然后重新安装 
[root@egon ~]# rpm -ivh /opt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
准备中...    ################################# [100%] 
正在升级/安装...
	1:httpd-2.4.6-88.el7.centos    ################################# [100%]

4. 升级rpm包

1. 下载一个低版本、一个高版本 
wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent- 3.0.9-1.el7.x86_64.rpm 
    
wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent- 4.2.0-1.el7.x86_64.rpm
    
2. 先安装低版本
[root@egon ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm

3. 再安装高版本,会报错
[root@egon ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm

4. 如果采用--force选项,那就是强制安装,会同时存在两个版本,该方案不可取
[root@egon ~]# rpm -qa |grep zabbix 
zabbix-agent-3.0.9-1.el7.x86_64 
[root@egon ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm --force 
...安装成功...
# 同时两个版本共存
[root@egon ~]# rpm -qa |grep zabbix 
zabbix-agent-3.0.9-1.el7.x86_64 
zabbix-agent-4.2.0-1.el7.x86_64

5. 重来 采用升级方式安装
[root@egon ~]# rpm -e zabbix-agent-3.0.9-1.el7.x86_64 
[root@egon ~]# rpm -e zabbix-agent-4.2.0-1.el7.x86_64 
[root@egon ~]# rpm -qa |grep zabbix 
[root@egon ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm 
...
[root@egon ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm 
...清理老版本,安装新版本...
# 只留下一个新版本
[root@egon ~]# rpm -qa |grep zabbix-agent 
zabbix-agent-4.2.0-1.el7.x86_64

5. 练习

# 练习安装如下软件包
	1.  vsftpd 
    2.  samba 
    3.  nfs-utils 
    4.  httpd 
    5.  dhcp 
    6.  postfix 
    7.  php 
    8.  lftp 
    9.  dos2unix
    10. unix2dos
    11. tigervnc

4. yum管理rpm包

1. yum介绍

# yum自动解决依赖关系
	Yum => Yellow dog Updater, Modified
    是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器
    基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
    
# 查看yum命令与配置文件
[root@localhost ~]# rpm -q yum 
yum-3.4.3-161.el7.centos.noarch 
[root@localhost ~]# rpm -qc yum 
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf

2. yum命令常用选项

# 常用选项说明
1. 仓库 
	# 查询可用仓库 
	yum repolist 
    
    # 查看包括已启用或禁用的所有仓库状态 
    yum repolist all 
    
    # 关闭与启用仓库 本质: 都是在修改repo文件中的enable的值 0不启用 1启用 
    yum-config-manager --disable epel  # 关闭仓库epel
    yum-config-manager --enable epel   # 启用仓库epel 

2. 查看 
	# 列出可用仓库中所有的软件包
	yum list  
    yum list | less
    
    # 列出可用仓库中的软件组
    yum grouplist  
    
    # 查询命令所属的软件包,可以不加路径,只写命令名字
    # 与rpm -qf的区别在于yum provides后可以只跟命名名
    yum provides /usr/sbin/ifconfig  
    
3. 安装 
	# 加上-y选项可以变成非交互
	yum install httpd httpd-tools  
    
    # 安装软件组,一个软件组中包含了多个软件包
    yum groupinstall "开发工具" -y 
    <=>
    yum groups install "开发工具" -y 
    
4. 卸载
	# 卸载软件包
	yum remove httpd httpd-tools http*  
    
    # 卸载软件组
    yum groupremove "开发工具" -y
    <=>
    yum groups remove "开发工具" -y
    
5. 重装 
	# 不小心删除了配置文件的时,可以reinstall一下
	yum reinstall httpd 
    
6. 更新
	# 检查可以更新的软件包
	yum check-update 
    
    # 更新所有软件包,包括内核,通常只在刚装完系
    yum update -y 
    
7. 统时执行
	# 更新某个软件包
    yum update httpd -y
    
8. 缓存
	# 制作元数据缓存
	yum makecache  
    
    # 清理元数据缓存
    yum clean all  
    
    # 默认软件包下载安装后会自动删除
    # 设置keepcache=1 即开启了软件包缓存 
    # 缓存目录为配置文件中指定的cachedir
    vim /etc/yum.conf 
    
9. 历史记录
	# 查看执行过的yum命令历史记录
	yum history 
    
    # 查看具体某一条yum命令的详细信息
    yum history info ID号  
    
    # 撤销执行过的历史命令
    yum history undo ID号 
    
# 关于安装需要注意
	无论yum安装的软件来自何方,yum时刻以自己仓库中的repodata存储依赖关系为准,如有多个仓库,就依次检索
    
    1. yum直接安装公网的rpm包, 会自动查找当前系统上已有的仓库解决依赖关系 
    yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba- 4.8.3-4.el7.x86_64.rpm 
        
    2. yum直接安装本地的rpm包,会自动查找当前系统上已有的仓库解决依赖关系 
    yum localinstall -y /mnt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm

3. 系统常见yum源

	在使用yum前,需要准备一个yum源(我们也称为yum仓库), 这个可以是一个互联网上的仓库,也可以是本地自己搭建的仓库.仓库里面有什么呢?里面全部都是.rpm的软件包.一台linux,可以添加N多个yum源, 能搜索的软件包数量就是N个yum源之和

1. 自定义的本地源 

2. 网络上的源头,如:base基础源、epel扩展源、与服务相关的源(官网)
	epel => Extra Packages for Enterprise Linux 

4. 镜像文件作为yum源(本地源)

1. 先挂载
# 方式1: 
[root@localhost ~]# mount /dev/cdrom /opt/ 

# 方式2: 
[root@localhost ~]# mount /dev/sr0 /opt/ 

# 方式3 
[root@localhost ~]# mount -o loop /xxx.iso /opt 

# 查看光盘里的rpm包 
[root@localhost ~]# ls /opt/Packages/

2. 编辑repo文件
[root@localhost ~]# cd /etc/yum.repos.d/ 
# 文件名自定义,必须以.repo结尾
[root@localhost yum.repos.d]# vim local.repo 
[local]    # 仓库的实际名字,任意
name=local # 仓库的描述,任意 
baseurl=file:///opt # 仓库位置,可以是 http:// https:// ftp:// file:// 
enabled=1  # 启用仓库,默认就是启用的 
gpgcheck=0 # 检查安装的rpm是否是合法的,0表示不检验

3. 检查可用仓库
# 查询可用仓库 
[root@localhost ~]# yum repolist 

# 查看所有仓库,包括禁用的
[root@localhost ~]# yum repolist all 

4. 安装 查询 卸载
# 列出可用的软包
[root@localhost ~]# yum list  
[root@localhost ~]# yum install vsftpd -y 
[root@localhost ~]# yum list vsftpd httpd 
[root@localhost ~]# yum remove vsftpd -y
[root@localhost ~]# yum install glib* httpd -y 

# 查询某个软件(可以是未安装的)是由哪个rpm包提供
[root@localhost ~]# yum provides vsftp 

# yum reinstall 
[root@lee ~]# rm -rf /etc/httpd/conf/httpd.conf 
[root@lee ~]# yum reinstall httpd -y &> /dev/null 
[root@lee ~]# ls /etc/httpd/conf/httpd.conf 
/etc/httpd/conf/httpd.conf

# yum update 
[root@localhost ~]# yum -y update samba 
[root@localhost ~]# yum -y update

5. 软件包组安装 查询 卸载
[root@localhost ~]# yum grouplist 
[root@localhost ~]# yum groupinstall "GNOME 桌面" -y 
[root@lee ~]# yum groupinstall "开发工具" -y
[root@lee ~]# yum groupremove "开发工具" -y

5. 使用开源yum源(网络源)

# 下载开源的yum源头
1. 阿里云的Base基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos- 7.repo
    
2. 163的Base基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7- Base-163.repo
    
3. 红帽的epel扩展源
# 可以直接下载 
[root@lee ~]# curl -o /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-7.repo
    
# 也可以安装一个软件包来生成 
[root@lee ~]# yum install epel-release -y

4. 扩展
	EPEL => Extra Packages for Enterprise Linux 
    EPEL是由Fedora社区打造,为RHEL及衍生发行版如CentOS、Scientific Linux等提供高质量软件包的项目
    装上了EPEL之后,就相当于添加了一个第三方源
    
    RHEL以及他的衍生发行版如CentOS、Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题
    
5. nginx官网的软件包源 
# 下载方式
	进入nginx官网 
    	-> download 
        	-> Pre-Built Packages
            	-> Stable and mainline
                	-> RHEL/CentOS
                    	-> 编辑到本地 

[root@lee yum.repos.d]# cat nginx.repo 
[nginx-stable] 
name=nginx stable repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=1 
enabled=1 
gpgkey=https://nginx.org/keys/nginx_signing.key 
module_hotfixes=true 

[nginx-mainline] 
name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ 
gpgcheck=1
enabled=0 
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true 

6. Centos系统默认的源备份
[root@lee ~]# cd /etc/yum.repos.d/ 
[root@lee yum.repos.d]# mkdir bak 
[root@lee yum.repos.d]# mv CentOS-* bak/ 
[root@lee yum.repos.d]# ls 
bak CentOS-Base.repo epel.repo local.repo nginx.repo

6. 自制本地yum源

# 制作流程
1. 下载好一堆rpm包,相关依赖包也都存在,将所有的rpm包都放置于一个文件夹下,比如/aaa

2. 安装工具createrepo
	[root@localhost ~]# yum install createrepo -y

3. 制作repodata
	[root@localhost ~]# createrepo /aaa/
    
4. 配置本地repo文件,指向/aaa
	[root@localhost ~]# vim /etc/yum.repos.d/soft.repo 
    [soft]
    name=soft 
    baseurl=file:///aaa 
    enabled=1 
    gpgcheck=0

7. yum扩展知识

1. yum元数据缓存
	指的将yum仓库的元数据缓存下来,下次安装时省去了检索过程,安装速度可以加快
    
	# 清理缓存
    [root@localhost ~]# yum clean all  
    # 制作缓存
    [root@localhost ~]# yum makecache 
    
2. yum软件包缓存
	开启软件包缓存后,从网络源下载安装完的软件安装包不再删除,都缓存到了本地
    
    [root@localhost ~]# vim /etc/yum.conf 
    [main] 
    # 指定软件安装包的缓存目录
    cachedir=/var/cache/yum/$basearch/$releasever 
    keepcache=1 # 设置为1 
    debuglevel=2 
    
    # 缓存目录为:ls /var/cache/yum/x86_64/7/
    
3. 基于软件包缓存,可以做成自己的yum源,以此来控制各个服务的版本
# 常规方法
	1. 在测试环境中,在每个节点上都开启软件包缓存 
    2. 在测试环境中,安装相同版本的操作系统,安装完毕后统一执行yum update -y 
    3. 在测试环境中,部署完完你的架构,测试完毕 
    4. 把测试环境中每台机器上缓存好的软件包安装包采集到一个文件下
	[root@lee ~]# find /var/cache/yum/x86_64/7/ -type f -name "*.rpm" | xargs -I {} mv {} /soft/
    5. 然后用createrepo命令制作好依赖关系,即repodata数据库
    6. 然后在线上环境部署时,就用该本地源就好,不要轻易升级,不要滥用yum源
       这样可以严格控制好各个服务的版本

8. 自制本地yum源共享给别人

# 在服务端上执行如下操作
1. 环境准备
[root@lee ~]# systemctl stop firewalld 
[root@lee ~]# systemctl disable firewalld 
[root@lee ~]# setenforce 0
[root@lee ~]# sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config

2. 安装ftp服务
[root@lee ~]# yum install vsftpd -y 
[root@lee ~]# systemctl start vsftpd 
# 查看状态,确保开启 
[root@lee ~]# systemctl status vsftpd 
[root@lee ~]# systemctl enable vsftpd

3. 采集软件包放到一个目录下
	可以基于4.7的方式,也可以直接用镜像里现成的,但无论何种方式,都一定要解决好依赖关系才能用来做yum源

    # 本例采用现成的
    [root@lee ~]# mkdir /var/ftp/centos7 
    [root@lee ~]# mount /dev/sr0 /var/ftp/centos7
    
    # 或者拷贝
    [root@lee ~]# mount /dev/sr0 /opt 
    [root@lee ~]# mkdir /var/ftp/centos7 
    [root@lee ~]# find /opt/Packages/ -type f -name "*.rpm" |xargs -I {} cp -rp {} /var/ftp/centos7/
    
# 在客户端上执行如下操作 
1. 环境准备
[root@lee ~]# systemctl stop firewalld 
[root@lee ~]# systemctl disable firewalld 
[root@lee ~]# setenforce 0 
[root@lee ~]# sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config 
# ping一下服务端的ip地址,保证网络畅通
[root@lee ~]# ping -c 2 192.168.12.42 

2. 在客户端配置网络yum源 
[root@lee yum.repos.d]# cd /etc/yum.repos.d/
[root@lee yum.repos.d]# mkdir bak 
[root@lee yum.repos.d]# mv *.repo bak/ 
[root@lee yum.repos.d]# cat >> ftp.repo << EOF
> [ftp_repo] 
> name = This is Ftp Share Repo 
> baseurl = ftp://192.168.12.42/centos7
> enabled = 1 
> gpgcheck = 0 
> EOF 

# 注意
	客户端baseurl指向的文件夹无论是什么,在该文件夹的子目录一级必须有一个repodata数据库

9. yum的历史记录

# 查看执行过的yum命令历史记录
	yum history  
    
# 查看具体某一条yum命令的详细信息    
    yum history info ID号  
    
# 撤销执行过的历史命令 
    yum history undo ID号 

10. 签名检查机制

# RPM工具使用签名检查机制
	# 导入centos公钥 
	[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
	[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/* 

	# 额外选项
    	--nomd5  # 不检验软件包的签名
        
# YUM使用签名检查机制
	# 方法一
	[root@localhost yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
    [root@localhost yum.repos.d]# vim local.repo 
    [local] 
    name=local 
    baseurl=file:///opt 
    enabled=1 
    # 开启检查软件包的签名
    gpgcheck=1  
    
    # 方法二
    [root@localhost yum.repos.d]# vim local.repo 
    [local] 
    name=local 
    baseurl=file:///opt
    enabled=1 
    gpgcheck=1 
    # 指定公钥文件
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
        
    # 额外选项
    	--nogpgcheck  # 不检查软件包的签名

5. 源码包

1. 官网下载,如nginx

# 下载方式
1. 浏览器下载 

2. 执行命令 
	wget http://nginx.org/download/nginx-1.18.0.tar.gz

2. 预先安装编译安装依赖的库

yum -y install gcc gcc-c++ autoconf automake make 
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel 
或者
LANG=C yum -y groupinstall "Development tools"

3. 解压 编译 编译安装

[root@localhost ~]# tar xvf nginx-1.18.0.tar.gz -C /tmp/
[root@localhost ~]# cd /tmp/nginx-1.18.0/ 

[root@localhost nginx-1.18.0]# ./configure --user=www --group=www -- prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module -- with-stream --with-http_gzip_static_module --with-http_sub_module 

1. --prefix 指定安装的目录,/usr/local/nginx 是安装目录 
2. 带ssl stub_status模块 添加stream模块 –with-stream,这样就能传输tcp协议了
3. http_stub_status_module 状态监控 
4. http_ssl_module 配置https 
5. stream 配置tcp的转发
6. http_gzip_static_module 压缩
7. http_sub_module 替换请求

[root@localhost nginx-1.18.0]# make && make install

# 将程序设定一个软连接,便于后续的升级 
[root@lee soft]# ln -s /soft/nginx-1.16.0/ /soft/nginx 
[root@lee ~]# /soft/nginx/sbin/nginx 

# 注意
	现在百分之90,能用上的软件,都提供了rpm包. 使用户可以使用yum直接安装使用

4. 总结编译安装-三部曲

# ./configure --prefix=/usr/local/nginx-1.18.0 
	1. 指定安装路径,例如--prefix=DIR 
    2. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module 
    3. 和其它软件关联,例如--with-pcre=/root/pcre-8.31 
    4. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求 
    最终生成:Makefile 
    
# make          //按Makefile文件编译,可以使用-j 2指定两颗CPU编译 
# make install  //安装 

# 注意
	如果中途发生错误,多半是因为缺少必要的库支持,可以先清理 
    # make clean //清理掉以前编译后产生的 *.o目标文件
    然后安装好依赖库,重新执行三部曲

# ps
	有一些源码包是已经编译好的结果,下载后解压即可使用
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I believe I can fly~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值