Ubuntu 软件包管理APT

本文介绍了APT(高级软件包管理工具)的历史和发展,详细解析了Ubuntu中APT的配置文件sources.list及其工作原理,并提供了国内镜像源的配置方法。

 一、APT简介

“起初 GNU/Linux 的世界中只有 .tar.gz。如果用户要使用一个软件,那就必须自己编译。当 Debian 诞生以后,一种能管理操作系统中已安装的软件包的系统显得很有必要,这个系统被命名

‘dpkg’。‘软件包’一词在此第一次出现在 GNU/Linux。不久之后,红帽公司创建了他们自己的包管理系统‘rpm’。

“GNU/Linux 的创造者们很快又陷入了新的窘境。他们希望通过一种快捷、实用而且高效的方式来安装软件包,并能自动处理相互之间的依赖关系,还要在软件包升级过程中维护好配置文件。

Debian 又一次充当了开路先锋的角色,她首创了 APT(Advanced Packaging Tool,高级软件包管理工具)。这一工具后来被 Conectiva 移植到红帽公司的 rpm 包管理系统。在其他一些发行版

中,我们也能看到 APT 的身影。”  -- 引自:Debian APT HOWTO

具体命令参考:http://wiki.ubuntu.org.cn/UbuntuHelp:AptGet/Howto/zh

具体操作参考:http://wiki.ubuntu.org.cn/UbuntuHelp:Repositories/CommandLine

 二、Ubuntu 软件安装源

Ubuntu中的软件安装源记录在:/etc/apt/sources.list 和/etc/apt/sources.list.d/目录下以.list为扩展名的文件中,下面我们来看下具体的内容。

1.sources.list文件解读:

执行cat命令:

cat /etc/apt/source.list

 查看具体的source.list配置信息,显示如下:

#deb cdrom:[Ubuntu 16.04.3 LTS _Xenial Xerus_ - Release amd64 (20170801)]/ xenial main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ xenial universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universe
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://security.ubuntu.com/ubuntu xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

  为便于说明,从上面的显示结果中抽取部分内容:

deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted

(1) . deb/deb-src: 为archive type,意为软件包归档类型。其中,deb和deb-src分别指通过.deb文件进行安装和通过源文件的方式进行安装; 

(2).  http://us.archive.ubuntu.com/ubuntu/: 为软件包所在的仓库地址;

(3).  xenial: 为发行版的具体代号,如 xenialtrustyprecise 等;

(4).  main:为软件包的分类。意为官方支持的自由软件。其它取值的含义(restricted:官方支持的非完全自由的软件。universe:社区维护的自由软件。multiverse:非自由软件)。

2. sources.list内容与仓库的对应关系

 在浏览器中输入:

http://archive.ubuntu.com/ubuntu/dists/

 则查询出如下目录,上文sources.list中的第3个参数xenial-backports、xenial-security、xenial-updates对应下面左图,第4个参数对应右图;

3.工作原理

apt-get的更新过程:

(1). 执行apt-get update
(2). 根据/etc/apy/sources.list记录的源信息,查询对应的Packages/Sources/Release列表文件;
(3). 如果有更新,则下载并存入/var/lib/apt/lists/目录
(4). 执行apt-get install 包名, 下载并安装相应的包。

4. 配置示例

 在sources.list.d目录下,新增文件kubernetes.list,配置内容如下:

cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF

 三、安全管理

Ubuntu中使用apt-key命令来对软件包进行安全管理和认证。其地址为:/usr/bin/apt-key。

具体的格式用法及参数:

apt-key [--keyring file] [command] [arguments]
apt-key add <file> 将下载的key添加到本地trusted数据库
apt-key del <keyid> 
apt-key export <keyid> 
apt-key exportall 
apt-key update
apt-key net-update
apt-key list
apt-key finger
apt-key adv
apt-key add <file> 
apt-key del <keyid>
apt-key export <keyid> 
apt-key exportall
apt-key update 
apt-key net-update 
apt-key list 
apt-key finger 
apt-key adv 

