APT配置文件之??sources.list

这里有一篇很是不错的文章: http://www.debsir.org/main/?q=node/69
作个记号


3、以水平的观点来看 Debian 特有的三大族群制度:stable、testing、unstable

stable
由 『 stable 』 这名词就能够猜到八九分意思了吧,是的!这是 Debian 对外发行的版本,这个版本的最大特点就是稳定,但相对的各个软件套件则一般不是最新版。

这个版本适用在最须要稳定的 Server 架设环境,所安装软件较少也较为固定。

testing
『 testing 』 虽名为测试版,实则已经至关接近于 『 stable 』 版本的程度,这个版本的软件多半是在 『 unstable 』中经由维护、开发人员不断的测试以后流入,因此在某种程度来讲,其实已经作过初步的检测,这里头的软件大多也是至关稳定的,并且个软件套件也都会比 『 stable 』 里头的新,不过以软件总量来讲则比上 『 stable 』 及 『 unstable 』 中来的完整、来的多。

笔者强烈建议若是想把 Debian 拿来看成 Desktop 平台,『 testing 』 是个很不错的选择。

unstable
『 unstable 』对我来讲才算是 『 测试版 』,这里头最大的特点就是软件更新速度快,几乎都与该软件同步,由于太新相对的使用 『 unstable 』的人也必须承担更高的风险,有时候您可能会遭遇到一早更新完全部软件后,发现有些软件不能正常运做的情况,不过庆幸的是这种情形大概只会持续一两天左右,由于我说过 『 unstable 』 的特点就是更新速度快,一旦有人回报问题,维护的人很快就会做修正。

若是你喜欢 『 玩 』 软件,若是你不在意有时候系统有出现一些 truobles,那赶快试试这个版本吧!

3、以垂直的观点来看 Debian 软件的分布:main、contrib、non-free、non-us
Debian distribution 是一个很注重 『 纯 』 度的 Linux Distribution ,我说纯是 Free 的纯度很高,『 Free 』这个英文字颇有趣,但表明了自由、免费两种含意,正由于如此经常形成初学者的困扰,国内不少相关书籍都各自出现不一样的解释,不过所谓 『 Free Software 』 原意应为 『 自由软件 』,而非 『 免费软件』,何谓自由?就是你能够对该软件作任何你想作的事情,例如:你可使用、修改..甚至贩卖它。这些都是自由软件的特点之一,可是自由软件是否是就没有版权了呢?其实否则,它们或多或少都会宣告成几种特殊的版权发行,最多见的有下列三种:

