海苔 發表於 2017-2-16 15:29:11

yum和apt-get的区别详解

<p><strong>yum和apt-get的区别</strong> </p>
<p>一般来说著名的linux系统基本上分两大类:</p>
<p>1.RedHat系列:Redhat、Centos、Fedora等</p>
<p>2.Debian系列:Debian、Ubuntu等&nbsp;</p>
<p><strong>RedHat 系列</strong>&nbsp;</p>
<p>1 常见的安装包格式 rpm包,安装rpm包的命令是&ldquo;rpm -参数&rdquo;&nbsp;</p>
<p>2 包管理工具 yum&nbsp;</p>
<p>3 支持tar包&nbsp;</p>
<p><strong>Debian系列</strong>&nbsp;</p>
<p>1 常见的安装包格式 deb包,安装deb包的命令是&ldquo;dpkg -参数&rdquo;&nbsp;</p>
<p>2 包管理工具 apt-get&nbsp;</p>
<p>3 支持tar包&nbsp;</p>
<p>tar 只是一种压缩文件格式,所以,它只是把文件压缩打包而已。&nbsp;</p>
<p>rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。&nbsp;</p>
<p>优缺点来说,rpm一般都是预先编译好的文件,它可能已经绑定到某种CPU或者发行版上面了。&nbsp;</p>
<p>tar一般包括编译脚本,你可以在你的环境下编译,所以具有通用性。&nbsp;</p>
<p>如果你的包不想开放源代码,你可以制作成rpm,如果开源,用tar更方便了。&nbsp;</p>
<p>tar一般都是源码打包的软件,需要自己解包,然后进行安装三部曲,./configure, make, make install. 来安装软件。</p>
<p>rpm是redhat公司的一种软件包管理机制,直接通过rpm命令进行安装删除等操作,最大的优点是自己内部自动处理了各种软件包可能的依赖关系。&nbsp;</p>
<p>-------------------------------- *.rpm形式的二进制软件包&nbsp;</p>
<p>  安装:rpm -ivh *.rpm&nbsp;</p>
<p>  卸载:rpm -e packgename&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rpm -q nginx&nbsp; 查看是否已经安装&nbsp;</p>
<p>&nbsp;&nbsp;  升级:rpm -Uvh xxx&nbsp;</p>
<p> 查询:&nbsp;</p>
<p>查询所有安装的包: rpm -qa&nbsp;</p>
<p>查询某个包:rpm -qa | grep xxx&nbsp;</p>
<p>rpm -qi xxx&nbsp;</p>
<p>查询软件的安装路径:rpm -ql xxx&nbsp;</p>
<p>rpm -qc xxx&nbsp;</p>
<p>查询某个文件是那个rpm包产生:rpm -qf /etc/yum.conf&nbsp;</p>
<p>rpm -qpi xxx&nbsp;</p>
<p>rpm -qa|grep php&nbsp; 查看已安装的RMP包&nbsp;</p>
<p>安装:rpm -ivh xxx&nbsp;</p>
<p>移除:rpm -e xxx&nbsp;</p>
<p>升级:rpm -Uvh xxx&nbsp;</p>
<p>查询:&nbsp;</p>
<p>查询所有安装的包: rpm -qa&nbsp;</p>
<p>查询某个包:rpm -qa | grep xxx&nbsp;</p>
<p>rpm -qi xxx&nbsp;</p>
<p>查询软件的安装路径:rpm -ql xxx&nbsp;</p>
<p>rpm -qc xxx&nbsp;</p>
<p>查询某个文件是那个rpm包产生:rpm -qf /etc/yum.conf&nbsp;</p>
<p>rpm -qpi xxx&nbsp;</p>
<p>-------------------------------- src.rpm 源代码分发软件包的安装与卸载&nbsp;</p>
<p>  Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。&nbsp;</p>
<p>  1、*.src.rpm形式的源代码软件包&nbsp;</p>
<p>  安装:rpm -rebuild *.src.rpm&nbsp;</p>
<p>  cd /usr/src/dist/RPMS&nbsp;</p>
<p>  rpm -ivh *.rpm&nbsp;</p>
<p>  卸载:rpm -e packgename&nbsp;</p>
<p>  说明:rpm &ndash;rebuild *.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。&nbsp;</p>
<p>--------------------------------dpkg【ubuntu】&nbsp;</p>
<p>dpkg -l | grep 'php'&nbsp; 使用dpkg -l 来查看已经安装了的软件&nbsp;</p>
<p>dpkg 是Debian[待宾] Package 的简写。为 Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux 发行版都使用 dpkg,例如 Ubuntu、Knoppix 等。&nbsp;</p>
<p>  以下是一些 Dpkg 的普通用法:&nbsp;</p>
<p>  1、dpkg -i &lt;package.deb&gt;&nbsp;</p>
<p>  安装一个 Debian 软件包,如你手动下载的文件。&nbsp;</p>
<p>  2、dpkg -c &lt;package.deb&gt;&nbsp;</p>
<p>  列出 &lt;package.deb&gt; 的内容。&nbsp;</p>
<p>  3、dpkg -I &lt;package.deb&gt;&nbsp;</p>
<p>  从 &lt;package.deb&gt; 中提取包裹信息。&nbsp;</p>
<p>  4、dpkg -r &lt;package&gt;&nbsp;</p>
<p>  移除一个已安装的包裹。&nbsp;</p>
<p>  5、dpkg -P &lt;package&gt;&nbsp;</p>
<p>  完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。&nbsp;</p>
<p>  6、dpkg -L &lt;package&gt;&nbsp;</p>
<p>  列出 &lt;package&gt; 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。&nbsp;</p>
<p>  7、dpkg -s &lt;package&gt;&nbsp;</p>
<p>  显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。&nbsp;</p>
<p>  8、dpkg-reconfigure &lt;package&gt;&nbsp;</p>
<p>  重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。&nbsp;</p>
<p>-------------------------------- 使用yum和apt-get。软件管理方法的升级.&nbsp;</p>
<p>yum的配置文件是/etc/yum.conf&nbsp;</p>
<p><strong>1. 我们来先讲Redhat的yum 这种高级的包管理.</strong>&nbsp;</p>
<p>yum install gcc&nbsp; &nbsp;</p>
<p>更新:yum update&nbsp;</p>
<p>安装:yum install xxx&nbsp;</p>
<p>移除:yum remove xxx&nbsp;</p>
<p>清除已经安装过的档案(/var/cache/yum/):yum clean all&nbsp;</p>
<p>搜寻:yum search xxx&nbsp;</p>
<p>列出所有档案:yum list&nbsp;</p>
<p>查询档案讯息:yum info xxx&nbsp;</p>
<p>#sudo -s&nbsp;</p>
<p>#LANG=C&nbsp;</p>
<p>#yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel&nbsp;</p>
<p>用YUM安装软件包&nbsp;</p>
<p>yum -y &lt;package_name&gt;&nbsp;</p>
<p>命令:yum install &lt;package_name&gt;&nbsp;</p>
<p>用YUM删除软件包&nbsp;</p>
<p>命令:yum remove &lt;package_name&gt;&nbsp;</p>
<p>yum -y remove httpd*&nbsp;&nbsp;&nbsp;</p>
<p>命令:yum search &lt;keyword&gt;&nbsp;</p>
<p>列出所有可安装的软件包&nbsp;</p>
<p>命令:yum list&nbsp;</p>
<p>yum list php*&nbsp;</p>
<p>列出所有可更新的软件包&nbsp;</p>
<p>命令:yum list updates&nbsp;</p>
<p>列出所有已安装的软件包&nbsp;</p>
<p>命令:yum list installed&nbsp;</p>
<p>列出所有已安装但不在 Yum Repository 內的软件包&nbsp;</p>
<p>命令:yum list extras&nbsp;</p>
<p>列出所指定的软件包&nbsp;</p>
<p>命令:yum list &lt;package_name&gt;&nbsp;</p>
<p>yum = Yellow dog Updater, Modified&nbsp;</p>
<p>主要功能是更方便的添加/删除/更新RPM包.&nbsp;</p>
<p>它能自动解决包的倚赖性问题.&nbsp;</p>
<p>它能便于管理大量系统的更新问题&nbsp;</p>
<p>yum特点&nbsp;</p>
<p>可以同时配置多个资源库(Repository)&nbsp;</p>
<p>简洁的配置文件(/etc/yum.conf&nbsp;</p>
<p>自动解决增加或删除rpm包时遇到的倚赖性问题&nbsp;</p>
<p>使用方便&nbsp;</p>
<p>保持与RPM数据库的一致性&nbsp;</p>
<p>yum安装&nbsp;</p>
<p>CentOS 自带(yum-*.noarch.rpm)&nbsp;</p>
<p>#rpm -ivh yum-*.noarch.rpm&nbsp;</p>
<p>在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY:&nbsp;</p>
<p>#rpm --import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)&nbsp;</p>
<p>yum指令&nbsp;</p>
<p>注:当第一次使用yum或yum资源库有更新时,yum会自动下载 所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.&nbsp;</p>
<p>rpm包的更新&nbsp;</p>
<p>检查可更新的rpm包&nbsp;</p>
<p>#yum check-update&nbsp;</p>
<p>更新所有的rpm包&nbsp;</p>
<p>#yum update&nbsp;</p>
<p>更新指定的rpm包,如更新kernel和kernel source&nbsp;</p>
<p>#yum update kernel kernel-source&nbsp;</p>
<p>大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级&nbsp;</p>
<p>#yum upgrade&nbsp;</p>
<p>rpm包的安装和删除&nbsp;</p>
<p>安装rpm包,如xmms-mp3&nbsp;</p>
<p>#yum install xmms-mp3&nbsp;</p>
<p>删除rpm包,包括与该包有倚赖性的包&nbsp;</p>
<p>#yum remove licq&nbsp;</p>
<p>注:同时会提示删除licq-gnome,licq-qt,licq-text&nbsp;</p>
<p>yum暂存(/var/cache/yum/)的相关参数&nbsp;</p>
<p>清除暂存中rpm包文件&nbsp;</p>
<p>#yum clean packages&nbsp;</p>
<p>清除暂存中rpm头文件&nbsp;</p>
<p>#yum clearn headers&nbsp;</p>
<p>清除暂存中旧的rpm头文件&nbsp;</p>
<p>#yum clean oldheaders&nbsp;</p>
<p>清除暂存中旧的rpm头文件和包文件&nbsp;</p>
<p>#yum clearn 或#yum clearn all&nbsp;</p>
<p>注:相当于yum clean packages + yum clean oldheaders&nbsp;</p>
<p>包列表&nbsp;</p>
<p>列出资源库中所有可以安装或更新的rpm包&nbsp;</p>
<p>#yum list&nbsp;</p>
<p>列出资源库中特定的可以安装或更新以及已经安装的rpm包&nbsp;</p>
<p>#yum list mozilla#yum list mozilla*&nbsp;</p>
<p>注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包&nbsp;</p>
<p>列出资源库中所有可以更新的rpm包&nbsp;</p>
<p>#yum list updates&nbsp;</p>
<p>列出已经安装的所有的rpm包&nbsp;</p>
<p>#yum list installed&nbsp;</p>
<p>列出已经安装的但是不包含在资源库中的rpm包&nbsp;</p>
<p>#yum list extras&nbsp;</p>
<p>注:通过其它网站下载安装的rpm包&nbsp;</p>
<p>rpm包信息显示(info参数同list)&nbsp;</p>
<p>列出资源库中所有可以安装或更新的rpm包的信息&nbsp;</p>
<p>#yum info&nbsp;</p>
<p>列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息&nbsp;</p>
<p>#yum info mozilla#yum info mozilla*&nbsp;</p>
<p>注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息&nbsp;</p>
<p>列出资源库中所有可以更新的rpm包的信息&nbsp;</p>
<p>#yum info updates&nbsp;</p>
<p>列出已经安装的所有的rpm包的信息&nbsp;</p>
<p>#yum info installed&nbsp;</p>
<p>列出已经安装的但是不包含在资源库中的rpm包的信息&nbsp;</p>
<p>#yum info extras&nbsp;</p>
<p>注:通过其它网站下载安装的rpm包的信息&nbsp;</p>
<p>搜索rpm包&nbsp;</p>
<p>搜索匹配特定字符的rpm包&nbsp;</p>
<p>#yum search mozilla&nbsp;</p>
<p>注:在rpm包名,包描述等中搜索&nbsp;</p>
<p>搜索有包含特定文件名的rpm包&nbsp;</p>
<p>#yum provides realplay&nbsp;</p>
<p>增加资源库&nbsp;</p>
<p>例如:增加rpm.livna.org作为资源库&nbsp;</p>
<p>安装Livna.org rpms GPG key&nbsp;</p>
<p>#rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY&nbsp;</p>
<p>检查GPG Key&nbsp;</p>
<p># rpm -qa gpg-pubkey*&nbsp;</p>
<p>显示Key信息&nbsp;</p>
<p>#rpm -qi gpg-pubkey-a109b1ec-3f6e28d5&nbsp;</p>
<p>(注:如果要删除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)&nbsp;</p>
<p>yum常用的命令&nbsp;</p>
<p># yum install xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 安装xxx软件&nbsp;</p>
<p># yum info xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看xxx软件的信息&nbsp;</p>
<p># yum remove xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除软件包&nbsp;</p>
<p># yum list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 列出软件包&nbsp;</p>
<p># yum clean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 清除缓冲和就的包&nbsp;</p>
<p># yum provides xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以xxx为关键字搜索包(提供的信息为关键字)&nbsp;</p>
<p># yum search xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 搜索软件包(以名字为关键字)&nbsp;</p>
<p># yum groupupdate xxx&nbsp;</p>
<p># yum grouplist xxx&nbsp;</p>
<p># yum groupremove xxx&nbsp;</p>
<p>这三个都是一组为单位进行升级 列表和删除的操作。。比如 &quot;Mysql Database&quot;就是一个组会同时操作相关的所有软件包;&nbsp;</p>
<p># yum update&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统升级&nbsp;</p>
<p># yum list available&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 列出所有升级源上的包;&nbsp;</p>
<p># yum list updates&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 列出所有升级源上的可以更新包;&nbsp;</p>
<p># yum list installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 列出已经安装的包;&nbsp;</p>
<p># yun update kernel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 升级内核;&nbsp;</p>
<p>yum常用的源&nbsp;</p>
<p>1) 自动选择最快的源&nbsp;</p>
<p>由于yum中有的mirror速度是非常慢的,如果yum选择了这个mirror,这个时候yum就会非常慢,对此,可以下载fastestmirror插件,它会自动选择最快的mirror:&nbsp;</p>
<p>#yum install yum-fastestmirror&nbsp;</p>
<p>配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf&nbsp;</p>
<p>你的yum镜像的速度测试记录文件:/var/cache/yum/timedhosts.txt&nbsp;</p>
<p>(2)使用图形界面的yum&nbsp;</p>
<p>如果觉得命令行的yum不方便,那么可以使用图形化的yumex,这个看起来更方便,因为可以自由地选择软件仓库:&nbsp;</p>
<p>#yum install yumex&nbsp;</p>
<p>然后在系统工具中就可以看到yum extender了。实际上系统自带的&ldquo;添加/删除程序&ldquo;也可以实现图形化的软件安装,但有些yumex的功能它没有。&nbsp;</p>
<p><strong>2.讲讲Ubuntu中的高级包管理方法apt-get</strong>&nbsp;</p>
<p>配置文件/etc/apt/sources.list&nbsp;</p>
<p>对于Server版, 推荐使用aptitude来查看,安装、删除deb包&nbsp;</p>
<p>sudo apt-get install aptitude&nbsp;</p>
<p>然后执行 sudo aptitude 进入管 理&nbsp;</p>
<p>也可以使用命令:&nbsp;</p>
<p>aptitude update 更新可用的包列表&nbsp;</p>
<p>aptitude upgrade 升级可用的包&nbsp;</p>
<p>aptitude dist-upgrade 将系统升级到新的发行版&nbsp;</p>
<p>aptitude install pkgname 安装包&nbsp;</p>
<p>aptitude remove pkgname 删除包&nbsp;</p>
<p>aptitude purge pkgname 删除包及其配置文件&nbsp;</p>
<p>aptitude search string 搜索包&nbsp;</p>
<p>aptitude show pkgname 显示包的详细信息&nbsp;</p>
<p>aptitude clean 删除下载的包文件&nbsp;</p>
<p>aptitude autoclean 仅删除过期的包文件&nbsp;</p>
<p>考虑到系统的兼容性,并且上面的东东比较都大,不找最新版本了,直接用apt-get install XXX 来安装.因为我们的Ubuntu是dailyBulid的,所以光盘的内容基本上都是最新的了,无需重新下载.一定要最新版本的话,不妨先apt-get update 来更新一下软件的仓库,然后再 apt-get install.&nbsp;</p>
<p><strong>常用的APT命令参数:</strong>&nbsp;</p>
<p>apt-cache search package 搜索包&nbsp;</p>
<p>apt-cache show package 获取包的相关信息,如说明、大小、版本等&nbsp;</p>
<p>sudo apt-get install package 安装包&nbsp;</p>
<p>sudo apt-get install package - - reinstall 重新安装包&nbsp;</p>
<p>sudo apt-get -f install 修复安装&quot;-f = &mdash;&mdash;fix-missing&quot;&nbsp;</p>
<p>sudo apt-get remove package 删除包&nbsp;</p>
<p>sudo apt-get remove package - - purge 删除包,包括删除配置文件等&nbsp;</p>
<p>sudo apt-get update 更新源&nbsp;</p>
<p>sudo apt-get upgrade 更新已安装的包&nbsp;</p>
<p>sudo apt-get dist-upgrade 升级系统&nbsp;</p>
<p>sudo apt-get dselect-upgrade 使用 dselect 升级&nbsp;</p>
<p>apt-cache depends package 了解使用依赖&nbsp;</p>
<p>apt-cache rdepends package 是查看该包被哪些包依赖&nbsp;</p>
<p>sudo apt-get build-dep package 安装相关的编译环境&nbsp;</p>
<p>apt-get source package 下载该包的源代码&nbsp;</p>
<p>sudo apt-get clean &amp;&amp; sudo apt-get autoclean 清理无用的包&nbsp;</p>
<p>sudo apt-get check 检查是否有损坏的依赖&nbsp;</p>
頁: [1]
查看完整版本: yum和apt-get的区别详解