yum和apt-get用法及区别

时间:2022-10-17 17:31:28

一、linux 系统分类

一般来说著名的linux系统基本上分两大类:
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等

RedHat 系列

1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
2 包管理工具 yum
3 支持tar包

Debian系列

1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
2 包管理工具 apt-get
3 支持tar包

rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。
优缺点来说,rpm一般都是预先编译好的文件,它可能已经绑定到某种CPU或者发行版上面了。

tar 只是一种压缩文件格式,所以,它只是把文件压缩打包而已。
tar一般包括编译脚本,你可以在你的环境下编译,所以具有通用性。
tar一般都是源码打包的软件,需要自己解包,然后进行安装三部曲,./configure, make, make install. 来安装软件。

如果你的包不想开放源代码,你可以制作成rpm,如果开源,用tar更方便了。

rpm是redhat公司的一种软件包管理机制,直接通过rpm命令进行安装删除等操作,最大的优点是自己内部自动处理了各种软件包可能的依赖关系。

二 、工具包

1 、rpm 软件包[centos]

1.1 *.rpm形式的二进制软件包[centos]

安装:rpm -ivh *.rpm
卸载:rpm -e packgename
查询 : rpm -q packgename 如,rpm -q nginx 查看是否已经安装
升级:rpm -Uvh packgename
查询:
查询所有安装的包: rpm -qa
查询某个包:rpm -qa | grep xxx
rpm -qi xxx
查询软件的安装路径:rpm -ql xxx
rpm -qc xxx
查询某个文件是那个rpm包产生:rpm -qf /etc/yum.conf
rpm -qpi xxx
rpm -qa|grep php 查看已安装的RMP包
安装:rpm -ivh xxx
移除:rpm -e xxx
升级:rpm -Uvh xxx
查询所有安装的包: rpm -qa
查询某个包:rpm -qa | grep xxx
查询某个包信息: rpm -qi xxx
查询软件的安装路径:rpm -ql xxx
rpm -qc xxx
查询某个文件是那个rpm包产生:rpm -qf /etc/yum.conf
rpm -qpi xxx

1.2 src.rpm 源代码分发软件包的安装与卸载

Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。
1、*.src.rpm形式的源代码软件包
安装:rpm -rebuild *.src.rpm
cd /root/rpmbuild/RPMS
rpm -ivh *.rpm
卸载:rpm -e packgename
说明:rpm –rebuild *.src.rpm命令将源代码编译并在/root/rpmbuild//RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。

2. dpkg【ubuntu】

dpkg -l | grep ‘php’ 使用dpkg -l 来查看已经安装了的软件
dpkg 是Debian[待宾] Package 的简写。为 Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux 发行版都使用 dpkg,例如 Ubuntu、Knoppix 等。
以下是一些 Dpkg 的普通用法:
1、dpkg -i

三、 高级包管理工具

1 包管理工具 yum
2 包管理工具 apt-get

1、包管理工具 yum

yum的配置文件是/etc/yum.conf

yum install gcc [centos]
更新:yum update
安装:yum install xxx
移除:yum remove xxx
清除已经安装过的档案(/var/cache/yum/):yum clean all
搜寻:yum search xxx
列出所有档案:yum list
查询档案讯息:yum info xxx

sudo -s
LANG=C
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

用YUM安装软件包
yum -y
命令:yum -y install
用YUM删除软件包
yum -y remove httpd*
命令:yum -y remove

列出所有可安装的软件包
命令:yum list
yum list php*
列出所有可更新的软件包
命令:yum list updates
列出所有已安装的软件包
命令:yum list installed
列出所有已安装但不在 Yum Repository 內的软件包
命令:yum list extras
列出所指定的软件包
命令:yum list
yum = Yellow dog Updater, Modified

主要功能是更方便的添加/删除/更新RPM包.
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题

yum特点
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf
自动解决增加或删除rpm包时遇到的倚赖性问题
使用方便
保持与RPM数据库的一致性

