RPM与DPKG
阅读数:485 评论数:0
跳转到新版页面分类
Linux
正文
一、概述
目前Linux软件安装方式最常见的有两种:
1、dpkg
这个机制最早由Debian社区所开发,包括Ubuntu。
2、rpm
这个机制由Red Hat开发,包括Fedora、Centos、SuSE等 。
不论是dpkg还是rpm,都会有软件属性依赖的问题,所以相应的这些机制都有“在线升级”机制,来解决属性依赖。rpm对应yum,dpkg对应apt-get。
3、ubuntu和debian有什么不同?
(1)ubuntu和debian默认使用apt来管理系统中的应用程序,也都支持dpkg命令来安装deb包。
(2)ubuntu是基于debian的发行版。
(3)debian是一个真正的社区项目,ubuntu由Canonical提供支持。
(4)linux只有少数几个发行版是从头开始创建的,包含debian、arch、red hat,它们不源自任何其他发行版。ubuntu源自debian,共享来自debian存储库的大量软件包和库。
二、rpm与srpm
rpm全称是RedHat Package Manager,最大的特点是你要安装的软件先编译过,并且打包成为rpm机制的安装包,通过包装好的软件里头默认的数据库记录这个软件要安装的时候必须具备的依赖属性软件,当安装在你的Linux主机时,rpm会先依照软件里头的数据查询Linux主机信依赖属性软件是否满足,若满足则安装,否则不进行安装。安装的软件信息写入rpm的数据库中,以便未来查询、验证与反安装。
srpm是source rpm的意思,也就是rpm文件里面含有的源代码,也提供了参数设置文件、依赖说明等。这样我们就可以通过修改srpm内的参数设置 ,然后重新编译成适合我们Linux环境的rpm文件。
1、rpm安装
rpm -ivh package_name
-i:install
-v:查看更详细的安装信息
-h:显示安装进度
2、rpm升级与更新
rpm -Uvh package_name
如果未安装则安装,安装过则升级
rpm -Fvh package_name
只有安装过,才升级
3、rpm查询
rpm -qa
已安装的软件
rpm -q[licdR] 已安装的软件名称
rpm -qf 存在于系统上面的某个文件名
rpm -qp[licdR] 未安装的某个文件名称
-q:仅查询,后面接的软件名称是否安装
-qa:列出所有的已经安装在本机Linux系统上面的所有软件名称
-qi:列出该软件的详细信息(information)
-ql:列出所有文件与目录的完整文件名(list)
-qc:找出/etc/下面的文件名
-qd:找出与man有关的文件
-qR:列出与该软件有关的依赖软件包含的文件(Required)
-qf:由后面的接的文件名称找出该文件属于哪一个已安装的软件
查询某个rpm文件内包含的信息
-qp[icdlr]:-qp后面的接的参数与上面的说明一致,但用途仅用于找出某个rpm文件内的信息。
卸载与重建数据库
删除的选项很简单,通过-e即可删除
--rebuilddb用来重建 数据。
三、dpkg
dpkg
是Debian及其派生系统(如Ubuntu)的底层包管理工具,它用于安装、构建、删除和管理Debian软件包,但它不解决包之间的依赖关系。
1、常用命令
(1)安装一个deb软件包
sudo dpkg -i /path/to/package.deb
(2)移除一个软件包但保留配置文件
sudo dpkg --remove package_name
(3)移除一个软件包包括其配置文件
sudo dpkg --purge package_name
(4)列出所有已安装的软件包
dpkg --list
(5)检查一个软件包是否已安装
dpkg --status package_name
(6)查找属于哪个已安装软件包的文件
dpkg --search /path/to/file
(7)列出一个已安装软件包的文件
dpkg --listfiles package_name
(8)配置所有未配置的软件包
sudo dpkg --configure -a
(9)重新配置一个已安装的软件包
sudo dpkg-reconfigure package_name
(10)解压缩一个.deb软件包而不进行安装
sudo dpkg --unpack /path/to/package.deb
(11)清理损坏的软件包(这在软件包安装失败时很有用)
sudo dpkg --configure -a