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

本文介绍了Linux发行版中常用的包管理系统(PMS),包括dpkg和rpm工具的基础知识,以及基于Debian系统的aptitude工具的详细使用方法,如安装、更新、卸载软件包等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节将介绍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-upgradeaptitude 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等。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值