四、Ubuntu快速安装

一般情况下,官方提供可下载的源,但往往下载速率较慢,此时,可以考虑国内的下载源,那么国内的下载源如何找呢?

Ubuntu wiki 链接:http://wiki.ubuntu.org.cn/%E6%A8%A1%E6%9D%BF:16.04source 中有如下说明: 

Ubuntu 官方(欧洲,国内较慢,无同步延迟)http://archive.ubuntu.com/ubuntu/
Ubuntu 官方中国(目前是阿里云)http://cn.archive.ubuntu.com/ubuntu/
阿里云(北京万网/浙江杭州阿里云服务器双线接入) http://mirrors.aliyun.com/ubuntu/ 
Ubuntu 官方:https://launchpad.net/ubuntu/+archivemirrors

 阿里云官方:https://launchpad.net/ubuntu/+mirror/mirrors.aliyun.com-archive,如下为16.04版本在sources.list的配置:

deb http://mirrors.aliyun.com/ubuntu/ xenial main 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main 

  

参考链接:

http://www.cnblogs.com/jiangz/p/4076811.html

 

转载于:https://www.cnblogs.com/FrankZhou2017/p/7507056.html

<think>好的,我现在需要帮助用户了解Ubuntu下的软件包管理工具,特别是apt、dnf和yum。首先,我得回忆一下相关引用内容。根据引用[2]和[4],Ubuntu主要使用apt作为管理器,而dnf和yum更多用于Red Hat系的系统,比如Fedora或CentOS。用户可能混淆了不同Linux发行版的管理工具。 接下来,我需要明确各个工具的区别。apt是Debian/Ubuntu的,处理.deb;yum和dnf是RPM系的,用于Red Hat系列。引用[3]和[5]提到APT、YUM、DNF是不同发行版的工具,所以Ubuntu下不应该有dnf和yum,除非手动安装,但一般不推荐。 用户的问题可能源于听说其他管理器,想知道Ubuntu是否支持。需要指出在Ubuntu中,应主要使用apt,并解释为什么不用dnf/yum。同时,可能需要提供apt的常用命令,如安装、更新、卸载等,如引用[5]中的示例。 另外,需要确认是否有特殊情况,比如某些软件源可能需要其他工具,但这种情况极少。最后,生成相关问题,帮助用户深入理解,比如如何添加软件源或处理依赖问题。</think>Ubuntu系统的软件包管理主要通过$apt$工具实现,以下是对相关工具的系统性说明: ### 一、Ubuntu原生工具:$apt$ 1. **功能定位** $apt$(Advanced Package Tool)是专为Debian/Ubuntu设计的管理系统,用于管理.deb格式软件包,具备依赖解析、版本控制和自动化安装能力[^2][^4]。 2. **核心命令** ```bash sudo apt update # 更新软件源列表[^5] sudo apt upgrade # 升级已安装的软件包[^5] sudo apt install <名> # 安装指定软件包[^5] sudo apt remove <名> # 卸载软件包(保留配置文件) sudo apt autoremove # 清理无用依赖[^5] ``` 3. **优势特性** - 整合了早期$apt-get$、$apt-cache$等工具的功能 - 提供彩色终端输出和安装进度条 - 默认启用重要安全更新推送 ### 二、其他工具对比 1. **$dnf$与$yum$** - 隶属RPM系管理系统,主要用于Fedora/CentOS等Red Hat系发行版 - Ubuntu原生系统不含这些工具,需通过复杂手动安装且易引发兼容性问题 - 典型差异对比: $$ \begin{array}{|l|c|c|} \hline \text{功能} & apt(.deb) & dnf/yum(.rpm) \\ \hline \text{依赖文件} & control & spec \\ \text{签名} & gpg & pgp \\ \text{事务回滚} & 不支持 & 支持 \\ \hline \end{array} $$ 2. **特殊情况处理** 若需管理.rpm,可通过$alien$工具转换格式后使用$apt$安装,但存在稳定性风险: ```bash sudo apt install alien alien -i package.rpm ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值