Linux学习笔记----第八章

1.软件包和包管理器

1.1软件包

  • .tar.gz打包的源码文件

  • Debain的dpkg包管理软件,.deb后缀的软件包

  • RedHat的rpm包管理系统,.rpm后缀的软件包

1.2软件包中的文件分类

  • 二进制文件

  • 库文件

  • 配置文件

  • 帮助文件

#利用cpio工具查看rpm包文件列表
rpm2cpio 包文件|cpio –itv 				#预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 		#释放包内文件

1.3程序包管理器

主流的程序包管理器:

  • redhat:rpm文件, rpm 包管理器,rpm:Redhat Package Manager,RPM Package Manager

  • debian:deb文件, dpkg 包管理器

1.4包命名

源代码打包文件命名:name-VERSION.tar.gz|bz2|xz,其中VERSION为major(主版本号).minor(次版本号).release(修正版本号),比如,nginx-1.18.0.tar.gz

rpm包命名:name-VERSION-release.arch.rpm,其中VERSION为major(主版本号).minor(次版本号).release(修正版本号),release为包的发布号,用于标识同一版本的不同发布,arch为目标操作系统的体系结构,常见的arch有x86: i386, i486, i586, i686,x86_64: x64, x86_64, amd64,powerpc: ppc,跟平台无关:noarch

1.5包的依赖

软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包,安装软件包时,会因为缺少依赖的包,而导致安装包失败。

解决依赖包管理工具:

  • yum:rpm包管理器的前端工具

  • dnf:Fedora 18+ rpm包管理器前端管理工具,CentOS 8 版代替 yum

  • apt:deb包管理器前端工具

  • zypper:suse上的rpm前端管理工具

1.6获取程序包的途径

软件包需要事先将源码进行编译后打包形成,获取包的途径如下:

CentOS镜像:

Download - The CentOS Project

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

Index of /

欢迎访问网易开源镜像站

Ubuntu 镜像:

Index of /releases

Ubuntu Releases

Fedora-EPEL:Extra Packages for Enterprise Linux

Extra Packages for Enterprise Linux (EPEL) :: Fedora Docs

epel安装包下载_开源镜像站-阿里云

Rpmforge:RHEL推荐,包很全,即将关闭

RepoForge Project

Community Enterprise Linux Repository:支持最新的内核和硬件相关包

start [ELRepo Wiki]

软件项目官方站点

Index of /yum/10.4/centos8-amd64/rpms/

Index of /232905/yum/mysql-8.0-community/el/8/x86_64

搜索引擎,注意:第三方包建议要检查其合法性,来源合法性,程序包的完整性

http://pkgs.org

http://rpmfifind.net

RPM Search

https://sourceforge.net/

自己制作,将源码文件,利用工具,如:rpmbuild,fpm等工具制作成rpm包文件

2.包管理器rpm

CentOS系统上使用rpm命令管理程序包

功能:安装、卸载、升级、查询、校验、数据库维护

2.1安装

#常用组合
rpm -ivh PACKAGE_FILE ...

2.2升级或降级

#常用组合
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...

2.3包查询

#常用查询组合
-qi PACKAGE			#information
-qf FILE			#查看指定的文件由哪个程序包安装生成
-qc PACKAGE			#查询程序的配置文件
-ql PACKAGE			#查看指定的程序包安装后生成的所有文件
-qd PACKAGE			#查询程序的文档
-qpi PACKAGE_FILE	
-qpl PACKAGE_FILE
-qa

2.4包卸载

#常用组合
rpm -evh

 2.5包校验

#检查包的完整性和签名
rpm -K|checksig rpmfile
    
#检查包中的文件是否和当初安装时有所变化
rpm -V rpmfile

3.yum和dnf

CentOS使用 yum, dnf 解决 rpm 的包依赖关系

YUM: Yellowdog Update Modififier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包

CentOS 8 用dnf 代替了yum ,不过保留了和yum的兼容性,配置也是通用的

3.1工作原理

yum/dnf 是基于C/S 模式

  • yum 服务器存放rpm包和相关包的元数据库

  • yum 客户端访问yum服务器进行安装或查询等

yum 实现过程:

先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

3.2yum客户端配置