GNU General Public License (GPL) - ( http://www.gnu.org/copyleft/gpl.html )
Artistic License ( http://language.perl.com/misc/Artistic.html )
BSD style license ( http://www.debian.org/misc/bsd.license)

其中以 GPL 运用最广, BSD License 最有弹性,版权问题并不在本篇文章的讨论之列,法律也不是笔者的专长,有兴趣的朋友请直接前往相关网址研究。

因为 Debian 对 『 Free 』 纯度的坚持,可是有时候有些软件虽然不为自由软件,但却至关的著名,例如: Mozilla ,这样的状况让 Debian 陷入两难,因而 Debian 对于旗下全部软件套件 ( Packages ) 进行分类,底下就是 Debian Packages 的主要分类项目:

main
Debian distribution 最基本及主要且符合自由软件规范的软件 ( packages )。

contrib
这里头软件虽然能够在 Debian 里头运做,即便自己属于自由软件但多半倒是相依于非自由 ( non-free ) 软件。

non-free
不属于自由软件范畴的软件。

non-us
这个分类里头的软件都来自非美国地区,当中可能有牵扯到专利、加密..等等问题。

4、区别版本的『 sources.list 』及两个基本的软件安装指令:tasksel、apt-get
透过上一节的说明,相信您对 Debian 的分级制度已经有了初步的认识,总体的轮廓也逐渐的明显,不过以现实中实际使用的情况而言,每种版本并不是是泾渭分明的。

『 头上冒出了几个问号了吗? 』,简单的说,就算我是使用 『 testing 』 版本的人,我仍是可使用 『 stable 』 或 『 unstable 』 中的软件,这并非假设,举个例子,目前仅 『 unstable 』 中提供最新的 Mozilla 软件,若是您是使用 『 stable 』 或 『 testing 』 的人仍旧是能够安装 『 unstable 』 中的最新版 Mozilla ,怎么作到呢?阅读完『 由修改 『 sources.list 』 来决定软件来源版本 』 这一小节,您就会清楚了。

尽管如此,笔者并不建议同时大量使用不一样层级的软件,由于不少软件之间都有不一样程度的相依性,强行的结果会形成更多软件相依、相斥问题的产生,最终可能影响系统稳定与整个软件升级制度的正常运做。

笔者我的使用的是 『 testing 』 版本,但因为一些个别软件如 Mozilla 、 Gimp 等等因素,免不了仍是会使用到部份的 『 unstable 』 软件,使用至今也无大的 Troubles 出现,个人建议是越接近系统底层的软件如:glibc、xfree86,越是要当心谨慎,由于这些软件多半牵连普遍,一个不留神系统可能得从新再造?!

由修改 『 sources.list 』 来决定软件来源版本
如何决定安装的软件属于何种层级?方法至关容易,全部的信息都记载在 『 /etc/apt/sources.list 』 这个文字文件之中。

sources.list 档案里头的设定格式十分单纯,以下:

deb uri distribution [component1] [componenent2] [...]

底下就各个选项做细部说明:

deb
这一栏只有两种写法,分别为 『 deb 』 与 『 deb-src 』,前者表示所指向的为存放 binary 格式 ( 编译好执行文件的软件套件 ) 软件套件的服务器位置,后者则为 sources 格式 ( 包含原始码的软件套件 ) 软件套件的服务器位置。

简言之,通常咱们只想要安装该软件而不想要去从新编译它时,就在这一栏填入 『 deb 』 , 若是你想取得某软件的原始码 ( sources code ) ,就得加入 『 deb-src 』 , 固然也能够两行都写,以下:

deb http://http.us.debian.org/debian stable main contrib non-free

deb-src http://http.us.debian.org/debian stable main contrib non-free

uri ( Universal Resource Identifier )
uri 指的就是软件套件来源位置,这些位置能够为系统内的某个位置 ( file ) 、能够为 CD-ROM ( cdrom ) 、能够为网络远程位置 ( http 、 ftp )..等等,当你下 apt-get 指令时,就会到这些位置去搜寻软件数据库。总括来讲一共有 file 、 cdrom 、 http 、 ftp 、copy 、rsh 、ssh 等几个参数,而比较经常使用的参数以下列:

file
能够是你系统上的某个目录,以下:

deb file:/home/moto/debian stable main contrib non-free

也能够是你 mount 到本身系统里头的远程 NFS Server,以下:

deb file:/mnt/nfs-server stable main contrib non-free

cdrom
这里固然就是指光驱上光盘片里的位置?,例如:

deb cdrom:/dists stable main contrib non-free

http
透过 http 的协议传送,例如:

deb http://http.us.debian.org/debian stable main contrib non-free

ftp 透过 ftp 的协议传送,例如:
deb ftp://ftp.us.debian.org/debian stable main contrib non-free

值得一提的是透过这样的机制是很是有弹性的,来源位置几乎能够是网络上的任何一个角落,不见得是要 Debian Office 站台,我的制做的 .deb 软件套件也能够开放给网络上的人使用,例如目前的 Debian 官方『 stable 』版本里头的 Linux kernel 不是最新版的,而 bunk 网友本身帮忙作了最新版本的 kernel for debian package,并提供了 『 deb http://people.debian.org/ bunk/debian potato main 』这个私人的位置,则咱们能够把这个位置加入 『 /etc/apt/sources.list 』 设定档里头,再透过 『 apt-get update 』 就能够取得 bunk 所制做的 for debian 的 kernel package ( 目前在 testing 里头已经有最新的 kernel 了,因此不须要在透过其它的来源来安装 )。更详细的 kernel 升级方法请参考 Debian 升级 kernel 真轻松 一节。

这样的分享机制很棒 ! 由于 Debian 官方对于软件筛选有必定的规定,若是某个软件进不了 Debian 的 package tree ,但咱们又不想由 Source tallball 安装, 咱们即可以透过这样的管道让咱们仍旧可使用 Debian 良好的软件管理机制并且能够安心使用额外软件。

distribution
参数可分为 『 stable 』 、『 testing 』 、『 unstable 』,详细定义请参考 以水平的观点来看 Debian 特有的三大族群制度:stable、testing、unstable 一节。

component 参数共分为 『 main 』、『 contrib 』、『 non-US 』、『 non-free 』 详细定义,请参考 以垂直的观点来看 Debian 软件的分布:main、contrib、non-free、non-us 一节。

了解 『 sources.list 』 的撰写规范以后,咱们即可以经由修改此档达成转换不一样版本的需求,例如在 『 stable 』 版本底下,咱们把 『 sources.list 』 内容记载的软件服务器改成指向 『 unstable 』 , 以下:

# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
#deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
#deb http://security.debian.org stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US

deb http://http.us.debian.org/debian/ stable main non-free contrib
deb-src http://http.us.debian.org/debian/ stable main non-free contrib
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free

改成:
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
#deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
#deb http://security.debian.org stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US

deb http://http.us.debian.org/debian/ unstable main non-free contrib
deb-src http://http.us.debian.org/debian/ unstable main non-free contrib
deb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free

如此一来即便身处在 Debian 『 stable 』 的环境底下,也能透过 『 apt-get 指令 』 去安装 Debian 『 unstable 』 中的软件。

关于 『 sources.list 』 一些注意事项
尽管藉由 『 sources.list 』就能让咱们同时取得不一样版本的软件,可是有一点必须特别提醒你们,依照笔者的习惯,除了原先第一次安装时的 『 sources.list 』档案以外,我还会将这个档案分别修改为指向 『 testing 』 的 『 sources.list.testing 』以及指向 『 unstable 』 的 『 sources.list.unstable 』,如需安装其它版本的 Debian 只需置换原来的 『 sources.list 』 再配合 『 apt-get 』 指令便可。

若是您坚持只维护一个 『 sources.list 』 档也是能够的,但请记住一个原则,若是您的 『 sources.list 』中同时包含了 『 stable 』、『 testing 』、『 unstable 』三种来源时,系统会以最新版本为主,换言之,这么作几乎就等于设定为 『 unstable 』 了,由于软件版本的新旧为 『 unstable 』新于 『 testing 』 新于 『 stable 』。

照这么说根本就不须要混和使用,由于系统老是会认最新的嘛,其实会这么作的同常以使用 『 testing 』 版本的人最多见,这是因为 『 testing 』 里头软件是三种版本之中最少的,因此有时候会找不到 Debian 里头 『 应该 』 有的软件,这种状况笔者就会建议, 『 stable 』 与 『 testing 』 混用,如此一来若是您要安装的软件不在 『 testing 』 里头,系统还能够到 『 stable 』 里头去搜寻,若是仍是找不着那能够确定 Debian 没有归入该软件 。

若是您决定跟笔者同样使用 『 testing 』 版本的话,请切记不要同时把 『 unstable 』 的服务器来源加进你的 『 sources.list 』,由于一旦更新完毕,您的系统也已经变成 『 unstable 』 版本了,切记!切记!

底下是笔者的 『 testing sources.list 』:

# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.

deb http://http.us.debian.org/debian testing main contrib non-free
deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free

deb-src http://http.us.debian.org/debian testing main contrib non-free
deb-src http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free

#for gnome

#deb http://spidermonkey.ximian.com/distributions/debian unstable main
#deb http://red-carpet.ximian.com/debian testing main

台湾 debian mirror site 列表
我知道每一个朋友网络品质不尽相同,以笔者为例链接美国速度还不错,可是必定有更多朋友连连上美国都有困难,不要紧,别气馁,您能够试试底下的台湾 Mirror 站台:

淡江
deb http://ftp.tku.edu.tw/OS/Linux/distributions/debian/ testing main non-free contrib

deb http://ftp.tku.edu.tw/OS/Linux/distributions/debian/non-US testing/non-US main non-free contrib

debian 台湾
deb http://debian.linux.org.tw/debian woody main non-free contrib
deb http://debian.linux.org.tw/debian-non-US woody/non-US main non-free contrib

中山
deb ftp://ftp.nsysu.edu.tw/Linux/Debian/ testing main contrib non-free
deb ftp://ftp.nsysu.edu.tw/Linux/Debian/debian-non-US testing/non-US main contrib non-free

apt-get 指令操做
我常跟朋友戏称" 要学 Debian 只要学会 apt-get 这个指令就好了 ",固然这是玩笑话,也绝对不可能如此单纯,不过我会这么说是由于等到您的 Debian 系统彻底安装完毕以后,您就会像我同样退化到天天就只会下『 apt-get update;apt-get upgrade 』 指令了。 :-)

在 Debian 里面,关于软件的安装、移除、升级彻底靠 dpkg 这个指令来完成 ( 关于 dpkg 更详细的介绍,请参考 dpkg 一节 ),dpkg 指令功能很强大,但却相对的复杂了许多,也形成使用上的不便,所以目前衍生出许多 dpkg 的前端 ( front end ) 软件管理程序 ( 请参考 众多的 dpkg 前端软件管理程序 一节 ) ,帮助咱们简化软件管理的步骤,而 『 apt-get 』是我最为熟悉也是最受 Debian 使用者喜好的一套指令式程序。如今也经有人将『 apt-get 』 移植到其它的 GNU/Linux Distribution ( 注一 )。

或许您被上一节 " 区别版本的『 sources.list 』及两个基本的软件安装指令:tasksel、apt-get" 的『 sources.list 』搞的头晕脑胀,不过笔者相信等您了解本节介绍的 『 apt-get 』 指令以后,必然有『 豁然开朗 』、『茅塞顿开 』 之感。

『 apt-get 』指令操做很是简单,底下列出比较经常使用的选项及参数,要获得最完整的信息请 『 man apt-get 』。

注意!!执行 『 apt-get 』 指令时需以 『 root 』 身份执行 !

apt-get update

软件数据库同步:
这是『 apt-get 』指令的起点,在下达任何 『 apt-get 』 相关软件安装或升级指令前,必定得先下『 apt-get update 』指令,这会让系统依照 『 sources.list 』设定文件内纪录的软件来源服务器位置,进行软件数据库比对动做,如此才能知道目前系统上安装的软件跟服务器上可抓取的软件版本是否一致,如不一致表示有更新版的软件能够升级或安装,接下来的 『 apt-get install 、 apt-get upgrade 、 apt-get dist-upgrade..』才能完成后续动做。
apt-get install

软件安装:
安装软件最怕的就是软件间的相依、相斥关系,在 『 前言 』 里头笔者也提到过去使用的其它 GNU/Linux Distribution 的恼人经验,可是在 Debian 里头安装软件是一件很是愉悦的事情,只要 『 apt-get install 』一行指令简简单单轻轻松松便可完成,全部相依、相斥 Debian 都会帮咱们 take care ,您要作的就是 『 Say Yes 』。

apt-get remove

软件移除:
与 install 同样,Debian 同样会帮您处理移除软件时所发生的相依问题。

apt-get upgrade

软件升级:
日常咱们很难顾虑到系统上所安装的数十甚至数百套软件的版本是否有新版出现,如今只要下这个指令 Debian 便会自动找出全部有新版的软件套件并逐一升级。

范例:
底下是笔者执行完 『 apt-get upgrade 』 系统报告搜查状况,并询问是否赞成升级的画面:
apt-get dist-upgrade

系统升级:
当转移整个系统时,如 『 stable 』 转换到 『 testing 』,或是系统运行好一段时间都应该下这个指令,它会聪明的处理到不少软件相依、相斥的问题。

dist-upgrade

apt-get source

若是您想取得某个软件套件 ( packages ) 的原始码能够透过这个指令达成。

apt-get clean
咱们透过 apt-get 安装的任何软件都会先下载到 『 /var/cache/apt/archives/ 』及 『 /var/cache/apt/archive/partial/ 』 目录底下,通常预设 apt-get 在安装完软件后是不会把上述位置底下的『 .deb 』 杀除,一段时间后您若是以为系统空间不足,您能够下 『 apt-get clean 』让系统自动清理这个目录。

apt-get autoclean
相似 『 apt-get clean 』,下此参数时 apt-get 在安装完毕后会自动删除该软件的 『 .deb 』 ?。

apt-get check
apt-get 不是万能,有时候也是会出现问题,如附图 broken,遇到有问题的时候您能够下 『 apt-get check 』来诊断问题所在。

apt-get remove --purge `deborphan` ( 清除系统多余的 library )

当您使用 debian 一段时间后,若是您常常安装、移除软件必定会出现残余 library 在系统的情况,缘由是当您安装软件时, debian 依照软件相依特性安装了额外的 library,可是当您移除该软件时,当初连带安装的 library 不见得会一块儿被移除,长此以往系统就会出现残余的 library,这个时候您即可如下这行指令,为您扫除系统中无用的 library ,确保系统的清洁性。

其它经常使用辅助选项:

-f ( --fix-broken )
假如没法安装,请试着下"-f"参数。

-d ( --download-only )
只下载 『 .deb 』 而不安装,下载的档案会存放在 『 /var/cache/apt/archives/ 』底下。

例子:『 apt-get -d install aterm 』。

--purge
这个参数会帮助您移除跟您想要移除软件的相关软件。

例子:『 apt-get --purge remove aterm 』。

转载子以上地址
相关文章
相关标签/搜索