yum安装
CentOS 自带(yum-*.noarch.rpm)
rpm -ivh yum-*.noarch.rpm
在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY:
rpm –import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)
yum指令
注:当第一次使用yum或yum资源库有更新时,yum会自动下载 所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.
rpm包的更新
检查可更新的rpm包
yum check-update
更新所有的rpm包
yum update
更新指定的rpm包,如更新kernel和kernel source
yum update kernel kernel-source
大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum upgrade
rpm包的安装和删除
安装rpm包,如xmms-mp3
yum install xmms-mp3
删除rpm包,包括与该包有倚赖性的包
yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text
yum暂存(/var/cache/yum/)的相关参数
清除暂存中rpm包文件
yum clean packages
清除暂存中rpm头文件
yum clearn headers
清除暂存中旧的rpm头文件
yum clean oldheaders
清除暂存中旧的rpm头文件和包文件
yum clearn 或yum clearn all
注:相当于yum clean packages + yum clean oldheaders
包列表
列出资源库中所有可以安装或更新的rpm包
yum list
列出资源库中特定的可以安装或更新以及已经安装的rpm包
yum list mozillayum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
列出资源库中所有可以更新的rpm包
yum list updates
列出已经安装的所有的rpm包
yum list installed
列出已经安装的但是不包含在资源库中的rpm包
yum list extras
注:通过其它网站下载安装的rpm包
rpm包信息显示(info参数同list)
列出资源库中所有可以安装或更新的rpm包的信息
yum info
列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
yum info mozillayum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
列出资源库中所有可以更新的rpm包的信息
yum info updates
列出已经安装的所有的rpm包的信息
yum info installed
列出已经安装的但是不包含在资源库中的rpm包的信息
yum info extras
注:通过其它网站下载安装的rpm包的信息
搜索rpm包
搜索匹配特定字符的rpm包
yum search mozilla
注:在rpm包名,包描述等中搜索
搜索有包含特定文件名的rpm包
yum provides realplay
增加资源库
例如:增加rpm.livna.org作为资源库
安装Livna.org rpms GPG key
rpm –import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
检查GPG Key
rpm -qa gpg-pubkey*
显示Key信息
rpm -qi gpg-pubkey-a109b1ec-3f6e28d5
(注:如果要删除Key,使用rpm -e gpg-pubkey-a109b1ec-3f6e28d5)
yum常用的命令
yum install xxx 安装xxx软件
yum info xxx 查看xxx软件的信息
yum remove xxx 删除软件包
yum list 列出软件包
yum clean 清除缓冲和就的包
yum provides xxx 以xxx为关键字搜索包(提供的信息为关键字)
yum search xxx 搜索软件包(以名字为关键字)
yum groupupdate xxx
yum grouplist xxx
yum groupremove xxx
这三个都是一组为单位进行升级 列表和删除的操作。。比如 “Mysql Database”就是一个组会同时操作相关的所有软件包;
yum update 系统升级
yum list available 列出所有升级源上的包;
yum list updates 列出所有升级源上的可以更新包;
yum list installed 列出已经安装的包;
yun update kernel 升级内核;
yum常用的源
1) 自动选择最快的源
由于yum中有的mirror速度是非常慢的,如果yum选择了这个mirror,这个时候yum就会非常慢,对此,可以下载fastestmirror插件,它会自动选择最快的mirror:
yum install yum-fastestmirror
配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf
你的yum镜像的速度测试记录文件:/var/cache/yum/timedhosts.txt
(2)使用图形界面的yum
如果觉得命令行的yum不方便,那么可以使用图形化的yumex,这个看起来更方便,因为可以*地选择软件仓库:
yum install yumex
然后在系统工具中就可以看到yum extender了。实际上系统自带的“添加/删除程序“也可以实现图形化的软件安装,但有些yumex的功能它没有。

2、 讲Ubuntu中的高级包管理方法apt-get

配置文件/etc/apt/sources.list
对于Server版, 推荐使用aptitude来查看,安装、删除deb包
sudo apt-get install aptitude
然后执行 sudo aptitude 进入管 理
也可以使用命令:
aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件
考虑到系统的兼容性,并且上面的东东比较都大,不找最新版本了,直接用apt-get install XXX 来安装.因为我们的Ubuntu是dailyBulid的,所以光盘的内容基本上都是最新的了,无需重新下载.一定要最新版本的话,不妨先apt-get update 来更新一下软件的仓库,然后再 apt-get install.
常用的APT命令参数:
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装”-f = ——fix-missing”
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

四、参考文档

[Linux] yum和apt-get用法及区别