zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    【基础算法】- 全排列
    【基础算法】- 2分查找
    区块链培训
    Static Binding (Early Binding) vs Dynamic Binding (Late Binding)
    test
    No data is deployed on the contract address!
    "throw" is deprecated in favour of "revert()", "require()" and "assert()".
    Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
    京都行
    Failed to write genesis block: database already contains an incompatible
  • 原文地址:https://www.cnblogs.com/hustdc/p/7273811.html
Copyright © 2011-2022 走看看