软件包管理

Linux 软件安装管理概述

Windows 软件安装过程简单易用

流行的两种软件包管理机制

Debian Linux 首先提出“软件包”的管理机制 — Deb 软件包

  • 将应用程序的二进制文件、配置文件、man/info 帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。

Redhat Linux 基于这个理念推出了自己的软件包管理机制 — Rpm 软件包

随着 Linux 操作系统规模不断扩大,系统中软件包间复杂的依赖关系,导致 Linux 用户麻烦不断

Debian Linux 开发出了 APT 软件包管理器:

  • 检查和修复软件包依赖关系
  • 利用 Internet 网络帮助用户主动获取软件包

APT 工具再次促进了 Deb 软件包更为广泛地使用,成为 Debian Linux 的一个无法替代的亮点。

软件包的类型

Ubuntu 有两种类型的软件包:二进制软件包(deb)和源码包(deb-src)

  • 二进制软件包(Binary Packages):它包含可执行文件、库文件、配置文件、man/info 页面、版权声明和其它文档。
  • 源码包(Source Packages):包含软件源代码、版本修改说明、构建指令及编译工具等。先由 tar 工具归档为 .tar.gz 文件,然后再打包成 .dsc 文件。

Redhat Linux 软件包的类型:

  • 源码包、脚本安装包
  • 二进制包(RPM 包、系统默认包)

在用户不确定一个软件包类型时,可以使用 file 命令查看文件类型

源码包

源码包的优点是

  • 开源,如果有足够的能力,可以修改源代码
  • 可以自由选择所需的功能
  • 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
  • 卸载方便

源码包的缺点

  • 安装过程步骤较多,尤其安装较大的软件集合时(如 LAMP 环境搭建),容易岀现拼写错误
  • 编译过程时间较长,安装比二进制安装时间长
  • 因为是编译安装,安装过程中一旦报错新手很难解决

二进制包和脚本安装包

如果只有源码包可用怎么办呢?初学者很苦恼!!!源码包安装不适合初学者!!!

二进制包的依赖性

  • 树形依赖:a→b→c
  • 环形依赖:a→b→c→a
  • 模块依赖:模块依赖,查询网站:www.rpmfind.net

二进制包的优点

  • 包管理系統简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
  • 安装速度比源码包安装快得多

二进制包缺点

  • 经过编译,不再可以看到源代码
  • 功能选择不如源码包灵活
  • 依赖性

所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装。但实际安装的还是源码包和二进制包

  • 优点:安装简单、快捷
  • 缺点:完全丧失了自定义性

软件包的命名

软件包的命名遵循以下约定:

  • Filename_Version-Reversion_Architecture.deb
  • 软件包名称 Filename
  • 软件版本 Version
  • 修订版本 Reversion
  • 体系架构 Architecture

软件包管理工具分类

根据用户交互方式的不同,可以将常见的软件包管理工具分为三类:

类别 常见工具举例 描述
命令行 dpkg-debdpkgapt 在命令行模式下完成软件包管理任务。为完成软件包的获取、查询、软件包依赖性检查、安装、卸载等任务需要使用各自不同的命令
文本窗口界面 dselectaptitudetasksel 在文本窗口模式中,使用窗口和菜单可以完成软件包管理任务
图形界面 synaptic 在 X-Window 图形桌面环境中运行,具有更好的交互性、可读性、易用性等特点

dpkg 相关命令

dpkg -i(install) <package> 安装一个在本地文件系统上存在的 Debian 软件包

dpkg -L(List) <package> 列出安装的软件包清单

dpkg -s(state) <package>显出软件包的安装状态

dpgk -r(remove) <package> 移除一个已经安装的软件包

dpkg -P(Purge) <package> 移除已安装软件包及配置文件

dpkg 没有解决软件包依赖问题

APT 工作原理

Ubuntu 采用集中式的软件仓库机制,将各式各样的软件包分门别类地存在软件仓库中,进行有效地组织和管理。然后将软件仓库置于许许多多的镜像服务器中,并保持基本一致,因此,对于用户,这些镜像服务器就是他们的软件源(reposity)。

在 Ubuntu 系统中,使用软件源配置文件 /etc/apt/sources.list 列出最适合访问的镜像站点地址。

软件源配置文件只是告诉 Ubuntu 系统可以访问的镜像站点地址。但那些镜像站点都拥有什么软件资源并不清楚。若是每安装一个软件包,就在服务器上寻找一遍,效率是很低的。因而就有必要为这些软件资源列出个清单(建立索引年文件),以便本地主机查询,这就是 APT 软件包管理器的工作原理。

镜像源:/etc/apt/sources.list。本质就是一个普通的文本文件,就可以在超级管理员授权下,使用任何文本编辑器进行编辑。在该文件中,添加的软件源镜像站点称为一个配置项,并遵循以下格式:

DebType AddressType://Hostaddress/Ubuntu Distribution Component1 Component2......
deb http://cn.archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse

根据软件包的开发组织对该软件的支持程度,以及遵从的开源程度,划分为如下四类:

  • 核心(Main):官方维护的开源软件,是由 Ubuntu 官方完全支持的软件,包括大多数流行的、稳定的开源软件,是 Ubuntu 默认安装的基本软件包;
  • 公共(Universe):社区维护的开源软件,是由 Ubuntu 社区的计算机爱好者维护的软件。这些软件包没有安全升级的保障。用户在使用时,需要考虑这些软件包存在的不稳定性;
  • 受限(Restricted):官方维护的非开源软件,是专供特殊用途,而且没有自由软件版权,不能直接修改软件,但依然被 Ubuntu 团队支持的软件;
  • 多元化(Multiverse):非 Ubuntu 官方维护的非开源软件,用户的使用这些软件包时,需要特别注意版权问题。

更新软件源,生成索引文件

  • 修改了配置文件 — /etc/apt/source.list,目的只是告知软件源镜像站点的地址。但那些所指向的镜像站点所具有的软件资源并不清楚,需要将这些资源列个清单,以便本机主机知晓可以申请哪些资源。
  • 使用 apt-get update 命令会扫描每一个软件源服务器,并为该服务器所具有软件包资源建立索引文件,存放在本地的 /var(可变的)/lib/apt/lists 目录中。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值