linux07 软件包管理

一 软件包介绍

与windows类似,在linux系统上也可以安装各种应用程序,或称软件包,linux下软件包分为三类
在这里插入图片描述

二 rpm包管理

2.1 什么是rpm包

在主流的linux系统上,多数软件的安装、升级、移除以及维护工作都是使用RPM软件包管理程序来完成的,那什么是RPM软件包呢?

RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,通常软件的稳定版会被官方做成rpm,所以软件版本偏低。

2.2 RPM包格式举例

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


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

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

abrt-python-doc	#软件包的名称

2.1.11	#软件的版本

57	#软件编译之后的发布的次数

el7	#适合的操作系统的版本

noarch	#适用于不同版本的CPU

.rpm	#后缀名

RPM闭包使用的平台

2.3 管理rpm包有两种命令

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

2.4 RPM包获取

# 1.本地的ISO镜像光盘(软件包可能存在版本偏低情况)
: 挂载镜像有以下三种方式
方式1[root@localhost ~]# mount /dev/cdrom /opt/
#将光驱内的镜像文件挂在到/opt目录下
方式2[root@localhost ~]# mount /dev/sr0 /opt/
#将光驱内的镜像文件挂在到/opt目录下
方式3
三 rpm命令
选项
[root@localhost ~]# mount -o loop /xxx.iso
/opt
#将光驱内的镜像文件挂在到/opt目录下
查看光盘里的rpm包
[root@localhost ~]# ls /opt/Packages/
# 2.自己去网上下载rpm包进行安装
# 3.联网从yum仓库里获取rpm包
# yum的时候

三 rpm命令

选项

#1、安装:rpm -ivh <RPM包名全称>
#2、卸载:rpm -e <RPM包名>
#3、升级:rpm -Uvh <RPM包名>
#4、查询:
rpm -qa #查询系统中安装的
所有RPM软件包
[root@egon ~]#rpm -qa|grep ssh
#检索系统中已经安装的有关ssh的软件包
rpm -qa | grep php
#检索系统中已经安装有关php的软件包

rpm -q <RPM包名>	#查询指定软件包是否已安装
[root@egon ~]# rpm -q zip zip-3.0-11.el7.x86_64
[root@egon ~]#rpm -q openssh-7.4p1- 21.el7.x86_64

rpm -qi <RPM包名>	#查询系统中已安装包的描述信息

[root@egon ~]#rpm -qi rpm -q openssh-7.4p1- 21.el7.x86_64

rpm -ql <RPM包名>	#查询系统中已安装包里所包含的文件

[root@egon ~]#rpm -ql openssh-7.4p1- 21.el7.x86_64

rpm -qc <RPM包名>	#查询指定软件包的所有配置文件
[root@egon ~]# rpm -qc mariadb
/etc/my.cnf.d/client.cnf
[root@egon ~]#rpm -qc openssh-7.4p1- 21.el7.x86_64

rpm -qd <RPM包名>
装的帮助文档			# 查询某个包安

[root@egon ~]# rpm	
-qd	
zlib	
rpm -qf 文件路径件所属的软件包			#查询系统中指定文



[root@egon ~]# rpm -qf /usr/sbin/iptables


iptables-1.4.21-35.el7.x86_64


-p	# 在上述选项的基础上加选项-p,就可以查看尚未安装的rpm包信息

[root@localhost ~]# rpm -qip
/opt/Packages/iptables-1.4.21- 35.el7.x86_64.rpm [root@localhost ~]# rpm -qlp
/opt/Packages/iptables-1.4.21- 35.el7.x86_64.rpm [root@localhost ~]# rpm -qcp
/opt/Packages/iptables-1.4.21- 35.el7.x86_64.rpm [root@localhost ~]# rpm -qdp
/opt/Packages/iptables-1.4.21- 35.el7.x86_64.rpm

额外选项
--nomd5	# 不检验软件包的签名
--nodeps # 忽略依赖性安装软件,安装后软件有可
能无法使用,最好是解决依赖性后再安装
[root@localhost ~]# rpm -e dos2unix --
nodeps # 忽略依赖关系
--force # 强制安装软件包,只有安装和升级可以强
制执行

安装

