Debian发行版下的包管理(dpkg与apt的区别,PPA)

您所在的位置:网站首页 debian安装本地deb包 Debian发行版下的包管理(dpkg与apt的区别,PPA)

Debian发行版下的包管理(dpkg与apt的区别,PPA)

2023-11-17 05:12| 来源: 网络整理| 查看: 265

一、包管理工具

1、包管理工具:linux操作系统下,完成软件包的安装、更新和移除。

2、在Debian的linux发行版本下,采用dpkg和apt两种包管理工具。

3、dpkg与apt工具的区别

dpkg:安装本地包,不解决依赖关系,不关系仓库内的软件。

apt:通过仓库获取软件包资源,解决依赖关系,不能安装本地包。

区别:dpkg绕过apt包数据库直接对软件包操作。所以dpkg安装过的软件,可以采用apt工具再次安装并覆盖dpkg的安装。

二、dpkg工具

dpkg -i software.deb # 安装软件包 dpkg -unpack package.deb # 解开包 dpkg -L software # 查看软件安装位置 dpkg -l software # 查看软件版本信息,或者 dpkg -l | grep software dpkg -r software # 移除软件

三、apt工具

1、通过仓库完成包(软件,应用程序)的安装

2、仓库:托管可安装软件包的公共服务器,用户从服务器获取软件并将其安装至用户计算机。类似于应用商店。

Ubuntu的四个官方软件仓库:Main Canonical 支持的免费和开源软件,Universe 社区维护的免费和开源软件,Restricted 设备的专有驱动,Multiverse 有版权和合法性问题限制的软件。阿里云的镜像:deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse额外仓库:一些个人也会为其它开发人员的项目创建 PPA。为什么有人这么做呢?主要是因为有的开发人员只提供软件源码,而对很多普通用户来说,在 Linux 中进行源码编译安装是非常痛苦的事,而通过志愿者创建的非官方 PPA,就可以方便用户对软件进行轻松安装和管理了。例如,EPEL 服务于 Red Hat Enterprise Linux 和 CentOS,RPMFusion 服务于 Fedora,Ubuntu 有各种级别的支持以及个人包存档(PPA),Packman 为 OpenSUSE 提供额外的软件以及 SlackBuilds.org 为 Slackware 提供社区构建脚本。

3、apt工具工作原理

APT是一个客户/服务器系统。在服务器上先复制所有DEB包(DEB是Debian软件包格式的文件扩展名),然后用APT的分析工具(genbasedir)根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在一个文件中,这个文件称为DEB 索引清单,APT服务器的DEB索引清单置于base文件夹内。一旦APT 服务器内的DEB有所变动,一定要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而可以获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。

当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于/var/state/apt/lists/,而客户端使用apt-get install或apt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装或是可以升级的。

DEB索引清单:所有DEB包包头分析,DEB包变动产生新的索引清单,便于软件管理时获知软件的依赖关系。

4、包管理工具apt指令

包管理的好处是:快速、实用、高效地管理安装在机器上的软件包,进行更新、下载、维护。

sudo apt update # 更新源 sudo apt upgrade # 更新已安装的包 sudo add-apt-repository # 添加仓库 apt show package # 获取包的相关信息,如说明、大小、版本等 sudo apt install package # 安装包 sudo apt remove package # 删除包 apt-cache search # 搜索包 apt-cache depends # 了解使用依赖 sudo apt build-dep # 安装相关的编译环境 apt source # 下载该包的源代码 sudo apt check # 检查是否有损坏的依赖 软件仓库不包含软件包的信息 E: Unable to locate package

5、sources.list文件:APT数据源列表

位置:/etc/apt/sources.list和/etc/apt/sources.list.d/目录中带.list后缀的文件内容 :deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse作用:通过编辑这些文件,我们可以添加、删除、或者临时关闭某些软件库。另外,因为Ubuntu官方源地址不在国内,所以国内访问速度非常慢,采用国内镜像服务器以提升访问速度。备份:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

四、PPA(个人包存档)

1、额外仓库:开发人员独有,没有正式分发认可。

2、ppa:PPA是Personal Package Archives首字母简写。翻译为中文意思是:个人软件包文档。

虽然Ubuntu官方软件仓库尽可能囊括所有的开源软件,但仍有很多软件包由于各种原因不能进入官方软件仓库。

为了方便Ubuntu用户使用,launchpad.net提供了个人软件包集,即PPA,允许用户建立自己的软件仓库,通过Launchpad进行编译并发布为2进制软件包,作为apt-get源供其他用户下载和更新。

在Launchpad网站上的每一个用户和团队都可以拥有一个或多个PPA。通常PPA源里的软件是官方源里没有的,或者是最新版本的软件。

PPA也被用来对一些打算进入Ubuntu官方仓库的软件,或者某些软件的新版本进行测试。

3、独立创建额外仓库:Ubuntu 提供了一个名为 Launchpad 的平台,让软件开发人员能够创建自己的存储库,方便最终用户将 PPA 存储库添加到 sources.list。

4、添加PPA至源列表:

sudo add-apt-repository 命令可以将 PPA 存储库添加到 sources.list 列表中

5、PPA的优势:相对于通过Deb包安装来说,使用PPA的好处是,一旦软件有更新,通过sudo apt-get upgrade这样命令就可以直接升级到新版本。 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3