KISS(Keep it simple,stupid──保持简单)是Slackware一贯的原则,尽量保持系统的简洁,从而实现稳定、高效和安全。在Slackware的哲学里面,简单(Simple)意味着系统设计的简洁明了,而不是用户友好(User friendly),为了达到简单的目标,Slackware在一定程度上牺牲了易用性。
在KISS原则的指导下,即使在GUI得到大量应用的今天,即使是现在的许多用户已经对文本界面感到陌生甚至恐惧,Slackware始终如一地保持着文本界面的系统安装程序,保持着文本界面的系统设置工具。在Slackware看来,图形化的安装界面和系统管理工具虽然界面友好,但是过于复杂。
BSD方式的启动管理,是Slackware最为特立独行的地方。在绝大多数发行版都采用了System V的启动管理方式的今天,Slackware仍然坚持了BSD方式,其原因也是因为BSD方式更为简单直观。
Slackware在软件包管理上的独树一帜也是KISS原则的体现。它所采用的tgz格式的软件包,就是普通的tar.gz格式的压缩文件,包管理工具也只是一些shell脚本。
在软件包的选择上,Slackware不贪多求全,只安装一些常用的软件。软件版本不一定选最新的,而是对安全性和稳定性的考虑更多一些,目的也是减轻系统管理工作的负担。
正是一直以来对KISS原则的坚持,Slackware赢得了简洁、安全、稳定、高效的名声,也赢得了一大批的忠实用户。
以下,我将对Slackware的这几个特点进行详细的说明。
文本界面的安装和设置工具
10年来Slackware的安装程序都是文本界面的,理由在于文本界面对系统资源的占用低,另外,即使系统对机器的图形设备支持得不好,只要文本界面能够工作,就能够完成系统的安装。尽管文本界面的安装程序现在的许多用户会觉得陌生,但是只要克服最初的畏难情绪,认真仔细地根据屏幕的提示进行操作,安装Slackware系统绝对不是一桩难事,飞快的安装速度则是对使用文本界面的报偿。
Slackware几乎没有提供图形化(GUI)的系统配置程序,只有有限的几个文本界面的设置工具。相比之下,Redhat有名为redhat-xxx-config的配置工具,Mandrake有著名的Drake系列配置程序,Suse则提供了集成化的YaST配置中心。类似这样的东西,在Slackware里面一律欠奉。
在Slackware的设计者看来,文本界面的设置工具相对于图形界面更为简单,只要能进入系统,文本界面的命令就能发挥作用;图形化的工具则需要图形系统的支持才能正常工作。另一方面,虽然图形化的设置工具在一定程度上使得系统管理更为容易,但是也隐藏了系统设置的很多细节。而在Slackware中,你需要了解更多的细节,这样即使没有专门的配置程序,你往往可以直接用编辑器编辑系统的配置文件,给你充分控制系统的感觉。
需要指出的是,尽管Slackware在系统设置方面只使用文本界面的工具,但并不意味着它排斥图形系统。Slackware提供了标准的XFree86或Xorg(从Slackware 10.0开始)的X Window系统,所有基于X Window的软件都能够在Slackware中顺利安装和运行。
BSD方式的启动管理
在目前绝大多数的发行版选择了System V式的启动脚本的今天,Slackware仍然坚持使用BSD方式的启动脚本。在Slackware看来,System V式的脚本会给系统管理带来不必要的复杂性,其复杂的结构既难于理解又难于维护。当然,System V的支持者们认为System V的结构更灵活、功能更强大。使用BSD方式启动脚本的好处在于更加容易跟踪系统的启动过程,其结构更为直观易懂,修改起来也非常方便。然而,因为一些大型软件是针对System V式的Linux系统而设计的,在Slackware中安装会遇到不兼容的麻烦。为了提高Slackware系统的兼容性,从7.0版起,Slackware中也新增了对于System V启动脚本的支持。
简单灵活的软件包管理机制
Slackware对于软件包的管理方式,也是它区别于许多别的发行版的显著特点。
对Linux系统稍有了解的用户大都知道,不同的发行版对于软件包的管理提供了不同的机制,一则方便软件的安装和卸载,二则希望藉此解决软件安装中经常遇到的软件包之间互为依赖的问题。最常用的软件包格式是Redhat开发的rpm格式,几大主流发行版如Redhat、Mandrake、SuSE均采用了这种格式,而Debian使用的是它自己的deb格式,还有一些发行版采用了自己独有的一些格式。
Slackware采用的是普普通通的tgz格式。tgz格式实际上就是经过gzip压缩、用tar打包的文件格式,和常见的tar.gz在格式上完全一致,所不同的是在tgz包里面增加了供Slackware的包管理工具识别的描述文件,提供了软件的安装目的地等信息。安装软件时,Slackware的包管理工具在解压的同时就把各个文件依据描述文件的内容复制到相应的目的地。
需要特别指出的是,Slackware在安装tgz包时,不考虑依赖性,也就是说,它不会检查这个新安装的软件和系统原有的其他软件之间是否发生冲突,也不检查是否需要先安装别的软件包才能使当前这个软件正常工作。在用惯了rpm的用户看来,这样子岂不是太不保险?Slackware的理由则是:系统管理员应该知道自己系统里有什么东西,也应该知道要安装什么东西。既然各种软件包管理工具都不可能从根本上杜绝dependency hell的恶梦,不如干脆由用户自己来决定。
由于tgz格式的软件相对来说比较少,使用Slackware时经常需要从源代码自行编译软件。有趣的是,尽管在软件包管理上Slackware基本上采取的是“放任自流”的方式,但编译软件时很少遇到缺这个库、少那个库的问题,大多数情况下是非常顺利的。
为了方便Slackware的软件升级和安装,并在依赖性管理上作出改进,出现了Swaret、Slapt-get和SlackUpdate等项目。
中文化
能否很好地支持中文,是中文用户选择Linux发行版的一个重要标准。
在很多人的印象中,Slackware对中文的支持不好,这也是Slackware的中文用户比较少的原因之一。实际上,Slackware系统中包含了所有Linux国际化支持的内容,它对中文或其他文字的支持并不比别的发行版差,只不过默认安装时,Slackware没有提供针对国际化内容进行设置的选项,系统中也没有自带中文TrueType字体和输入法。一旦进行一些简单的设置并安装上中文TrueType字体和输入法之后,你就能得到一个毫不逊色于其他发行版的中文桌面环境。
历史上,Slackware确实存在对中文支持不太好的问题,但这是在Linux国际化程度比较差的大环境下,几乎所有发行版都存在的普遍问题。在当时,这促成市场上涌现出了几种以中文处理为优势的“国产”Linux。
为了方便解决中文处理的问题,海峡对岸的同胞发起了对Linux进行汉化的Chinese Linux Extension(CLE)项目,把一些零散的中文处理技术整合成一个比较完整的解决方案。CLE的工作成果移植到Slackware之后,确实大大方便了中文用户。但是,随着glibc、X Window对国际化支持的进步,系统及应用程序的国际化支持程度也大幅度提高,几乎所有的中文化支持都可以在系统默认配置的基础上通过较为简单的设置而实现,不再需要像过去那样安装特殊的中文应用程序。在这样的背景下,依据我个人的使用经验,从Slackware 8.1开始,CLE基本上失去了存在的必要性。
Slackware的当前版本已经可以做到通过安装中文TrueType字体、修改配置文件、安装中文输入法这几个步骤,很容易地实现中文显示和输入。系统级的中文打印和LaTeX的中文支持,也能够用比较简单的步骤实现。
基于Slackware的项目
由于Slackware系统比较简洁、干净,易于在它的基础上进行开发,几年来基于Slackware衍生出了几个发行版和Live-CD项目。
发行版:
- CollegeLinux
这是瑞士的Robert Kennydy College在Slackware的基础上开发的一个发行版,目的是为该学院的学生乃至所有其他的学生提供一个易于安装和使用并区别于商业化发行版的Linux操作系统。
- VectorLinux
这个发行版对Slackware进行了裁减,完全安装后只占用大约700M硬盘空间,强调系统的小巧、快速,并保持了Slackware稳定、安全的特性。
- Slackintosh
这个项目是将Slackware的软件包移植到PowerPC(例如Mac)环境下的尝试。可惜的是,项目的开发者已经宣布无限期地延迟这个项目。
Live-CD
所谓Live-CD就是一个在光盘上运行的Linux系统。从Slackware 9.1开始,其第二张安装CD就是一个Live-CD。除此之外,还存在着其他的Live-CD项目:
- Slax
这个项目的主要目标是在将内容控制在185M左右(能刻录到8cm光盘上)的前提下,提供尽可能多的应用软件。运行Slax后的个性化设置可以储存在软盘、硬盘甚至USB闪存盘上。Slax的汉化版本可以在这里找到。
- Stux
Stux分为两种版本,完全版内容在650M以下,精简版(Dino-Stux)的内容在255M以下。
网络资源
下面列出来Internet上一些有关Slackware的资源:
Slackware的官方网站:http://www.slackware.com/这是Slackware的官方主页,但是除非发生特殊的事件,主页很少更新,不知情的人看来会以为项目已经“死”了。
软件下载:http://www.linuxpackages.net/这里汇集了世界各地的Slackware用户贡献的、针对不同Slackware版本编译的tgz包。网站还提供了讨论问题的论坛和有关Slackware安装和设置的文档等内容。网站特别介绍了如何制作规范的tgz包的方法。
电子书籍:
中文资源:
结语
在一些人眼中,Slackware似乎没有对Linux社区做出什么贡献,它只是把现有的软件绑在一起。但是,Slackware既然能成为目前存活时间最长的发行版,拥有一批忠实的用户,是它一直坚持KISS原则、保持自己独特的风格的结果,这种坚持给用户带来一个简洁、高效和稳定的系统。
Slackware打包时,对内核和软件的改动尽可能少,除非发现安全漏洞才会打补丁,最大限度地保持了内核和应用软件的原汁原味。
由于Slackware在系统管理上的简单、透明,以及“不太友好”的配置工具,用户在进行系统管理时,需要对系统有更加深入的了解,更容易真正理解Linux的运行机制。
正是由于上述的原因,从Slackware入手学习Linux,虽然门槛稍为有点高,但是更容易接触到Linux的本质。在Slackware社区,最经常被引用的一句话就是:“When you know Slackware you know Linux. When you know Red Hat, all you know is Red Hat.”