apt仓库以及apt-get分析

1 debian repository

参考:https://wiki.debian.org/DebianRepository

1.1 版本代号

sid,still in development,该版本和unstable版本是一样的。

版本可以从多个侧面来进行命名。

第一,从release的角度进行命名。比如,buster、jessie、stretch

第二,使用数字编码,比如7、8、9,然后还有小版本,7.11、8.9

第三,对于当前最新的开发版本,又可以命名为stable、unstable和testing分支,当前的unstable又可以叫做sid。

第四,同样的对于上一个开发版本,可以命名为oldstable、上上个版本,oldoldstable。

1.2 dists目录

这个里面即是各个版本的包仓库,如果当前的开发版本是stretch,那么stable目录是到stretch的软连接,其它的依次类推。

1.3 dists子目录

dists的子目录分为release和suite两大类,release即buster、jessie和stretch这些,而suite即unstable、testing和stable等。

再进一步的子目录又分为contrib、main和non-free。

再进一步的子目录里面是binary-xxx、source,binary-xxx 里面是对应二进制包的元数据,Packages.gz,source里面是对应的源码包的元数据,即Sources.gz。

通过它们可以找到真正的二进制包和源码包。i

1.4 pool目录

真正的debian的二进制包和源码包是在根目录下面的这个pool目录下。

1.5 main、contrib和non-free

全部是free的包在main中,

全部是non-free的包在non-free中

依赖于non-free的包仔contrib中。

这些即是components

1.6 xxx-updates

proposed-updates里面的一些包也会放在这里。

1.7 xxx-proposed-updates

在稳定版的基础上的更新也会进行release,比如7.1、7.2、7.3等等,这些release被称为point release,而这个proposed-updates就是为下一次的point release做准备工作的,也就是说,对稳定版本的更新先放在proposed-updates里面,然后积累到了一定的量之后发布point release。

1.8 xxx-backports

就是同一个发行版的unstalble、testing中的包,在stable下重新编译,使之可以在stable版本下使用。

1.9 xxx-backports-sloppy

就是下一个发行版的unstalbe、testing中的包,在old stable下重新编译,使之可以在old stable版本下使用,比如stretch的tesing中的包,使之可以在jessie的stable中使用,就上传到这个文件夹里面。

1.10 xxx-kfreebsd

kfreebsd指的是使用freebsd kernel的debian发行版。

1.11 xxx-kfreebsd-proposed-updates

同xxx-proposed-updates

1.12 update的最小粒度是包吗?

这些不重要,重要的是,更新之后,所用的包就是新版本的包了。

2 debian开发的流水线

2.1 debian分支开发的顺序

unstable->testing->stable

debian的开发分支叫做unstabel/sid,当需求开发完,并且bug差不多了之后,会froze掉,进入testing分支,这个阶段只是修改bug,当bug解完了,进入下一个stable分支。

3 源

3.1 sources.list文件的结构

每个源占一行

deb是二进制包,deb-src是源码包

deb uri distribution [component1] [component2] [...]

distribution就是suite和release。

4 apt-get install的软件版本同debian版本之间的关系

它们是有对应关系的,是不同的软件包版本组成了不同的debian版本,因此在使用的时候,不同的debian版本在sources.list中指定不同的源来安装和更新相应的软件包。

5 最新的软件版本同debian版本之间的适配关系

debian版本和仓库的release/suite之间是有对应关系的,也就是说,使用stable的debian系统,那么设置源的话,就要用stable的源。因为debian系统是由包构成的。

没有unstalbe版本的debian系统,但是可以通过stable的image来升级到unstalbe版本,首先将源换成unstale的,然后执行apt-get update,然后执行apt-get dist-upgrade。

时间: 2024-10-02 02:31:32

apt仓库以及apt-get分析的相关文章

关于apt 仓库 包 更新

