一、Linux中的三种安装软件方式区别:

1、rpm:安装rpm包时,如有关系依赖包,需要自己去解决依赖关系
2、yum:可以自动解决依赖关系,可以配置多个资源仓库
3、编译安装:可以指定安装路径,根据自己需求进行定制

二、rpm安装

1、rpm(Red-Hat Package Manager)
由Red Hat公司提出,被众多Linux发行版所采用,建立统一的数据文件,详细记录软件包的安装,卸载等变化信息,能够自动分析软件包的依赖关系

2、RPM软件包

软件素材参考:http://rpmfind.net

一般命名格式:

rpm安装keepalived RPM安装方式_yum

3.查询已经安装的RPM包的信息
格式:rpm -q [子选项] 软件名
用法:
-qa:查询系统中已安装的所有rpm软件包的列表
-qi:查询指定软件的详情信息
-ql:查询指定软件包所安装的目录,文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件

4.查询文件/目录属于哪个rpm软件
格式:rpm -qf 文件或目录名

[root@swarm-manger ~]# rpm -qf /bin/python
python-2.7.5-90.el7.x86_64

5、查询未安装的RPM包文件
格式:rpm -qp[ 子选项 ] RPM包文件
用法:结合不同的子选项完成不同的查询
-qpi:通过查询.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录,文件列表
-qpc:查看.rpm安装包包含的配置文件列表
-qpd:查看.rpm安装包内文档文件列表

6、安装或升级RPM包
格式:rpm [ 选项 ] RPM包文件
用法:不同选项适用于不同的情况
-i: 安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未安装,则进行安装
-F:更新某个rpm软件,若原本未安装,则放弃安装

7、卸载指定的RPM软件
格式:rpm -e 软件名

8、RPM数据库:/var/lib/rpm目录下
故障原因
非正常的关机、误删运行中的程序文件
RPM数据文件被误写或删除
当RPM数据库被删除时,需要进行数据库重建
格式:rpm --rebuildddb 或者 rpm --initdb

–reinstall(重新安装,把以前的覆盖)
–force(强制安装,如有解决依赖包,则安装了不能使用)

三、yum安装

1、yum
yum配置文件:/etc/yum.conf
仓库配置文件目录:/etc/yum.repos.d
repo文件是yum找到安装安装镜像的位置,可以自己配置
yum的缓存目录:/var/cache/yum
yum的日志文件:/var/log/yum.log

2、相关命令
yum install 软件名(安装软件)
yum remove 软件名(移除该软件以及相应的关系依赖包,谨慎使用,会导致其他命令也用不了)
yum update(全新更新)
yum reinstall 软件名(重新安装)
yum list (查看所有的软件)
yum search 软件名(查看该软件是否安装)
yum info 软件名(查看该软件信息)
yum repolist all(查询哪些源可以使用,哪些是禁用的)
yum provides 命令名(查询某个命令是通过哪个软件安装的)
yum clean all (清空缓存)
yum makecache (将安装包进行缓存)

3、只下载不安装
下载插件:yum install yum-plugin-downloadonly
下载软件 (下载好的就存放在缓存之下):yum install --downloadonly 软件名

四、编译安装

二进制安装:已经编译好的,解压就能用,节省了编译的过程

编译安装三部曲:
./configure
make
make install

一键安装编译部署nginx的脚本

#!/bin/bash

# 解决依赖关系
yum install gcc pcre-devel openssl-devel -y

# 下载nginx安装包
curl -O http://nginx.org/download/nginx-1.19.2.tar.gz

# 解压
tar -xf nginx-1.19.2.tar.gz

# 建立一个用户
useradd mynginx
echo "123456" |passwd mynginx --stdin

cd nginx-1.19.2

# 编译前的配置
./configure --prefix=/usr/local/nginx --user=mynginx --group=mynginx --with-threads --with-http_ssl_module --with-http_realip_module --with-stream  --with-http_stub_status_module

# 编译和编译安装
make && make install

# 修改环境变量PATH
echo "PATH=$PATH:/usr/local/nginx/sbin" >> /etc/bashrc

# 关闭防火墙和selinux
service firewalld stop
systemctl disable firewalld
setenforce 0
sed -i '/^SELINUX/ s/enforcing/disabled' /etc/sysconfig/selinux

# 开启nginx服务
nginx