Slackware

Slackware Linux
Slackware logo from the official Slackware site.svg
Slackware 15.0 screenshot.png
开发者 Patrick Volkerding
作业系统家族 Linux
运作状态 正在进行
原始码模式 自由软体
最新版本 15.0[1]在维基数据编辑(2022年2月2日,3个月前)
核心类别 单核心Linux
预设使用者介面 KDE Plasma桌面
许可证 GPL
官方网站 slackware.com

SlackwareSlackware Linux, IncPatrick Volkerding制作的Linux发行版本。Slackware走了一条与其他的发行版本(Red HatDebianGentooopenSUSEMandrivaUbuntu等)不同的道路,它力图成为「UNIX风格」的Linux发行版本。它的方针是只吸收稳定版本的应用程式,并且缺少其他Linux版本中那些为发行版本客制化的组态工具。

历史和命名

Slackware吉祥物 -- 叼烟斗的Tux

第一个Slackware的版本1.00在1993年7月16日由创立者和开发领导者Patrick Volkerding发布,[3]。 它是基于SLS Linux并以3½" 软碟为镜像在匿名FTP上发行。Slackware是现存最古老的Linux发行版本,在2003年度过了它的十周年纪念。

「Slackware」这个名字借用自《大教堂和市集》(The Cathedral and the Bazaar)中的术语「Slack」。

在早期的发布版本中,发行版本带有三个使用者帐号:"satan", "gonzo"和"snake"。它们是作为范例被提供,但是后来的版本中去除了这些帐号,因为它们有潜在的安全漏洞。

在1999年,Slackware的发布版本号从4一下子跨越到了7。Patrick Volkerding作出解释[4]:这是出于市场推广的考虑,为了告诉人们Slackware和别的Linux发行版本一样「新」(up-to-date),当时许多其他发行版本的版本号为6。

在2004年,Patrick Volkerding得了严重的疾病[5],Slackware一下前途未卜。在他痊愈后很快恢复了Slackware的开发。

在2005年,GNOME桌面环境被从待发布的版本中删除,移交给了社群进行支援。GNOME的删除被Linux社群中的一些人认为是一个警讯,因为GNOME在各种Linux发行版本中都可以找到,一些由社群建立的支援计划也因此诞生。

贯穿Slackware的历史,出现一些在Slackware基础上制作的发行版本和LiveCD。一些流行的发行版本就起源于Slackware,包括SUSE Linux Enterprise,College Linux和Slax

发布版本

x86发布历史
版本 日期
1.0 1993年7月16日
2.0 1994年7月2日
3.0 1995年11月30日
3.1 1996年6月3日
3.2 1997年2月17日
3.3 1997年6月11日
3.5 1998年6月9日
4.0 1999年5月17日
7.0 1999年10月25日
7.1 2000年6月22日
8.0 2001年7月1日
8.1 2002年6月18日
9.0 2003年3月19日
9.1 2003年9月26日
10.0 2004年6月23日
10.1 2005年2月2日
10.2 2005年9月14日
11.0 2006年10月2日
12.0 2007年7月2日
12.1 2008年5月2日
12.2 2008年12月11日
13.0 2009年8月28日
13.1 2010年5月24日
13.37 2011年4月27日
14.0 2012年9月28日
14.1 2013年11月4日
14.2 2016年7月1日

Slackware主要为x86 PC开发。然而曾经存在一些官方的移植,像针对DEC AlphaSPARC架构的。从2005年起,开始出现针对System/390架构的官方移植。同时也存在一些非官方的移植:ARMDEC Alpha、SPARC和PowerPC

Slackware针对x86的最新稳定发布版本是14.2(2016年7月1日),其中包括了4.4.14版本核心、以及KDE SC 4.14.32(内有Amarok2.8.0媒体播放器)、XFCE 4.12.1、最新版本的FirefoxThunderbirdglibc-2.23、gcc-5.3.0以及其它常用软体。

Slackware的测试/开发版本称为 -current,这是为了可以使用更多超前的组态。

Slackware 13.0,官方首次提供64位元的版本下载。

设计理念

KISS

