一、概念

使用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.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 修复依赖问题(用于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、Fedora 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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
参考:
https://www.zhihu.com/question/35468373/answer/62894728
http://www.cnblogs.com/tswcypy/p/3976879.html

yum 与 apt 的对比的更多相关文章

  1. Linux RPM、YUM、APT包管理工具

    ⒈rpm包的管理 1)介绍 rpm是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件,RPM是RedHat Package Manager(RedH ...

  2. yum与apt命令比较,yum安装出现No package vim available解决办法

    yum (Yellowdog Updater Modified)是一个集与查找,安装,更新和删除程序的Linux软件.它运行在RPM包兼容的Linux发行版本上,如:RedHat, Fedora, S ...

  3. yum或apt基本源设置指南

    关于: 管理Linux服务器的运维或开发人员经常需要安装软件,最常用方式应该是通过Linux系统提供的包管理工具来在线安装,比如centos的yum,ubuntu或debian的apt-get.当然这 ...

  4. 在centos中搭建基于nginx的apt源服务器,整合yum源和apt源在一台服务器

    1.首先关闭防护墙或者设置规则通过且关闭selinux 2.nginx-1.14.2版本(编译安装)-自定义安装路径 3.开启nginx目录浏览 以上步骤请参考前文:https://www.cnblo ...

  5. Linux apt & yum 及 常用命令

    yum yum 语法 yum [options] [command] [package ...] options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes" ...

  6. centos 安装 yum apt

    以下地址 http://download.csdn.NET/detail/mimi00x/8081263 执行安装命令 rpm -i rpmforge-release-0.5.3-1.el7.rf.x ...

  7. (转载)centos yum源的配置和使用

    原文地址:http://www.cnblogs.com/mchina/archive/2013/01/04/2842275.html 一.yum 简介 yum,是Yellow dog Updater, ...

  8. CentOS yum 源的配置与使用

    一.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...

  9. yum安装命令的使用方法

    yum安装常用软件的命令 #yum check-update #yum remove 软件包名 #yum install 软件包名 #yum update 软件包名 yum命令常见使用方法 yum - ...

随机推荐

  1. hadoop 学习笔记2

    ============Hive vs Hadoop============== Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Ha ...

  2. fastreport好象将想合并哪个单元就将那一列的TEXT控件的Merge的属性设成True就可以了

    好象将想合并哪个单元就将那一列的TEXT控件的Merge的属性设成True就可以了 可以用FASTREPORT中的分组打印,你看一下里面的DEMO,里面都有的, 高版本的有suppressRepeat ...

  3. Java之旅_面向对象_接口

    参考摘自:http://www.runoob.com/java/java-interfaces.html 接口(interface)在Java中是一个抽象类型,是抽象方法的集合. 一个类通过imple ...

  4. falsk_蓝图(blueprint)

    蓝图(blueprint) 随着业务代码的增加,将所有代码都放在单个程序文件中,是非常不合适的.这不仅会让代码阅读变得困难,而且会给后期维护带来麻烦. 什么是蓝图 蓝图:用于实现单个应用的视图.模板. ...

  5. CentOS 7.2编译安装nginx1.10.3+MySQL5.5.38+PHP5.5.38

    1.关闭firewallad 关闭防火墙 systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.ser ...

  6. 前端框架之Vue(8)-表单输入绑定

    基础用法 你可以用 v-model 指令在表单 <input> . <textarea> 及 <select> 元素上创建双向数据绑定.它会根据控件类型自动选取正确 ...

  7. 前端框架之Vue(3)-计算属性

    计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> {{ ...

  8. vue中indexDB的应用

    // indexedDB.js,浏览器本地数据库操作 export default { // indexedDB兼容 indexedDB: window.indexedDB || window.web ...

  9. Linux小脚本

    将固定的换包步骤,做成脚本replacePackage.sh,赋予执行权限(chmod +x   replacePackage.sh).这样小小自动化也能节约时间呀. replacePackage.s ...

  10. spring boot 的使用

    一:首先安装spring boot插件 两种方式安装, 1:使用myeclipse自带的安装插件的功能 help>  install from catalog> 将出现下面的界面,搜寻sp ...