linux中apt yum rpm 的区别和用法

时间:2021-11-18 10:38:56

一.概念:

  1.rpm:

      RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

2.yum:

   yum,是Yellow dog Updater, Modified的简称, 是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。    yum,是Yellow dog Updater, Modified的简称

3.apt

适用于deb包管理式的操作系统,主要使用在ubuntu,主要解决软件包之间的依赖性问题,但是因为下载速度慢被人诟病

安装后可以使用 dpkg -L 察看包的情况

dpkg -L 包名 可以知道这个软件包包含了哪些文件

二 apt 用法

 1 apt的相关文件

/etc/apt/sources.list 设置软件包的获取来源
/etc/apt/apt.conf apt配置文件
/etc/apt/apt.conf.d/ apt的零碎配置文件
/etc/apt/preferences 版本参数
/var/cache/apt/archives/ 存放已经下载的软件包
/var/cache/apt/archives/partial 存放正在下载的软件包
/var/lib/apt/lists/ 存放已经下载的软件包详细信息
/var/lib/apt/lists/partial/ 存放正在下载的软件包详细信息

2  apt-get命令的子命令

update 更新软件包列表
upgrade 升级系统中的所有软件包
install 安装软件包
remove 卸载软件包
autoremove 仅删除不需要再次下载的软件包
purge 彻底删除软件包(包括配置文件)
source 下载源代码
build-dep 自动下载安装编译某个软件所需要的软件包
dist-upgrade 升级整个发行版
dselect-upgrade 安装dselect的选择进行升级
clean 删除本地缓存的所有升级包
autoclean 删除本地缓存中无用的软件包
check 检查是否存在有问题的依赖关系
:$ sudo apt-get install php5-mysql apache2

$ sudo apt-get update && sudo apt-get upgrade

3  apt-get命令选项

-d,--download-only 仅下载,不安装
-f,--fix-broken 修复依赖问题(用于installremove子命令)
-m,--ignore-missing,--fix-missing 忽略缺失的软件包。遇到无法下载的软件包,自动忽略
--no-download 禁止下载软件包。与-m配合,可以使apt只使用已经下载的软件包
-q,--quiet 静默模式,输出的信息适合做日志
-s,--simulate,--just-print 模拟测试,不做出实际操作,不改变系统
-y,--yes,--assume-yes 在系统提问时,自动应答yes
-u,--show-upgraded 显示已升级的软件包
-V,--verbose-versions 显示已安装和已升级的软件包的完整版本号
-b,--compile,--build 在源码包下载完成后进行编译
--ignore-hold 忽略被保留的软件包
--no-upgrade 不要升级软件包
--force-yes 强制回答yes
--print-uris 仅答应软件包地址,不安装
--purge 彻底删除,包括配置文件
--reinstall 重新安装软件包

四、apt-cache命令

功能:搜索某个软件包的名字或显示某个软件包的详细信息
搜索mysql的软件包 $ apt-cache search mysql
查看ssh软件包的详细版本号

$ apt-cache show ssh

三 RPM 用法

1. 常用命令组合:

-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

rpm -q samba //查询程序是否安装rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //指定安装目录rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd*rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--filerpm -qpR file.rpm       #[查看包]依赖关系rpm2cpio file.rpm |cpio -div    #[抽出文件]rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hashrpm -ivhrpm -Uvh file.rpm    #[升级一个rpm]--upgraderpm -e file.rpm      #[删除一个rpm包]--erase

常用参数:

Install/Upgrade/Erase options:

-i, --install                     install package(s)
-v, --verbose provide more detailed output
-h, --hash print hash marks as package installs (good with -v)
-e, --erase erase (uninstall) package
-U, --upgrade=<packagefile>+ upgrade package(s)
--replacepkge 无论软件包是否已被安装,都强行安装软件包
--test 安装测试,并不实际安装
--nodeps 忽略软件包的依赖关系强行安装
--force 忽略软件包及文件的冲突

Query options (with -q or --query):
-a, --all query/verify all packages
-p, --package query/verify a package file
-l, --list list files in package
-d, --docfiles list all documentation files
-f, --file

RPM源代码包装安装

.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:

 

rpm --recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:

rpm --rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包。



四、Red HatFedoraUbuntu软件包操作对比

任务 Red HatFedora Ubuntu
基本信息
软件包后缀 *.rpm *.deb
软件源配置文件 /etc/yum.conf /etc/apt/sources.list
安装、删除、升级软件包
更新软件包列表 每次运行yum时自动执行 apt-get update
从软件仓库软件安装软件 yum install package apt-get install package
安装一个已下载的软件包 yum install pkg.rpm

rpm -i pkg.rpm

dpkg -i pkg.deb

pkg --install pkg.deb

删除软件包 rpm -e package apt-get remove package
软件包升级检查/测试 yum check-update apt-get -s upgrade

apt-get -s dist-upgrade

升级软件包 yum update

rpm -Uvh [args]

apt-get upgrade
升级整个系统 yum upgrade apt-get dist-upgrade
软件包信息
获取某软件包的信息 yum search package apt-cache show package
获取所有软件包的信息 yum list available apt-cache dumpavail
显示所有已安装的软件 yum list installed

rpm -qa

dpkg -l

dpkg --list

获取某个已安装软件包的信息 yum info package

rpm -qi package

dpkg --status package
列出某个已安装软件包所包含的文件列表 rpm -ql package  
列出某个已安装软件包所包含的文档 rpm -qd package
列出某个已安装软件包所包含的配置文件 rpm -qc package
显示某个软件包所依赖的软件包列表 rpm -qR package apt-cache depends package
显示某个软件包的反向依赖关系 rpm -q -whatrequires [args] apt-cache rdepends package
软件包文件信息
获取某个软件包文件的信息 rpm -qpi pkg.rpm dpkg --info pkg.deb
获取某个软件包文件所包含的文件列表 rpm -qpl pkg.rpm dpkg --contents pkg.deb
获取某个软件包文件所包含的文档 rpm -qpd pkg.rpm
获取某个软件包文件所包含的配置文件 rpm -qpc pkg.rpm
软件包解压 rpm2cpio pkg.rpm | cpio -vid dpkg-deb --extract pkg.deb
搜索某个文件是由哪个软件包安装的 rpm -qf /file/name dpkg -S /file/name

dpkg --search /file/name

搜索所有提供某个文件的软件包 yum provides /file/name apt-file search /file/name
杂项
显示本地软件包缓存的状态 apt-cache stats
校验所有已安装的软件包 rpm -Va debsums
删除本地缓存的所有软件包 yum clean packages apt-get clean
仅删除本地缓存中过时的软件包 apt-get autoclean
删除所有软件包信息 yum clean headers apt-file purge