linux包管理器rpm和dpkg的使用说明

  • linux包管理器rpm和dpkg的使用说明已关闭评论
  • 23 次浏览
  • A+
所属分类:linux技术
摘要

开源软件刚开始只提供打包好的源代码文件(例如:.tar.gz),用户需要自己使用编译器编译后才能使用。


软件包:
  • 开源软件刚开始只提供打包好的源代码文件(例如:.tar.gz),用户需要自己使用编译器编译后才能使用。

  • Debian诞生时,管理工具dpkg也就应运而生,可用来管理deb后缀的"包"文件

  • 后面后Red Hat才开发自己的rpm包管理系统

主流软件包管理器:
  • redhat:RPM Package Manager,管理rpm文件

  • debain: dpkg(debian package) 包管理器,管理deb文件

rpm 包管理器

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

  • 安装:-i

  • 升级:-U

  • 卸载:-e

  • 查询:-q

-h:  以#显示程序包管理执行进度  -v: verbose 
安装软件包

rpm {-i|--install} [install-options] PACKAGE_FILE…

注意:安装的时候要写软件包的路径

#安装选项 --test: 测试安装,但不真正执行安装,即dry run模式  --nodeps:忽略依赖关系  --replacepkgs | replacefiles  --nosignature: 不检查来源合法性  --nodigest:不检查包完整性 
软件包的升级和降级

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...

rpm {-F|--freshen} [install-options] PACKAGE_FILE...

upgrade和区别:

  • upgrade:安装有旧版程序包,则"升级",如果不存在旧版程序包,则"安装"

  • freshen:安装有旧版程序包,则"升级", 如果不存在旧版程序包,则不执行升级操作

安装选项: --oldpackage:降级  --force: 强制安装 

注意:
程序包升级不会覆盖配置文件,而是把新版本文件重命名(FILENAME.rpmnew)后保留。

包查询

rpm {-q|--query} [select-options] [query-options]

[select-options] -a:所有包(系统上安装了的)  -f:查看指定的文件由哪个程序包安装生成  -p rpmfile:针对尚未安装的程序包文件做查询操作  [query-options] -c:查询程序的配置文件  -d:查询程序的文档  -i:information  -l:查看指定的程序包安装后生成的所有文件  --scripts:程序包自带的脚本 
包卸载

rpm {-e|--erase} [option] PACKAGE_NAME ...

注意:

  • 当包卸载时,对应的配置文件不会删除, 以FILENAME.rpmsave形式保留

  • 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息

  • 卸载只需要写软件的名称,如果存在多个版本就要写全名

选项: --allmatches:卸载所有匹配的包(仅输个软件名即可,指示RPM卸载所有匹配的包,)  --test:卸载测试,如果存在依赖关系就会提示报错  -nodeps , 不检查依赖,强制删除(一般不推荐这样做) 
RPM的数据库:/var/lib/rpm

存放已安装的包名、文件列表、依赖关系、安装路径等

  • rpm包安装生成的信息都放在:/var/lib/rpm 这个文件中

  • 利用这个数据库就可以知道系统已经安装的rpm包和里面包含的文件、属性。

  • 安装和卸载软件都会首先检查这个数据库。

RPM数据库维护

重新建RPM数据库:rpm {--initdb|--rebuilddb}

initdb: 初始化,如果事先不存在数据库,则新建之,否则,不执行任何操作  rebuilddb:重建已安装的包头的数据库索引目录 

dpkg debian的包管理器

  • 安装:-i

  • 删除:-P

  • 查询:-l

-列出文件:-L

#安装包 dpkg -i package.deb   #删除包,不建议,不自动卸载依赖于它的包 dpkg -r package   #删除包(包括配置文件) dpkg -P package   #列出当前已安装的包,类似rpm -qa dpkg -l  #显示该包的简要说明 dpkg -l package   #列出该包的状态,包括详细信息,类似rpm –qi dpkg -s package   #列出该包中所包含的文件,类似rpm –ql  dpkg -L package   #搜索包含pattern的包,类似rpm –qf  dpkg -S <pattern>   #配置包,-a 使用,配置所有没有配置的软件包 dpkg --configure package   #列出 deb 包的内容,类似rpm –qpl  dpkg -c package.deb   #解开 deb 包的内容 dpkg --unpack package.deb