linux程序包管理
程序包:源代码 –> 目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–> 组织成一个或有限的几个包文件
程序包管理器:
debian –> dpkg 以“.deb”结尾
redhat –> rpm 以“.rpm”结尾
rpm:redhat package mamager –> rpm is package manager
rpm包命名格式:
name-VERSION-realease.arch.rpm
VERSION:major,minor,release
release:rpm包的发行号
arch:archetecture,i386,x86_64…
拆包:
主包:name-VERSION-realease.arch.rpm
支包:name-function-VERSION-realease.arch.rpm
rpm包的依赖关系:
有时安装某应用程序需要依赖于其他应用程序
前端工具:
自动解决安装程序包的依赖关系
例如:yum
yum
程序包管理前端工具:
yum:rhel系列系统上rpm包管理器的前端工具
apt-get(apt-cache):debian系统上deb包的前端管理工具
获取程序包途径:
1、系统发行版光盘或官方文件服务器(或镜像站点)
2、项目官方站点
3、第三方组织
1)EPEL
2)搜索引擎,pkgs.org | rpmfind.net | rpm.pbone.net
CentOS系统上rpm包的管理命令:
安装、升级、卸载、查询、校验和数据库维护
rpm [OPTION] [INSTALL_OPTION] PACKAGE_FILE
OPTION:
安装:-I | –install,与-v,-h联用。后跟文件名 à rpm –ivh PACKAGE_FILE
-v:显示详细信息
-vv:显示更详细信息(少用)
-h:显示进度条
升级:-U,升级或安装
-F,升级
–oldpackage,降级
–force,强制升级
卸载:-e,后跟包名
查询:-q
rpm –qa:查询所有安装包,常与grep联用
rpm –qf:后跟文件,查询该文件由哪个安装包生成
rpm –ql:后跟安装包,查询该安装包安装时生成那些文件
rpm –qi:后跟安装包,查询该安装包的详细信息
rpm –qc:后跟安装包,查询该安装包的详细信息
rpm –qd:后跟安装包,查询该安装包生成的文档
rpm –q –provides:后跟安装包,列出程序包提供的CAPABILITY
rpm –q –whatprovides:后跟安装包,查询指定CAPABILITY由哪个程序包提供
rpm –q –whatrequires:后跟安装包,查询指定CAPABILITY被哪个程序包依赖
rpm –qp:查看未安装的程序包信息,与i,l,c等选项联用
rpm –qpi:查询该安装包的详细信息
rpm –qpl:查询该安装包安装时生成那些文件
rpm –qpc:查询该安装包的详细信息
校验:-V
数据库维护:–builddb –initdb
INSTALL_OPTION:
-v:显示详细信息
-h:显示进度条
–test:测试安装,用来检测程序包的依赖与冲突关系
–nodeps:忽略依赖关系安装
–replacepkgs:重新安装(不能还原修改的配置文件,如需还原,需将配置文件删除先)
–nosignature:不检查包签名与合法性
–nodigest:不检查包完整性信息
–noscripts:不允许脚本
rpm包来源的合法性与完整性验证:
导入密钥:rpm –import RPM-GPG-KEY
手动验证:rpm –k PACKAGE_FILE
数据库重建:
rpm管理器数据库路径:
/var/lib/rpm
查询操作是基于此数据库进行的
命令:
rpm –initdb:无数据时新建,有数据则不执行操作
rpm –rebuilddb:重新构建,重置数据库
rpm [–initdb|–rebuilddb] –dbpath=/PATH/TO/ 指定新建数据库路径
程序包管理前端工具–YUM
yum:yellowdog update modifier
yum工具为CS架构
yum仓库(yum repository):yum repo
存储了众多rpm包,以及包的相关元数据文件
(放置于特定目录下:ropodata所在路径)
文件服务器:
ftp://
http://
file:///
yum客户端:
配置文件
主配置文件:/etc/yum.conf,为所有仓库提供公共配置
仓库配置文件:/etc/yum.repos.d/*.conf,为仓库指向提供配置信息
配置文件定义(文本文件)
[repository ID]
name=
baseurl=URL://(可指向多处)路径为repodata所在路径
enabled={0|1}(默认为1)
gpgcheck={0|1}
gpgkey=URL(指向密钥的路径)
获取当前yum源并显示信息:
yum repolist [all|enanle|disable]
all:显示全部
enable:显示可用
disable:显示不可用
显示程序包:
yum list [all|available|installed|updates] (支持glob通配符)
all:所有安装包
available:可用安装包
installed:已安装程序包
updates:可升级程序包
安装程序包:
yum install PACKAGE 安装程序包
yum reinstall PACKAGE 重新安装程序包
yum命令行选项:
–nogpgcheck:不进行gpg校验
-y:自动回答“yes”
-q:静默模式
升级程序包:
yum update PACKAGE
卸载程序包:
yum remove PACKAGE (会卸载程序包相关的依赖程序包)
查看程序包信息:
yum info PACKAGE
清理本地缓存
yum clean
如何用光盘当做本地yum仓库:
1)挂载光盘至某目录
# mount –r –t
2)创建配置文件
[CentOS 7]
name=
baseurl=
gpgcheck=
enabled=
如何创建yum仓库:
1)createrepo <directory> (directory为rpm包所在目录)
2)定义配置文件
yum的repo配置文件中可以的变量:
$releasever:当前OS发行版的主版本号
$arch:平台
$basearch:基础平台
http://mirrors.magedu.com/centos/$release/$basrarch/OS
原创文章,作者:Mr.Lee,如若转载,请注明出处:http://www.178linux.com/38795
评论列表(1条)
软件包管理器是我们必须掌握的基本技能,需要多加练习,熟练掌握。