#1、rpm包在本地
[root@egon ~]# mount /dev/sr0 /opt	#将光驱镜像挂在到/opt目录下
[root@egon ~]# rpm -ivh
/opt/Packages/iptables-1.4.21- 35.el7.x86_64.rpm
#rpm方式安装iptables-1.4.21-
35.el7.x86_64.rpm 软件包

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

安装与依赖性

[root@egon ~]# rpm -ivh
/opt/Packages/httpd-2.4.6- 88.el7.centos.x86_64.rpm
#rpm方式安装本地镜像中的httpd软件包
错误:依赖检测失败:
/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 ~]#

# 解决思路:安装提示的库,安装
[root@egon ~]# rpm -ivh /opt/Packages/apr- 1.4.8-3.el7_4.1.x86_64.rpm
#rpm安装依赖的相关软件包
[root@egon ~]# rpm -ivh /opt/Packages/apr- util-1.5.2-6.el7.x86_64.rpm
#rpm安装依赖的相关软件包
[root@egon ~]# rpm -ivh
/opt/Packages/httpd-tools-2.4.6- 88.el7.centos.x86_64.rpm
#rpm安装依赖的相关软件包

[root@egon ~]# yum search mime.types	# 查看到mime.types对应的依赖包为mailcap-。。。
[root@egon ~]# rpm -ivh
/opt/Packages/mailcap-2.1.41-
2.el7.noarch.rpm
#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%]

升级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

#rpm安装下载好的软件包

#3、再安装高版本,会报错
[root@egon ~]# rpm -ivh zabbix-agent-4.2.0- 1.el7.x86_64.rpm
#rpm安装下载好的软件包