KISS,代表「保持简洁,傻瓜」Keep it Simple, Stupid),是一个可以解释很多Slackware中设计选择的概念。在这个文字中,「简洁」simple)指系统设计的观点,而不是指易用性。这也是为什么这个系统中只有极少数使用GUI的组态工具。GUI工具(按照这理论所说)过于复杂,比起命令列工具来会引入更多的问题。这种原则导致的最终结果是Slackware以不友好的代价换取了系统非常快速、稳定和安全的特性。Slackware并不包含类似于service、chkconfig一类的用于代替使用者修改系统组态的多余软体,它将系统「真实」的一面毫不隐藏的呈现给使用者,让人们看到「真正的」Linux。批评的观点一般集中于它让很多事做起来太费时而且难以学习。支持者回应到在这种灵活和透明的系统中操作得到的经验比起在那些遮掩内部细节的系统中要多得多。

启动指令码

Slackware使用BSD风格的初始化指令码,其他的Linux发行版本大多使用System V风格的初始化指令码。基本上System V风格的每个执行级都是存放初始化指令码的子目录,而BSD风格仅为每个执行级提供一个指令码。BSD风格的拥护者认为这样更佳,因为系统可以更容易找到,读取,编辑,和维护指令码。System V的拥护者认为System V的结构强大和灵活。

System V初始化[6]相容在7.0版本之后被引入了Slackware中。

软体套件管理

Slackware的软体套件管理系统很独特。它的软体套件管理系统和别的发行版本一样可以很容易的安装、升级、移除包。但是它不会试着去追踪或者管理涉及哪些依赖关系(也就是保证系统拥有所有的安装套件内的程式需要的系统库)。如果所需要的先决条件不能满足,在程式执行之前不会有提醒和指示。

包都经过gzip压缩和tarball打包,但副档名是.tgz,而不是.tar.gz。他们的结构是这样的:当在根目录下解压缩和释放,其中的档案会放置于它们的安装位置。因此可以不使用Slackware的包工具来安装套件,而仅仅使用targzip命令,如果包中有doinst.sh指令码,一定要执行它。

相对的,Red HatRPMCpio档案,Debian.deb档案是ar档案。他们都包括一些依赖关系的资讯,包管理器工具可以使用这些资讯来寻找和安装先决条件。他们在先决条件满足前是不会安装新包的(虽然可以强制进行)。

关于追踪或者无视依赖关系孰优孰劣的争论并不很热闹,这多少让人想起了持续甚久的"viEmacs"的「宗教战争」。Slackware解决问题的方法被技巧熟练的使用者群很好的接受了。

自动依赖的解决方案

由于Slackware本身不引进解决依赖关系并自动下载安装的工具,一些业已存在的第三方软体工具可以为它提供这方面的功能,就像APTDebian所作的那样。

一些工具分析已安装的包以决定依赖关系,决定需要什么库档案,然后寻找什么包提供这些库档案。这些自动处理很费时,比起APT的手动调整方法原始的多。然而它提供了一个令人满意的解决。

Slackware 9.1在第二张CD上提供了作为补充的Swaret,但是并不预设安装它。自Slackware 10.0之后,Swaret被从发行版本中删除但作为第三方的包仍然可用。

slackpkg自Slackware 9.1开始包含在/extra中。

slapt-get并不提供依赖关系的解决。它只是提供解决依赖关系的框架,用以处理一些流行的类似APT的Slackware相容包。一些Slackware衍生版本利用了这些功能的优点。

网际网路社群

Slackware是很多现今不那么流行的论坛的讨论主题,例如Usenet新闻群组alt.os.linux.slackware[永久失效连结]以及irc.freenode.net上的IRC频道#slackware

参考资料

  1. ^ Slackware 15.0 release notes. 2022年2月2日 (英语). 
  2. ^ The Slackware Philosophy页面存档备份,存于网际网路档案馆), Slackware Project
  3. ^ Slackware 1.0 Release Announcement Archived 2011-08-21 at WebCite, Slackware Project
  4. ^ Why the jump from 4 to 7页面存档备份,存于网际网路档案馆), Slackware FAQ
  5. ^ Slackware's Pat needs your help页面存档备份,存于网际网路档案馆), OS News
  6. ^ Slackware's init页面存档备份,存于网际网路档案馆), Peter Kaagman

参见

外部连结

#