Linux 下的软件包管理工具
linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装。
1.软件包的种类
Red Hat和Fedora:redhat最早发行的个人版本的Linux,自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,Red Hat Linux停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版。2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支援,标志著Red Hat Linux的正式完结。原本的桌面版Red Hat Linux发行套件则与来自开源社区的 Fedora 计划合并,成为 Fedora Core 发行版本。目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux(RHEL),以及由社区开发的免费的Fedora Core。
特点:面向个人桌面应用系统,采用基于rpm/yum管理软件包。
RHEL(Red Hat Enterprise Linux)和CentOS:RHEL是Red Hat企业版,提供商业支持。CentOS是对RHEL重新编译而成,免费而稳定。
特点:面向企业服务器使用,安全稳定,采用基于rpm/yum管理软件包。
Debian和Ubuntu:Debian是社区类Linux的典范,是迄今为止最遵循GNU规范。Ubuntu基于Debian发行版和GNOME桌面环境.它使用Bash作为基础Shell,所以在很多基础命令上,ubuntu与CentOS的差别不是很明显,而ubuntu在桌面界面上要做的更为出色,还有类似的Kunbuntu/Xubuntu等。
特点:面向桌面应用,采用apt-get/dpkg包管理方式。
主要有两个:.deb和.rpm
".deb"包是由Debian社区开发的一种包,"rpm"是来自于Redhat
包类型 | 使用这种包的linux发行版 |
Debian Style(.deb) | Debian, Ubuntu, Xandros, Linspire等 |
Red Hat Style(.rpm) | Fedora, CentOS, Red Hat Enterprise Linux等 |
而两种包的管理工具主要分为:
linux发行版 | 底层工具 | 上层工具 |
Debian.Ubuntu | dpkg | apt-get, |
Fedora, Red Hat Enterprise Linux, CentOS | rpm | yum |
从表中可以很容易看出,linux的软件包管理工具分为两个层次的,所以下面介绍下软件包管理工具的一些基本使用。各有好处,根据自己所在的平台来判断使用哪一个。
2.软件包管理工具的使用:安装、升级、查询、卸载
(1)DEB包
一个 DEB 包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以 .deb 扩展名结尾的文件,例如 package.deb 。对其操作,需要使用 dpkg 命令。
DPKG 命令常用参数
DPKG 的常规使用方法为 dpkg -? Package(.rpm), 其中 -? 为安装参数 ( 更多信息,请查阅帮助 $man rpm):
-l 在系统中查询软件内容信息 --info 在系统中查询软件或查询指定 rpm 包的内容信息 -i 在系统中安装 / 升级软件 -r 在系统中卸载软件 , 不删除配置文件 -P 在系统中卸载软件以及其配置文件
DPKG 命令参数使用方法
安装 DEB 包命令
$ sudo dpkg -i package.deb
升级 DEB 包命令
$ sudo dpkg -i package.deb ( 和安装命令相同)
卸载 DEB 包命令
$ sudo dpkg -r package.deb # 不卸载配置文件 或 $ sudo dpkg -P package.deb # 卸载配置文件
查询 DEB 包中包含的文件列表命令
$ sudo dpkg-deb -c package.deb
查询 DEB 包中包含的内容信息命令
$ dpkg --info package.deb
查询系统中所有已安装 DEB 包
$ dpkg -l package
更友好的包管理软件 - APT
APT
APT 的全称为 Advanced Packaging Tools 。与 YUM 对应,它最早被设计成 DPKG 的前端软件,现在通过 apt-rpm 也支持 rpm 管理。而本节本节将介绍 APT 作为 DPKG 前端的使用。 APT 的主要包管理工具为 APT-GET,通过此工具可满足和上述 YUM 相似的功能要求。
APT 的软件源定义来自 /etc/apt/sources.list 文件:
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://cn.archive.ubuntu.com/ubuntu/ hardy main restricted deb-src http://cn.archive.ubuntu.com/ubuntu/ hardy main restricted
注意每次手动修改上述文件后,需要使用 sudo apt-get update 来更新系统的源使新的源数据被当前系统识别。
UBUNTU 中 APT 的配置文件位于 /etc/apt/apt.conf.d,其中的多个配置文件依功能分类。
一般在刚装上ubuntu系统之后需要添加源,添加所在地区的源会比较快的,关于这个直接百度就可以了。
APT 常用命令
更新源索引
$ sudo apt-get update #一般在安装软件和更新源之后需要执行这条命令。
安装指定软件
$ sudo apt-get install package-name
下载指定软件的源文件
$ sudo apt-get source package-name
将系统中所有软件升级到最新版本
$ sudo apt-get upgrade
将操作系统连同所有软件升级到最新版本
$ sudo apt-get dist-upgrade
卸载指定软件
$ sudo apt-get remove package-name
更多有关 APT 的信息,请查阅 http://www.debian.org/doc/manuals/apt-howto/index.en.html 。
(2)RPM包
RPM 包的安装 / 升级 / 查询 / 卸载
一个 RPM 包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以 .rpm 扩展名结尾的文件,例如 package.rpm 。对其操作,需要使用 rpm 命令。下面介绍 rpm 工具的参数和使用方法,并以 IBM Lotus Notes 在 RHEL 5.2 安装为例做具体说明。
RPM 命令常用参数
RPM 的常规使用方法为 rpm -? package.rpm,其中 -? 为操作参数 ( 更多信息,请查阅帮助 $man rpm):
-q 在系统中查询软件或查询指定 rpm 包的内容信息 -i 在系统中安装软件 -U 在系统中升级软件 -e 在系统中卸载软件 -h 用 #(hash) 符显示 rpm 安装过程 -v 详述安装过程 -p 表明对 RPM 包进行查询,通常和其它参数同时使用,如: -qlp 查询某个 RPM 包中的所有文件列表 -qip 查询某个 RPM 包的内容信息
RPM 命令参数使用方法
以上参数有些需要组合使用,比如说 rpm -h package.rpm 是没有意义的,但 rpm -ih package.rpm 即表示安装 package 并用 # 符显示安装进度。
安装 RPM 包
# rpm -ivh package.rpm
升级 RPM 包命令
# rpm -Uvh package.rpm
卸载 RPM 包命令
# rpm -ev package
查询 RPM 包中包含的文件列表命令
# rpm -qlp package
查询 RPM 包中包含的文件列表命令
# rpm -qlp package
查询 RPM 包中包含的内容信息命令
# rpm -qip package
查询系统中所有已安装 RPM 包
# rpm -qa
更友好的包管理软件 - YUM
YUM
YUM 基于 RPM 包管理工具,能够从指定的源空间(服务器,本地目录等)自动下载目标 RPM 包并且安装,可以自动处理依赖性关系并进行下载、安装,无须繁琐地手动下载、安装每一个需要的依赖包。此外,YUM 的另一个功能是进行系统中所有软件的升级。如上所述,YUM 的 RPM 包来源于源空间,在 RHEL 中由 /etc/yum.repos.d/ 目录中的 .repo 文件配置指定,如 rhel-debuginfo.repo 的内容:
rhel-debuginfo.repo [rhel-debuginfo] name=Red Hat Enterprise Linux 5Client - i386 - Debug baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Client/en/os/i386/Debuginfo/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release YUM 的系统配置文件位于 /etc/yum.conf,内容如: [main] cachedir=/var/cache/yum keepcache=1 debuglevel=2 pkgpolicy=newest logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 exclude= firefox gftp
配置文件用来定义用户期望的 yum 行为,比如,gpgcheck 表明安装时不进行 gpg 验证,exclued=firefox gftp 表明进行系统全软件升级时不升级 firefox 和 gftp 。
YUM 常用命令
安装指定软件 :
# yum -y install package-name
列出系统中已安装软件
# yum list
列出系统中可升级的所有软件
# yum check-update
升级系统中可升级的所有软件
# yum update
升级指定软件
# yum update package-name
在升级过程中接受所有互动问答
# yum -y update
卸载指定软件
# yum remove package-name
更多有关 YUM 的信息,请查阅 http://fedoraproject.org/wiki/Tools/yum 。