#4、如果采用--force选项,那就是强制安装,会同时存在两个版本,该方案不可取
[root@egon ~]# rpm -qa |grep zabbix	#查询安装的zabbix软件包版本
zabbix-agent-3.0.9-1.el7.x86_64 [root@egon ~]#rpm -e zabbix-agent-3.0.9- 1.el7.x86_64
#卸载安装的zabbix软件包
[root@egon ~]# rpm -ivh zabbix-agent-4.2.0- 1.el7.x86_64.rpm --force
#强制安装高版本的zabbix-agent软件包
。。。安装成功。。。
[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
#卸载安装好的zabbix-agent-3.0.9-1.el7.x86_64
软件包

[root@egon ~]# rpm -e zabbix-agent-4.2.0- 1.el7.x86_64
#卸载已安装的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
#安装下载好的低版本zabbix软件包
[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
#再次查询安装的rpm软件包信息

练习安装如下软件包:

vsftpd
samba
nfs-utils
httpd
dhcp
postfix
php
lftp
dos2unix
unix2dos
tigervnc

三 yum管理RPM包

3.1 yum介绍

yum自动解决依赖关系

Yum(全称为 Yellow dog Updater, Modified)是
一个在Fedora和RedHat以及CentOS中的Shell前端软件
包管理器。基于RPM包管理,能够从指定的服务器自动下载
RPM包并且安装,可以自动处理依赖性关系,并且一次安装
所有依赖的软件包,无须繁琐地一次次下载、安装。

查看yum命令与配置文件

[root@localhost ~]# rpm -q yum #查询已安装
的yum软件包
yum-3.4.3-161.el7.centos.noarch
[root@localhost ~]# rpm -qc yum
#查询已安装的yum软件包的配置文件
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf

yum命令常用选项

常用选项说明:
#仓库
yum repolist
# 查询可用仓库
yum repolist all
#查看包括已启用或禁用的所有仓库状态
# 关闭与启用仓库:本质:都是在修改
repo文件中的enable的值 0 不启用 1 启用
#如果找不到yum-config-manager命令,需要安装
yum -y install yum-utils
yum-config-manager --disable
epel #关闭仓库epel
yum-config-manager --enable
epel #启用仓库epel
#查看
yum list
#列出可用仓库中所有的软件包
yum list | less yum grouplist
#列出可用仓库中的软件组

yum provides /usr/sbin/ifconfig
#查询命令所属的软件包,可以不加路径,只写命令名字

#与rpm -qf的区别在于yum provides后可以只跟命名名

#安装	yum install httpd httpd-tools
#加上-y选项可以变成非交互
yum groupinstall "开发工具" -y
#安装软件组,一个软件组中包含了多个软件包
yum groups install "开发工具" -y
#同上


#卸载		yum remove httpd httpd-tools http*	#卸载软件包
yum groupremove "开发工具" -y.
#卸载软件组
yum groups remove "开发工具" -y
#同上

#重装	yum reinstall httpd
#不小心删除了配置文件的时,可以reinstall一下

#更新	yum check-update
#检查可以更新的软件包

yum update -y
#更新所有软件包,包括内核,通常只在刚装完系统时执行

yum update httpd -y
#更新某个软件包




#缓存
yum makecache
#制作元数据缓存
yum clean all
#清理元数据缓存
vim /etc/yum.conf
#默认软件包下载安装后会自动删除

#设置keepcache=1 即开启了软件包缓存

#缓存目录为配置文件中指定的cachedir


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

yum history undo ID号
# 撤销执行过的历史命令




# 关于安装需要注意:
无论yum安装的软件来自何方,yum时刻以自己仓库中的
repodata存储的依赖关系为准,如果有多个仓库,就依次检索
#1、yum直接安装公网的rpm包, 会自动查找当前系统上已有的仓库解决依赖关系
yum install https://mirrors.aliyun.com/centos/7.9.2009/ os/x86_64/Packages/samba-4.10.16- 5.el7.x86_64.rpm

#2、Yum直接安装本地的rpm包,会自动查找当前系统上已有的仓库解决依赖关系
yum localinstall -y /mnt/Packages/httpd- 2.4.6-88.el7.centos.x86_64.rpm
yum localinstall /opt/Packages/screen- 4.1.0-0.26.20120314git3c2946.el7.x86_64.rpm

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

系统常见yum源

1.自定义的本地源
2.网络上的源头,如:base基础源、epel扩展源、与服务
相关的源(官网)

3.2 镜像文件作为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/
[root@localhost yum.repos.d]# vim
local.repo # 文件名自定义,必须以.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
[root@localhost ~]# yum provides httpd #
查询某个软件(可以是未安装的)是由哪个rpm包提供
5、软件包组安装、查询、卸载
3.2 使用开源yum源(网络源)
然后下载开源的yum源头:
例如阿里云的Base基础源
# yum reinstall
[root@egon ~]# rm -rf
/etc/httpd/conf/httpd.conf
[root@egon ~]# yum reinstall httpd -y &>
/dev/null
[root@egon ~]# 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@egon ~]# yum groupinstall "开发工具" -
y
[root@egon ~]# yum groupremove "开发工具" -y

3.2 使用开源yum源(网络源)

然后下载开源的yum源头: 例如阿里云的Base基础源

#mv CentOS-Base.repo CentOSBase.repo_default
#wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos7.repo

例如163的Base基础源

wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.163.com/.help/CentOS7-Base163.repo

例如红帽的epel扩展源

# 可以直接下载
[root@egon ~]# curl -o
/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo # 也可以安装一个软件包来生成
[root@egon ~]# yum install epel-release -y #

EPEL的全称叫 Extra Packages for Enterprise
Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。

RHEL以及他的衍生发行版如CentOS、Scientific
Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm
repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题。

例如nginx官网的软件包源

# 进入nginx官网->download->Pre-Built
Packages->Stable and mainline->RHEL/CentOS-
>编辑到本地
[root@egon yum.repos.d]# cat nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$r eleasever/$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
[root@egon yum.repos.d]# yum-config-manager
--enable nginx-mainline
[root@egon yum.repos.d]#yum install nginx

将Centos系统默认的源备份

[root@egon ~]# cd /etc/yum.repos.d/
[root@egon yum.repos.d]# mkdir bak
[root@egon yum.repos.d]# mv CentOS-* bak/
[root@egon yum.repos.d]# ls
bak CentOS-Base.repo epel.repo
local.repo nginx.repo
[root@egon yum.repos.d]#

3.3 自己制作本地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

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/$releasev
er # 指定软件安装包的缓存目录
keepcache=1 # 设置为1
debuglevel=2
# 缓存目录为:ls /var/cache/yum/x86_64/7/

基于软件包缓存,可以做成自己的yum源,以此来控制 各个服务的版本,通常的做法为

# 1、在测试环境中,在每个节点上都开启软件包缓存
# 2、在测试环境中,安装相同版本的操作系统,安装完毕后统一执行yum update -y
# 3、在测试环境中,部署完完你的架构,测试完毕
# 4、把测试环境中每台机器上缓存好的软件包安装包采集到一个文件下
[root@egon ~]# find
/var/cache/yum/x86_64/7/ -type f -name "*.rpm" | xargs -I {} mv {} /soft/

# 5、然后用createrepo命令制作好依赖关系,即
repodata数据库
# 6、然后在线上环境部署时,就用该本地源就好,不要轻易升级,不要滥用yum源,这样可以严格控制好各个服务的版本

3.4 自己制作本地yum源共享给别人

==================在服务端上执行如下操作
==================
# 1、环境准备
[root@egon ~]# systemctl stop firewalld
[root@egon ~]# systemctl disable firewalld
[root@egon ~]# setenforce 0
[root@egon ~]# sed -i
's#^SELINUX=.*#SELINUX=disabled#g'
/etc/selinux/config
# 2、安装ftp服务
[root@egon ~]# yum install vsftpd -y [root@egon ~]# systemctl start vsftpd [root@egon ~]# systemctl status vsftpd # 查看状态,确保开启
[root@egon ~]# systemctl enable vsftpd


# 3、采集软件包放到一个目录下
可以基于3.3的方式,也可以偷个懒直接用镜像里现成的, 毕竟是实验嘛,但无论何种方式,都一定要解决好依赖关系才能用来做yum源,本例就用现成的吧
[root@egon ~]# mkdir /var/ftp/centos7 [root@egon ~]# mount /dev/sr0
/var/ftp/centos7



# 或者拷贝	
[root@egon	~]#	mount	/dev/sr0 /opt
[root@egon	~]#	mkdir	/var/ftp/centos7

[root@egon ~]# find /opt/Packages/ -type f
-name "*.rpm" |xargs -I {} cp -rp {}
/var/ftp/centos7/


==================在客户端上执行如下操作
==================
# 1、环境准备

[root@egon	~]#	systemctl stop firewalld
[root@egon	~]#	systemctl disable firewalld
[root@egon	~]#	setenforce 0

[root@egon ~]# sed -i 's#^SELINUX=.*#SELINUX=disabled#g'
/etc/selinux/config
[root@egon ~]# ping -c 2 192.168.0.101	#
ping一下服务端的ip地址,保证网络畅通

# 2、在客户端配置网络yum源[root@egon yum.repos.d]# cd
/etc/yum.repos.d/
[root@egon yum.repos.d]# mkdir bak [root@egon yum.repos.d]# mv *.repo bak/ [root@egon yum.repos.d]# cat >> ftp.repo << EOF
>[ftp_repo]
>name = This is Ftp Share Repo
>baseurl = ftp://192.168.0.101/centos7
>enabled = 1
>gpgcheck = 0
>EOF
# 注意:客户端baseurl指向的文件夹无论是什么,在该文件夹的子目录一级必须有一个repodata数据库

3.5 yum的历史记录

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

3.6 拓展了解:签名检查机制

==RPM工具使用签名检查机制:==
[root@localhost ~]# rpm --import
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 # 导 入
centos公钥
[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-KEYCentOS-7 # 指定公钥文件
额外选项:
--nogpgcheck //不检查软件包的签名

四 源码包

1、官网下载,如nginx

# 浏览器下载
# 或者执行命令
wget http://nginx.org/download/nginx1.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 /usr/local/ [root@localhost ~]# cd /usr/local/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模块 添加strem模块 – 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@egon ~]#mkdir /soft	#创建一个/soft目录
[root@egon soft]# ln -s /usr/local/nginx/
/soft/nginx #将/usr/local/nginx/目录链
接到/soft/nginx
[root@egon ~]#useradd -s /sbin/nologin www
#创建一个禁止登录服务器的用户www
[root@egon ~]# /soft/nginx/sbin/nginx
#启动nginx服务
注意:现在百分之90,能用上的软件,都提供了rpm包. ---
>使用户可以使用yum直接安装使用.
测试
在本机浏览器上输入 http://虚拟机IP地址 访问虚拟
机NGINX服务。

总结编译安装=》三部曲

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

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

ps:有一些源码包是已经编译好的结果,下载后解压即 可使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值