包管理器
RPM管理
rpm命令
[root@test ~]# rpm --help
Usage: rpm [OPTION...]
常用使用方式:
rpm -ivh Package_file.rpm
-i : Install 安装
-v :打印调试信息
-h : 包档如果没有破解,则打印50个破折号
常用参数:
--test : 测试安装,但不真正执行安装过程
--nodeps : 忽略依赖关系
--replacepkgs : 重新安装
--nofiledigest : 不检查文件的来源完整性
--nodigest : 忽略包的完整性校验
--nosignature : 不检查包的来源合法性
--noscripts: 不执行程序包脚本片段
-
升级:
常用使用方式:
rpm -Uvh package_file.rpm
rpm -Fvh package_file.rpm-U --upgrade=+: 升级软件包
-F, --freshen=+ : 升级软件包
- 查询:
rpm -q [query-options]
-a, --all 查询所有安装包
-f, --file 查询安装包及其相关文件
--whatprovides : 查询指定包由哪一个包所提供
--whatrequires : 查询指定包由哪个包所依赖
--changelog : 查询rpm包的changelog
-c : 查询软件包的配置文件
-d : 查询软件包的文档
-i : 查询软件包的信息
-l : 查看指定软件包安装后生成的所有文件
--scripts: 查询程序包自带的脚本片段
-R : 查询指定的程序包所依赖的
--provides: 列出指定程序包所提供的
-
卸载:
常用使用方式:
rpm -e package_file.rpm-e : 卸载软件包
- 校验:
常用使用方式:
rpm -V package_file.rpm
Verify options (with -V or --verify):
--nofiledigest 不验证文件的完整性
--nofiles 不验证包中的文件
--nodeps 不验证包的依赖
--noscript 不验证包中执行片段
YUM包管理
rpm包存在依赖;YUM管理能够很好的解决依赖关系(YUM包管理能够自动安装该
包的所有依赖包)
- 实例:
[root@test ~]# rpm -q --whatrequires net-tools
[root@test ~]# rpm -q --whatrequires python
rpm -qi net-tools
rpm -ql net-tools
rpm -qd net-tools
rpm -qa | more
rpm -qc chrony-3.2-2.el7.x86_64
YUM管理:
配置文件:
/etc/yum.conf : 为所有仓库提供公共配置
/etc/yum.repos.d/*.repo : 为仓库的指定提供配置
仓库:
远程仓库: 阿里镜像仓库 163 ...
本地仓库: 自建的镜像仓库
仓库指定定义:
[root@test ~]# cat /etc/yum.repos.d/CentOS-Base.repo
[base] #仓库ID
name=CentOS-$releasever - Base # 仓库名称
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
# 镜像列表
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ # 仓库的URL(远程 本地)
远程: http ftp
本地: file:///
gpgcheck=1 # gpg密钥验证 : 1: 开启验证 0: 不开启验证(验证包的合法性)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 # 指定gpg密钥文件的路径
enabled=0 # 是否启用这个仓库 0:启用 1: 不启用
常见变量说明:
$releasever : 当前OS发行版本的主板本号
$arch: 平台
$basearch : 基础平台
常用命令:
[root@test ~]# yum --help
Loaded plugins: fastestmirror
Usage: yum [options] COMMAND
-
安装软件包:
yum install package_file… -
显示仓库列表:
yum repolist [all|enabled|disabled] 显示所有仓库列表;显示启用的仓库列表;显示禁用的仓库列表 -
显示软件包:
yum list [all | glo_exp1 …]
yum list available [glo_exp1…] -
升级软件包:
yum update [package_file…] -
降级软件包:
yum downgrade [package_file…] -
检查可用升级:
yum check-udate -
卸载软件包:
yum remove | erase package_file… -
查看软件包信息:
yum info package_file… -
查看指定的特性(可以是某个文件)是由哪个软件包所提供的
yum provides | whatprovides feature…
实例:
[root@test ~]# yum whatprovides netstat -
构建缓存:
yum makecache -
清理缓存
yum clean -
搜索
yum search string…
以指定的关键字搜索软件包名及其summary信息 -
查看yum相关历史:
yum history [info|list|…]
常用参数:
--nogpgcheck: 禁止进行gpg check
-y: 自动回答为"yes"
-q: 静默模式
--disablerepo=repoID : 临时禁用此处指定的repo
--enablerepo=repoID : 临时启用此处指定的repo
--noplugins: 禁止所有插件
包仓库管理
远程仓库
远程仓库: 阿里镜像仓库 网易 …
CentOS仓库: 包含基本使用的所有软件包
EPEL仓库: 补充基本仓库中的软件包
-
Centos仓库配置:
http://tel.mirrors.163.com/.help/centos.html -
EPEL仓库配置:
https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.7bf81b110F7hDy
仓库配置步骤
- 备份
- 下载, 在/etc/yum.repo.d/下配置好相关文件
- 清除-生成缓存
本地仓库配置(使用光盘)
- 备份
[root@test ~]# mv /etc/yum.repos.d/* /mnt/
- 挂载本地光盘
[root@test ~]# mkdir /media/cdrom
[root@test ~]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
- 配置文件
[root@test ~]# cat /etc/yum.repos.d/CentOS-7.repo
[centos]
name=centos-7
baseurl=file:///media/cdrom # 还可以使用ftp http;如果是在本地话需要配置ftp服务和httpd服务
gpgcheck=0
enabled=1
- 生成缓存并查看仓库列表
[root@test ~]# yum clean all
[root@test ~]# yum makecache
[root@test ~]# yum repolist
关于本地仓库的自建(同步远程仓库的软件包到本地来)
备份源文件,编辑新文件
[root@node1 ~]# mv /etc/yum.repos.d/CentOS-Base.repo{,.bak}
[root@node1 ~]# cat /etc/yum.repos.d/CentOS-Base.repo
[centos7]
name=Centos-7
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enable=1
gpgcheck=0
同步源 : reposync 命令可以去同步远程仓库中的软件包
[root@node1 ~]# reposync --repoid=centos7
生成repodata
[root@node1 ~]# createrepo centos7
验证并生成缓存
[root@node1 ~]# yum repolist
[root@node1 ~]# yum makecache
[root@node1 ~]# yum repolist
[root@node1 ~]# yum makecache
如果添加或者删除了个人的rpm包,不需要再次重新create,浪费时间,只需要–update就可以了
[root@node1 ~]# createrepo --update ./
以上步骤: 将远程仓库的软件包下载到本地,然后生成仓库配置文件;这样的话,我们可以拿着这些软件包再次构建本地仓库,这样可以提升安装速度,另一个获取更多的软件包
日常使用的话:
建议: 使用远程仓库(centos和epel)就够用了
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
yum repolist