debian版本及远相关信息

昨天安装debian 4.0,对源的选择有些混乱。专门上网找了下文章。转下

由 『 stable 』 这名词就可以猜到八九分意思了吧,是的!这是 Debian 对外发行的版本,这个版本的最大特色就是稳定,但相对的各个软件套件则通常不是最新版。
 
这个版本适用在最需要稳定的 Server 架设环境,所安装软件较少也较为固定。
 
testing
『 testing 』 虽名为测试版,实则已经相当接近于 『 stable 』 版本的程度,这个版本的软件多半是在 『 unstable 』中经由维护、开发人员不断的测试之后流入,所以在某种程度来说,其实已经做过初步的检测,这里头的软件大多也是相当稳定的,而且个软件套件也都会比『 stable 』 里头的新,不过以软件总量来说则比上 『 stable 』 及 『 unstable 』中来的完整、来的多。
 
笔者强烈建议如果想把 Debian 拿来当作 Desktop 平台,『 testing 』 是个很不错的选择。
 
unstable
『 unstable 』对我来说才算是 『 测试版 』,这里头最大的特色就是软件更新速度快,几乎都与该软件同步,因为太新相对的使用 『 unstable 』的人也必须承担更高的风险,有时候您可能会遭遇到一早更新完所有软件后,发现有些软件不能正常运作的状况,不过庆幸的是这种情形大概只会持续一两天左右,因为我说过 『 unstable 』 的特色就是更新速度快,一旦有人回报问题,维护的人很快就会作修正。
 
如果你喜欢 『 玩 』 软件,如果你不在乎有时候系统有出现一些 truobles,那赶快试试这个版本吧!
 
三、以垂直的观点来看 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
这个分类里头的软件都来自非美国地区,当中可能有牵扯到专利、加密..等等问题。
 
四、区别版本的『 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 』。

Leave a Reply

Your email address will not be published. Required fields are marked *