one day one linuxlinux下的软件包管理工具

Posted 曾想仗剑走天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了one day one linuxlinux下的软件包管理工具相关的知识,希望对你有一定的参考价值。

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 。

 
 
 
 
 

参考博客:

以上是关于one day one linuxlinux下的软件包管理工具的主要内容,如果未能解决你的问题,请参考以下文章

one day one linuxfind 用法详解小记

One Day

One day one cf,Keep Wa away from me.

Python day one

Starting Day One

python_one-day