系统学习----包管理工具和包仓库管理

包管理器

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

仓库配置步骤

  1. 备份
  2. 下载, 在/etc/yum.repo.d/下配置好相关文件
  3. 清除-生成缓存

本地仓库配置(使用光盘)

  1. 备份
[root@test ~]# mv /etc/yum.repos.d/* /mnt/
  1. 挂载本地光盘
[root@test ~]# mkdir /media/cdrom
[root@test ~]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
  1. 配置文件
[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
  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

发布了22 篇原创文章 · 获赞 3 · 访问量 1342

猜你喜欢

转载自blog.csdn.net/weixin_46097280/article/details/104317914