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。
apt仓库以及apt-get分析的更多相关文章
- 如何创建一个简单 APT 仓库
0. 无废话版本 需求: 有一堆 .deb 包,想把它们做成一个 APT 仓库,这样就可以用apk install pkgname进行安装了,这样一方面自己可以规避 dpkg -i xxx.deb 时 ...
- Linux软件源apt 仓库 包 的概念
概念介绍: 软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自动从指定服务器下载并安装. 源列表是/etc/apt/sources.list,里面写了你所用的服务器地址 (其 ...
- debian配置---->/etc/apt/sources.list apt基本源设置指南
yum或apt基本源设置指南 关于: 管理Linux服务器的运维或开发人员经常需要安装软件,最常用方式应该是通过Linux系统提供的包管理工具来在线安装,比如centos的yum,ubuntu或d ...
- studio 连不上远程仓库的各种原因分析
Unable to open the project 1.远程服务器挂了2.网络断了3.登录远程服务器的账号.密码错了4.远程仓库的url地址,被本地的hosts文件重定向了5.要下载远程仓库的某个j ...
- 9-2 yum,dnf和apt
yum, CentOS: yum, dnf YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具 ...
- [转载]Linux软件包及dpkg\apt等方法
Linux软件安装 来源:https://segmentfault.com/a/1190000011200004?share_user=1030000007255638 一.安装包分类 在Linux平 ...
- Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)
apt list *python* Nosee123关注赞赏支持 Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...
- Android客户端性能测试(一):使用APT测试Android应用性能
一.APT介绍: APT:Android Performance Testing Tools,适用于开发自测和定位性能瓶颈,帮助测试人员完成[性能基准测试.竞品测试]. APT提供了CPU利用率实时曲 ...
- 关于Ubuntu下apt的一些用法及和yum的比较
Fedora和Red Hat有yum安装软件,Ubuntu有apt工具. apt简单的来说,就是给Ubuntu安装软件的一种命令方式. 一.apt的相关文件 /etc/apt/sources.list ...
随机推荐
- 九度oj 题目1340:小A的计算器
题目描述: 以往的操作系统内部的数据表示都是二进制方式,小A新写了一个操作系统,系统内部的数据表示为26进制,其中0-25分别由a-z表示. 现在小A要在这个操作系统上实现一个计算器,这个计算器要能实 ...
- mac上安装ruby
(转:http://www.cnblogs.com/daguo/p/4097263.html) 以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号) 步骤0 - 安装系统 ...
- P3694 邦邦的大合唱站队 (状压DP)
题目背景 BanG Dream!里的所有偶像乐队要一起大合唱,不过在排队上出了一些问题. 题目描述 N个偶像排成一列,他们来自M个不同的乐队.每个团队至少有一个偶像. 现在要求重新安排队列,使来自同一 ...
- 【HDOJ5950】Recursive sequence(矩阵乘法,快速幂)
题意:f[1]=a,f[2]=b,f[i]=2f[i-2]+f[i-1]+i^4(i>=3),多组询问求f[n]对2147493647取模 N,a,b < 2^31 思路:重点在于i^4的 ...
- hdu 4965 矩阵快速幂 矩阵相乘性质
Fast Matrix Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Jav ...
- 标准C程序设计七---00
以下内容为阅读: <21天学通C语言>(第7版) 作者:Bradley Jones Peter Aitken Dean Miller(美), 姜佑译 人民邮电出版社 2014.11 ...
- msp430项目编程37
msp430中项目---usb接口编程37 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结
- 关于gcc内置函数和c隐式函数声明的认识以及一些推测
最近在看APUE,不愧是经典,看一点就收获一点.但是感觉有些东西还是没说清楚,需要自己动手验证一下,结果发现需要用gcc,就了解一下. 有时候,你在代码里面引用了一个函数但是没有包含相关的头文件,这个 ...
- Redis命令行之Set
一.Redis之Set简介 1. Set是String类型的无序集合(元素成员唯一). 2. Set是通过hash表实现的,添加.删除.查找的复杂度都是O(1). 3. 每个集合最大成员数为232-1 ...
- Python练习题–持续更新
1.你是一个高级测试工程师,现在要做性能测试,需要你写一个函数,批量生成一些注册使用的账号. 产生的账号是以@163.com结尾,长度由用户输入,产生多少条也由用户输入,用户名不能重复,用户名必须由大 ...