概念介绍: 软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自动从指定服务器下载并安装. 源列表是/etc/apt/sources.list,里面写了你所用的服务器地址 (其中 /etc 代表附加物的意思,英文全称etcetra.换句话说,是一个底层的重要项目,通常添加一些次等重要的零碎事物.今天, "etc"包含了广泛的系统配置文件,这些配置文件几乎包含了系统配置的方方面面,同样非常重要.) (Advanced Packaging Tool(apt)是Lin

debian配置---->/etc/apt/sources.list apt基本源设置指南

关于: 管理Linux服务器的运维或开发人员经常需要安装软件,最常用方式应该是通过Linux系统提供的包管理工具来在线安装,比如centos的yum,ubuntu或debian的apt-get.当然这些工具使用之前需要配置好yum源或apt源. 配置文件: centos配置---->/etc/yum.repos.d/xxx.repo debian配置---->/etc/apt/sources.list 指南: 国内有不少优秀的镜像源服务器,比如mirror.bit.edu.cn(北京理工大学)

Ubuntu的apt与YUM对比

yum install --nogpgpcheck <rpm name> 一.apt的相关文件 /etc/apt/sources.list 设置软件包的获取来源 /etc/apt/apt.conf apt配置文件 /etc/apt/apt.conf.d/ apt的零碎配置文件 /etc/apt/preferences 版本参数 /var/cache/apt/archives/ 存放已经下载的软件包 /var/cache/apt/archives/partial 存放正在下载的软件包 /var/

关于Ubuntu下apt的一些用法及和yum的比较

Fedora和Red Hat有yum安装软件,Ubuntu有apt工具. apt简单的来说,就是给Ubuntu安装软件的一种命令方式. 一.apt的相关文件 /etc/apt/sources.list 设置软件包的获取来源 /etc/apt/apt.conf apt配置文件 /etc/apt/apt.conf.d/ apt的零碎配置文件 /etc/apt/preferences 版本参数 /var/cache/apt/archives/ 存放已经下载的软件包 /var/cache/apt/arc

使用APT测试Android应用性能

一.APT介绍: APT:Android Performance Testing Tools,适用于开发自测和定位性能瓶颈,帮助测试人员完成[性能基准测试.竞品测试]. APT提供了CPU利用率实时曲线图.多维度内存实时曲线图,方便竞品对比测试和定位内存泄露问题:支持进程内存构成分析,支持手工或超过阈值时自动转储(Dump)详细堆内存对象信息,支持多进程,支持生成和导出常用格式的的日志图表. APT相比同类工具,具有下面2大特性: ①.使用Java语言开发,基于Eclipse,跨平台,支持win

apt包管理学习记录

dpkg: dpkg配置文件:/etc/dpkg/dpkg.cfg -i, --install package-file ... [-R,--recursive: 递归安装,file必须指向目录] -r package :移除包,保留配置文件 -P,--purge package:移除包,包括配置文件 -l, --list package-name-pattern... :列出匹配模式的包 -L,--listfiles package-name ...:列出包中的文件 -S,--search f

你必须知道的APT、annotationProcessor、android-apt、Provided、自定义注解

你可能经常在build.gradle文件中看到,这样的字眼,annotationProcessor.android-apt.Provided,它们到底有什么作用?下面就一起来看看吧 1.什么是APT? 随着一些如ButterKnife,dagger等的开源注解框架的流行,APT的概念也越来越被熟知. annotationProcessor和android-apt的功能是一样的,它们是替代关系,在认识它们之前,先来看看APT. APT(Annotation Processing Tool)是一种处

Ubuntu 16.04 LTS软件包管理基本操作使用APT简化命令行下面我们列出 Ubuntu 16.04 LTS 中使用 ATP 命令与老版本 Ubuntu 中软件包管理的用法对比: Ubuntu 16.04 LTS 老版本Ubuntu apt install 包名 替代 apt-get install 包名 apt remove 包名 替代 apt-get remove 包名 apt se

前文 Ubuntu 16.04 新特性中我们已经介绍过,随着 Ubuntu 16.04 LTS 的发布,Ubuntu 的软件包管理命令也发生了变化,新系统采用了 Debian 项目中所使用的 APT(Advanced Package Tool)来完成各种的不同的任务,ATP 命令全面取代了我们之前在 Linux 软件包管理基本操作入门中所介绍的 apt-get.apt-cache 等功能. ATP 在创建之初便是为了解决大量软件包管理所遇到的问题,希望结束类似 Linux 早期系统依赖的一大弊病

【转载】 Android源代码仓库及其管理工具Repo分析

软件工程由于需要不断迭代开发,因此要对源代码进行版本管理.Android源代码工程(AOSP)也不例外,它采用Git来进行版本管理. AOSP作为一个大型开放源代码工程,由许许多多子项目组成,因此不能简单地用Git进行管理,它在Git的基础上建立了一套自己的代码仓库,并且使用工 具Repo进行管理.工欲善其事,必先利其器.本文就对AOSP代码仓库及其管理工具repo进行分析,以便提高我们日常开发效率. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 现代的