基础知识
软件包分类
windows软件包类型.exe .msi Linux软件包类型redhat .rpmdebian .debalpine.apk二进制包由源代码编译完成后的产物,开箱即用特点:1.方便使用2.方便迁移,升级源码包源代码,我们程序的最初是的产物定制服务,一切自定义 如何获取软件包
1.光盘 镜像文件
2.线上镜像站 仓库(公共)developer.aliyun.com 阿里开源镜像站mirrors.tuna.tsinghua.edu.cn 清华大学开源镜像站mirrors.pku.edu.cn 北京大学开源镜像mirrors.huaweicloud.com 华为云开源镜像站
3.第三方软件包的仓库(自己的软件)
4.线下仓库公司内部自建的获取软件包
1.通过光盘去获取软件包
/dev/cdrom 光盘设备(链接文件)
/dev/sr0 光盘设备 mount /dev/cdrom /mnt
ls /mnt/Packages
rpm
基础概念
什么是rpm包
早期 redhat package manager rpm package manager
负责软件的安装 升级 卸载 查询
问题:
软件包之间存在依赖关系
安装A时需要B 安装B时又需要C
安装-i install -v 详细信息-h 进度条--force 强制--nodeps 跳过依赖组合使用: -ivh
例1:安装zsh
# rpm -ivh /mnt/Packages/zsh-5.0.2-34.el7.x86_64.rpm
例2:安装vsftp
# rpm -ivh /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm
例3:重新安装vsftp
# rpm -ivh --force /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm
例4:安装samba
# rpm -ivh --nodeps /mnt/Packages/samba-4.10.4-10.el7.x86_64.rpm 卸载-e 卸载
# rpm -e vsftpd升级-U 升级
分别下载nginx-1.18 1.20
nginx 1.18
# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpmnginx 1.20
# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
安装nginx 1.18
# rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
升级
# rpm -Uvh nginx-1.20.0-1.el7.ngx.x86_64.rpm
降级
# rpm -Uvh --force nginx-1.18.0-2.el7.ngx.x86_64.rpm查询-q 查看指定软件包是否安装-qa 查看系统中已安装的所有RPM软件包列表-qi 查看已安装软件的详细信息-ql 查询已安装软件包所安装的目录、文件列表-qc 查询已安装软件包的配置文件-qd 查询已安装软件包的帮助文档-qf 查询文件或目录属于哪个RPM软件-qip 查询未安装的rpm包详细信息-qlp 查询未安装的软件包会产生哪些文件
例1:查看zsh是否已经安装
# rpm -q zsh
# rpm -qa |grep zsh
例2:查看zsh安装软件的详细信息
# rpm -qi zsh
例3:查看zsh软件所安装的目录以及文件列表
# rpm -ql tree
例4:查看zsh软件包的配置文件
# rpm -qc zsh
例5:查看/目录来源于哪个软件包
# rpm -qf /
例6:查看vsftp rpm包的详细信息
# rpm -qip /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm
例7:查看vsftp的rpm会产生那些文件
# rpm -qlp /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm
yum
基础概念
yum软件包管理工具
yum 是redhat 以及 centos 的软件包管理器,他可以通过互联网下载.rpm包,进行安装,并且可以解决rpm之间的依赖关系,无需一直下载以及安装,yum生产环境中的最佳实践yum源
安装更新 软件或者系统需要去下载rpm,从软件包仓库中来yum源的分类
官方源 基本源由各种linux不同的发行版本的厂商或者社区所提供
社区源由各种不同的社区所提供的软件包仓库
EPEL源 扩展源第三方源提供额外的软件包以及工具 主要为企业提供
第三方源由不同的app 开发者 开发商所提供的软件包仓库
中间件 nginx mysql redisyum源在哪
/etc/yum.repos.d/*.repoyum源的配置文件详解
[仓库名称]
name=仓库的描述信息
# mirrorlist=
baseurl= 指定软件包仓库的URL路径
# 指定软件包仓库的三种方式:
# file:// 指定本地rpm包仓库(rpm必须要存在于当前的操作系统中)
# ftp:// ftp文件传输协议 指定局域网或者公共网络的FTP服务器文件仓库
# http:// https:// 超文本传输协议 互联网上的软件包仓库URL路径
gpgcheck= #秘钥校验 验证软件包的完整性 有权限能够访问该软件包 默认不开启 0关闭 1 开启
gpgkey= #指定密钥
enable= #仓库的大门 0关闭 1开门 默认开启yum的配置
例1:更换国内基本源 (阿里云)
1)浏览线上镜像站 阿里云线上镜像站
2)备份官方源
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repo.d/*.repo /etc/yum.repos.d/backup3)下载阿里云国内基本源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或者
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.reposed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repoyum repolist #查看软件包仓库 更换epel源
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
或者
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo第三方源
配置nginx的yum源
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enable=1
查询
provides 根据文件目录以及命令查询该软件包名称
list 软件包列表
repolist 软件仓库列表
info 查询软件包的详细信息
search 通过字段查询软件包列表信息
grouplist 查看软件包组
例1:查看vim命令属于哪个软件包
# yum provides vim
例2:查看软件包列表
# yum list
例3:查看软件包仓库
# yum repolist
例4:查询nginx的软件包详细信息
# yum info nginx安装
install 安装yum 安装的整体流程yum install -y vim 1)加载软件仓库的元数据信息 (如果已经缓存过了会跳过)将元数据下载至本地进行缓存2)解析软件包之间的依赖关系3)生成一个列表显示安装的软件包以及依赖包4)确认是否安装软件包 y /d /n 5)先下载rpm至本地6)安装软件包7)安装完成localinstall 本地安装reinstall 重新安装groupinstall 安装软件包组卸载
remove
erase 软件包及其依赖版本更新
yum update
yum install -y nginx-1.20.0
更新nginx-1.24.0
yum update nginx
软件包的更新
yum install 默认就会安装最新版本 如果软件包已经安装就会进行更新版本回退
yum downgrade历史
yum history undo ID 撤回此次操作redo ID 重新执行此次操作缓存
缓存所存在的目录
/var/cache/yum无需再去进行元数据的读取
makecache 生成元数据缓存
clean all 清除元数据缓存获取rpm包
--downloaddir #指定软件包下载目录
--downloadonly #只下载下载nginx的rpm包
yum install -y nginx --downloadonly
yum install -y nginx --downloadonly --downloaddir=.
构建内网仓库
1.挂载光盘镜像文件获取软件包
mount /dev/cdrom /mnt 2.准备存放rpm包的目录
mkdir -p /data3.复制rpm包
cp /mnt/Packages/* /data4.安装元数据生成工具
yum install -y createrepo5.生成软件包元数据
createrepo /data6.将自己的yum源注销
cd /etc/yum.repos.d/
rename .repo .bak *.repo7.编写配置文件
vim /etc/yum.repos.d/test.repo
[test]
name=test repo
baseurl=file:///data
enable=1
gpgcheck=08.查看软件包仓库
yum repolist下载tree
yum install -y tree
源码包安装实例
基础概念
什么是源码包
源代码,没有通过编译工具进行编译的源代码为什么要学习源码包
1.部分软件官网只提供了源码包安装 需要自行安装编译
2.部分软件的最新版本以及最新的特性并未及时更新rpm包源码包的优缺点
1.可以自行修改源代码
2.可以定制需要的相关功能
3.新版软件优先更新源码
4.缺点是: 1) 相对yum安装软件会复杂很多。2) 标准化实施困难,自动化就无法落地源码包应用场景
1.定制化服务
2.都可以安装在各种不同的操作系统中
3.编译完成后 便于管理 升级 以及在相同平台中迁移
例1:安装nginx
1)下源码包
wget https://nginx.org/download/nginx-1.24.0.tar.gz2)解压
tar xf nginx-1.24.0.tar.gz3)配置
yum install -y make cmake gcc zlib-devel pcre-devel
mkdir -p /app
cd nginx-1.24.0
./configure --prefix=/app/nginx-1.244)编译
make 5)编译安装
make install 验证
临时关闭selinux
selinux 会影响到服务的运行
setenforce 0#关闭防火墙
systemctl stop firewalld/app/nginx-1.24/sbin/nginx浏览器->10.0.0.100