基础知识
软件包分类
windows软件包类型
.exe
.msi
Linux软件包类型
redhat
.rpm
debian
.deb
alpine
.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.rpm
nginx 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 redis
yum源在哪
/etc/yum.repos.d/*.repo
yum源的配置文件详解
[仓库名称]
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/backup
3)下载阿里云国内基本源
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.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
yum 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 /data
3.复制rpm包
cp /mnt/Packages/* /data
4.安装元数据生成工具
yum install -y createrepo
5.生成软件包元数据
createrepo /data
6.将自己的yum源注销
cd /etc/yum.repos.d/
rename .repo .bak *.repo
7.编写配置文件
vim /etc/yum.repos.d/test.repo
[test]
name=test repo
baseurl=file:///data
enable=1
gpgcheck=0
8.查看软件包仓库
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.gz
2)解压
tar xf nginx-1.24.0.tar.gz
3)配置
yum install -y make cmake gcc zlib-devel pcre-devel
mkdir -p /app
cd nginx-1.24.0
./configure --prefix=/app/nginx-1.24
4)编译
make
5)编译安装
make install
验证
临时关闭selinux
selinux 会影响到服务的运行
setenforce 0
#关闭防火墙
systemctl stop firewalld
/app/nginx-1.24/sbin/nginx
浏览器->10.0.0.100