yum 与 apt 的对比

 一、概念 

使用yum/apt之前,你很可能会遇到配置源(ubuntu下一般内置的就比较好,所以可能很少人手动配置),那这个源是什么呢,就是告诉apt/yum,安装软件的时候你要从哪里下载。比如你使用163的源,然后你apt-get/yum install xxx的时候,就从你的源配置文件中读取位置(这里是163的服务器),然后可能在第一次会更新本地数据库(这个数据库中记录163服务器上拥有的软件包,软件包的依赖情况等),本地更新完了就从本地缓存数据库中读取依赖情况以及软件包的具体url,然后就会下载到本地缓存目录。下载完成后执行安装操作。

说到安装操作,就要谈谈两种方式获取到的包的区别。yum获取到的是rpm,apt获取的是deb,其实你都可以看成是一个压缩包。里面有对应的软件。因为开发者不一样,所以两种软件包的解包方式不一样,和gz,rar包差不多,需要特定的命令去解,rpm包是rpm命令,deb是dpkg命令。
那解开后能不能通用呢( 比如把deb解开后放到rhel中运行)。这个也不是不行但是要考虑到很多因素,假设包中是经过编译的二进制文件(就像windows下的可执行文件),那么就要考虑到依赖。如果是脚本文件就要好些,因为大部分脚本兼容性都比较好。
这个依赖,就比较复杂了,当然也可以简单的说说,和windows的.dll类似,linux也有动态链接库文件,后缀一般为so,某些软件可能会依赖这些库,本来你的系统glibc是2.12版本的,而你移植过来是需要2.14版本的,你会发现运行不了。当然,是可以解决的,只是解决起来也麻烦. 大部分人不会选择这么做。
 

二、apt

   apt简单的来说,就是给Ubuntu安装软件的一种命令方式。
 
1、apt的相关文件
/etc/apt/sources.list设置软件包的获取来源
/etc/apt/apt.confapt配置文件
/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修复依赖问题(用于install和remove子命令)
-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重新安装软件包

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4、apt-cache命令

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

 
 
 
 
 

三、Yum

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

rpm -i pkg.rpm

dpkg -i pkg.deb

pkg --install pkg.deb

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

apt-get -s dist-upgrade

升级软件包yum update

rpm -Uvh [args]

apt-get upgrade
升级整个系统yum upgradeapt-get dist-upgrade
软件包信息
获取某软件包的信息yum search packageapt-cache show package
获取所有软件包的信息yum list availableapt-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 packageapt-cache depends package
显示某个软件包的反向依赖关系rpm -q -whatrequires [args]apt-cache rdepends package
软件包文件信息
获取某个软件包文件的信息rpm -qpi pkg.rpmdpkg --info pkg.deb
获取某个软件包文件所包含的文件列表rpm -qpl pkg.rpmdpkg --contents pkg.deb
获取某个软件包文件所包含的文档rpm -qpd pkg.rpm
获取某个软件包文件所包含的配置文件rpm -qpc pkg.rpm
软件包解压rpm2cpio pkg.rpm | cpio -viddpkg-deb --extract pkg.deb
搜索某个文件是由哪个软件包安装的rpm -qf /file/namedpkg -S /file/name

dpkg --search /file/name

搜索所有提供某个文件的软件包yum provides /file/nameapt-file search /file/name
杂项
显示本地软件包缓存的状态apt-cache stats
校验所有已安装的软件包rpm -Vadebsums
删除本地缓存的所有软件包yum clean packagesapt-get clean
仅删除本地缓存中过时的软件包apt-get autoclean
删除所有软件包信息yum clean headersapt-file purge
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
参考:
https://www.zhihu.com/question/35468373/answer/62894728
http://www.cnblogs.com/tswcypy/p/3976879.html

 

转载于:https://www.cnblogs.com/rickzhai/p/6432643.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值