#yum客户端配置文件
/etc/yum.conf 				#为所有仓库提供公共配置
/etc/yum.repos.d/*.repo 	#为每个仓库的提供配置文件


/etc/yum.conf
[main]
gpgcheck=1 							#安装包前要做包的合法和完整性校验
installonly_limit=3 				#同时可以安装3个包,最小值为2,如设为0或1,为不限制
clean_requirements_on_remove=True 	#删除包时,是否将不再使用的包删除
best=True 							#升级时,自动选择安装最新版,即使缺少包的依赖
skip_if_unavailable=False 			#跳过不可用的

/etc/yum.repos.d/*.repo
[repositoryID]
name=Some name for this repository 		#仓库名称
baseurl=url://path/to/repository/ 		#仓库地址
mirrorlist=http://list/ 				#仓库地址列表,在这里写了多个 baseurl指向的地址
enabled={1|0} 							#是否启用,默认值为1,启用
gpgcheck={1|0} 							#是否对包进行校验,默认值为1
gpgkey={URL|file://FILENAME} 			#校验key的地址
enablegroups={1|0} 						#是否启用yum group,默认值为 1
failovermethod={roundrobin|priority} 	#有多个baseurl,此项决定访问规则,roundrobin 随机,priority:按顺序访问
cost=1000 								#开销,或者是成本,YUM程序会根据此值来决定优先访问哪个源,默认为1000
metadata_expire=6h 						#rocky-9中新增配置,metadata 过期时间
countme=1 								#rocky-9中新增配置,默认值false,附加在mirrorlist之后,便于仓库收集客户端信息


#yum-config-manager,安装来自yum-utils包
#常用选项
--add-repo=URL 			#添加repo源
--disable repoid 		#禁用源
--enable repoid 		#启用源

3.3yum命令

yum [options] COMMAND
#常用选项
-c file|--config file 							#指定配置文件,默认使用/etc/yum.conf
-v|--verbose 									#显示详细信息
-b|--best 										#尝试在可用包中寻找最匹配的版本
-y|--assumeyes 									#自动回答为 yes
--nogpgcheck 									#不进行包校验
--repo repoid|--repoid repoid 					#指定repo源
--enablerepo repoid 							#临时启用repo源,可用通配符
--disablerepo repoid 							#临时禁用repo源,可用通配符
--nodocs 										#不安装文档
--skip-broken 									#跳过有问题的包
--enable 										#启用源,配合 configmanager
--disable 										#禁用源,配合 configmanager
-x package|--exclude package|--excludepkgs package #排除指定包,可用通配符
--downloadonly 									#只下载,不安装
    
#常用子命令
autoremove 										#卸载包,同时卸载依赖
check-update 									#检查可用更新
clean 											#清除本地缓存
downgrade 										#包降级
group 											#包组相关
help 											#显示帮助信息
history 										#显示history
info 											#显示包相关信息
install 										#包安装
list 											#列出所有包
makecache 										#重建缓存
reinstall 										#重装
remove 											#卸载
repolist 										#显示或解析repo源
search 											#包搜索,包括包名和描述
3.3.1显示仓库列表
yum repolist [options]
#常用选项
-v|--verbose 					#显示详细信息
--repo repoid|--repoid repoid 	#指定repo源
--all 							#显示所有源
--enabled 						#所有enabled状态的源,默认项
--disabled 						#所有disabled 的源
3.3.2显示程序包
yum list [options] [PACKAGE [PACKAGE ...]
#常用选项
--all 				#显示所有包,包括己安装的和repo源中的可用包
--available 		#所有可用包
--installed 		#所有己安装的包
--extras 			#所有额外包
--updates 			#所有可更新的包
#上述选项可以替换成对应的 all,installed 这种子命令,但要注意位置
--showduplicates	#相同的包,显示所有版本
3.3.3安装程序包
yum install [options] PACKAGE [...]
yum reinstall [options] PACKAGE [...]
#常用选项
--installroot path 					#指定安装目录
--downloadonly 						#只下载,不安装
--downloaddir path|--destdir path 	#指定下载目录,如果下载目录不存在,则自动创建
3.3.4卸载程序包
yum remove [options] PACKAGE [...]
yum erase [options] PACKAGE [...]
3.3.5升级和降级
yum update [options] PACKAGE [...] 		#升级
yum downgrade [options] PACKAGE [...] 	#降级
yum check-update 						#检查可用升级
3.3.6查询
yum info [options] PACKAGE [...] 	#查看程序包的 information 信息
yum provides [options] PROVIDE 		#查看文件是由哪个包提供
yum search [options] KEYWORD 		#根据关健字搜索,范围包括包名和描述信息
yum deplist [options] PACKAGE [...] #查询包的依赖
3.3.7仓库缓存
#缓存目录为 /var/cache/dnf/ ( /var/cache/yum/ )
yum clean [options] {metadata,packages,dbcache,expire-cache,all} 	#清空缓存
yum makecache 														#构建缓存

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值