- A+
软件包:
-
开源软件刚开始只提供打包好的源代码文件(例如:.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