您的位置:首页 > 运维架构 > Shell

Liunx 命令行与shell脚本编程大全 第八章学习笔记(Linux系统的包管理基础)

2014-09-12 17:10 1276 查看
本节将介绍Linux上能见到的各种包管理系统----PMS(Package Management System)----以及用来安装管理和删除软件用的命令行工具。

1、包管理基础

每一个主要的Linux发行版都利用包管理系统的某些形式来控制安装软件应用和库,PMS利用一个数据库来记录:

1)Linux系统上已经安装了什么软件包。

2)每一个包安装了什么文件。

3)每个已安装软件包的版本。

软件包存储在服务器上,通过运行本地Linux系统上的PMS工具通过互联网访问,这些服务器成为库。

PMS不好的一面是没有一个标准工具:Linux中广泛使用的两个主要PMS基础工具是dpkg和rpm。

基于debian的发行版比如Ubuntu和Linxu Mint ,他们的PMS工具底层用的时dpkg命令。

基于Red Hat的发行版比如Fedore,openSUSE 和 Mandriva ,他们的PMS工具底层用的时rpm命令。

2、基于Debian的系统

dpkg命令是基于Debian系PMS工具的核心。包含在这个PMS中其他的工具有:

1)apt-get

2)apt-cache

3)aptitude

aptitude最常用,其本质是apt工具和dpkg的前端,dpkg是一个软件包管理系统工具,aptitude一个完整的软件包管理系统。

2.1 aptitude管理软件包

aptitude的全屏模式:

在终端下输入:aptitude命令即可



如果已经知道了系统上的软件包,只想快速显示某个特定包的详细信息,使用命令:

aptitude show package_name; ----aptitude show 命令并不表示那个软件包在系统上已经安装,只是从软件库中得到详细的软件包信息。



无法通过aptitude看到的一个细节是:和特定软件包关联的所有文件列表。

要获取列表使用-----dpkg -L package_name



同样可以进行反向操作--------查找某个特定文件属于哪一个软件包。

dpkg --search absolute_file_name; 注:必须使用绝对路径



2.2 使用aptitude安装软件包

aptitude search package_name:搜索特定软件包 -------(i 表明该包已经安装,p表未安装)

aptitude install package_name:安装特定软件包

用aptitude更新软件

aptitude safe-upgrade:将所有已安装的包更新到软件库中的最新版本(检查依赖关系)

aptitude full-upgrade和aptitude dist-upgrade不会检查其中依赖关系

用aptitude卸载软件

aptitude purge package_name:卸载此软件包以及关联的软件包,配置,数据文件

aptitude remove package_name:只卸载此软件包,不删除数据和配置文件

aptitude库

库位置存储在文件/etc/apt/source.list中,大多数时候,跟不不需要添加或删除软件库,因此不需要碰这个文件。但是aptitude只会从文件中的库中下载文件,在搜索需要安装的或更新的库时,aptitude只检查这些库,如是有需要为PMS添加一些额外的软件库,需要修改该文件。

source.list中条目格式

deb (or deb-src) address distribution_name package_type_list

deb:编译后程序的源

deb-src:源代码的源

address:软件库的web地址



distribution_name:这个特定软件库的发行版版本的名称



package_type_list:库里面有什么类型的包

Debian 6.0 下source.list文件解读



首先请注意,文件里面满是帮助性的注释和警告。指定库的源用下面的结构:

deb (or deb-src) address distribution_name package_type_list

deb 或 deb-src 表明了软件包的类型,deb值说明了这是一个编译后程序的源,而deb-src的值说明这是一个源代码的源。

address :表明软件库的web地址,我的是163的源

distribution_name:特定软件库的发行版本的名称,我的是squeeze(debian 6.0 版本)--但是这并不说明运行的发行版就是debian squeeze,它只能说明这个Linux发行版正在用debian squeeze软件库。eg:在Linux中可以混用多个软件库。

package_type_list:该条目可能不止一个单词,它表明库里面有什么类型的包,可以经常看到的值有
main、restricted、partner等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: