简介
早期的Linux系统,用户是通过下载和编译源码的方式来安装软件。然而如今,所有的主流Linux系统都提供了强大的包管理系统来安装软件。这使得普通用户可以很轻易的安装各种软件。
不同的Linux ditributions使用不同的包管理系统。但大多数是Debian 的”.deb”,和红帽的”.rpm”。
包管理系统 | 发行版 (部分列表) |
---|---|
Debian Style (.deb) | Debian, Ubuntu, Xandros, Linspire |
Red Hat Style (.rpm) | Fedora, CentOS, Red Hat Enterprise Linux, OpenSUSE, Mandriva, PCLinuxOS |
软件包管理系统
Linux 系统中几乎所有的软件都可以在互联网上找到。其中大多数软件由发行商以包文件的形式提供,剩下的则以源码形式存在,可以手动安装。
包文件
在包管理系统中软件的基本单元是包文件。包文件是一个构成软件包的文件压缩集合。主要包括编译好的源码,以及创建软件包元数据和所需要的安装脚本。
资源库
用户从资源库中得到包文件,用户需要经常经过资源库保持系统中的软件包都是最新的。
依赖性
程序很少是”孤立的”,而是依赖于其它软件组件来完成它们的工作。软件包管理系统都提供了一些依赖项解析方法,以此来确保当安装软件包时,也安装了其所有的依赖程序。
上层和底层软件包工具
软件包管理系统通常由两种工具类型组成:底层工具用来处理安装和删除软件包文件的任务, 上层工具用来完成元数据搜索和依赖解析。
Tables 底层工具 上层工具 Debian-Style dpkg apt-get, aptitude Fedora, Red Hat Enterprise Linux, CentOS rpm yum
软件包管理的指令
查找软件包
Debian: apt-cache search search_string
Red Hat: yum search search_stringyum search emacs
安装软件包
Debian: apt-get install package_name
Red Hat: yum install package_nameapt-get install emacs
通过包文件安装软件
Debian: dpkg –install package_file
Red Hat: rpm -i package_filerpm -i emacs-22.1-7.fc7-i386.rpm ps: 使用的底层的rpm程序安装,所以不会解析依赖,因此安装可能不成功
卸载软件
Debian: apt-get remove package_name
Red Hat: yum erase package_nameapt-get remove emacs
更新软件包
Debian: apt-get upgrade
Red Hat: yum update用包文件更新软件
Debian: dpkg –install package_file
Red Hat: rpm -U package_filerpm -U emacs-22.1-7.fc7-i386.rpm
列出已安装的软件包
Debian: dpkg –list
Red Hat: rpm -qa确认某软件包是否安装
Debian: dpkg –status package_name
Red Hat: rpm -q package_namedpkg --status emacs
显示软件包的信息
Debian apt-cache: show package_name
Red Hat: yum info package_nameapt-cache show emacs
查找安装了某个文件的软件包
Debian: dpkg –search file_name
Red Hat: rpm -qf file_namerpm -qf /usr/bin/vim
更新软件包列表
Debian: apt-get updata
清除那些已经卸载的软件包的.deb文件
Debian: apt-get autoclean