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。