diff --git a/chapter_07/Choosing_a_Window_Manager.md b/chapter_07/Choosing_a_Window_Manager.md index c9dfe21..d8241b0 100644 --- a/chapter_07/Choosing_a_Window_Manager.md +++ b/chapter_07/Choosing_a_Window_Manager.md @@ -4,4 +4,5 @@ Slackware Linux包含大量的窗口管理器和桌面环境。窗口管理器 选择窗口管理器的最简单方式就是`xwmconfig(1)`(已包含在Slackware内)。该程序允许用户选择`startx`要运行的窗口管理器。 -![ ](http://slackbook.org/beta/img/xwmconfig.png) +![ ](../img/xwmconfig.png) + diff --git a/chapter_07/Configuring_the_X_Server.md b/chapter_07/Configuring_the_X_Server.md index 3fad0ed..f49a342 100644 --- a/chapter_07/Configuring_the_X_Server.md +++ b/chapter_07/Configuring_the_X_Server.md @@ -1,10 +1,10 @@ ### 配置X服务器 -很久以前,配置`X`是个很难又很痛苦的事情,一个不小心显示屏就崩了。现在`X`进化得更用户友好了。实际上,大多数用户根本不用自己配置`X`, Slackware已经为你做好了简要而合适的配置。不过,仍有一些电脑不能使用自动生成的配置,需要手动调试。 +很久以前,配置“X”是个很难又很痛苦的事情,一个不小心显示屏就崩了。现在“X”进化得更用户友好了。实际上,大多数用户根本不用自己配置“X”, Slackware已经为你做好了简要而合适的配置。不过,仍有一些电脑不能使用自动生成的配置,需要手动调试。 -很久以前,`X`的配置文件位于`/etc/X11/xorg.conf`, 如果你创建了这个文件,`X`会遵从你的每一行设定。不过,X.Org 1.6.3起,`/etc/X11/xorg.conf`再也不是`X`运行所必需了。如果你想要修改`X`的配置,不要去改那个文件,这是不科学的做法。你应该在`/etc/X11/xorg.conf.d/`文件夹内创建文件放入配置。`X`启动时会自动读取这里面的每个文件,这样你就能把配置拆分成几个小文件。举个例子,这是我笔记本上的`/etc/X11/xorg.conf.d/synaptics.conf`文件: +很久以前,“X”的配置文件位于`/etc/X11/xorg.conf`, 如果你创建了这个文件,“X”会遵从你的每一行设定。不过,*X.Org 1.6.3*起,`/etc/X11/xorg.conf`再也不是“X”运行所必需了。如果你想要修改“X”的配置,不要去改那个文件,这是不科学的做法。你应该在`/etc/X11/xorg.conf.d/`文件夹内创建文件放入配置。“X”启动时会自动读取这里面的每个文件,这样你就能把配置拆分成几个小文件。举个例子,这是我笔记本上的`/etc/X11/xorg.conf.d/synaptics.conf`文件: -```Shell +``` darkstar:~$ cat /etc/X11/xorg.conf.d/synaptics.conf Section "InputDevice" Identifier "Synaptics Touchpad" @@ -35,4 +35,5 @@ Section "InputDevice" EndSection ``` -创建这些配置文件,你就能轻松地管理`X`配置。 +创建这些配置文件,你就能轻松地管理“X”配置。 + diff --git a/chapter_07/Setting_Up_A_Graphical_Login.md b/chapter_07/Setting_Up_A_Graphical_Login.md index f810319..85b484a 100644 --- a/chapter_07/Setting_Up_A_Graphical_Login.md +++ b/chapter_07/Setting_Up_A_Graphical_Login.md @@ -1,12 +1,12 @@ ### 设置图形界面登陆 -默认情况下,Slackware Linux启动后显示的是登录提示符和虚拟终端,但这难以满足大多数人的需要。如果你只要运行命令行程序,直接登录就是了。如果你想要运行`X`, 只需运行`startx`, 但像笔记本用户那样,除图形界面外几乎不使用其他功能呢?让Slackware直接把你带到图形界面不是更好吗?幸好,我们能简单地做到这一点。 +默认情况下,Slackware Linux启动后显示的是登录提示符和虚拟终端,但这难以满足大多数人的需要。如果你只要运行命令行程序,直接登录就是了。如果你想要运行“X”, 只需运行`startx`, 但像笔记本用户那样,除图形界面外几乎不使用其他功能呢?让Slackware直接把你带到图形界面不是更好吗?幸好,我们能简单地做到这一点。 Slackware使用System V启动系统,它能让管理员启动或跳转进不同的运行级别(runlevel, 就是系统能处于的不同“状态”)。实际上,关机就是改变运行级别的一个例子。运行级别十分复杂,所以如非必要我们不做探讨。 可用`inittab(5)`来配置运行级别。最常用的就是runlevel 3(Slackware 默认)和runlevel 4(图形界面)。要让Slackware启动图形界面,只要用你最喜欢的编辑器(编辑器可参考`vi`或`emacs`的相关章节)打开`/etc/inittab`. 在文件开头就能看到相关条目。 -```fundamental +``` # These are the default runlevels in Slackware: # 0 = halt # 1 = single user mode @@ -22,7 +22,7 @@ id:3:initdefault: 在这个配置文件(其他配置文件也差不多)中,`#`表示这一行是注释,不被`init(8)`读取。如果你不是很了解`inittab`的内容的话,不用担心,因为许多老手也不是很了解。现在我们最关注的就是上面例子中的最后一行,把`3`改成`4`, 重启。 -```fundamental +``` # These are the default runlevels in Slackware: # 0 = halt # 1 = single user mode @@ -35,3 +35,6 @@ id:3:initdefault: # Default runlevel. (Do not set to 0 or 6) id:4:initdefault: ``` + +> 译者注:**绝对**不要把运行级别改为**0**或者**6**! + diff --git a/chapter_07/What_Is_And_Isnt_X.md b/chapter_07/What_Is_And_Isnt_X.md index 4ffd9b7..33f79ca 100644 --- a/chapter_07/What_Is_And_Isnt_X.md +++ b/chapter_07/What_Is_And_Isnt_X.md @@ -2,6 +2,7 @@ 远古时期,电脑附加设备只有屏幕和键盘,再没有别的了。在广泛运用鼠标之前,都得靠菜单来进行交互。之后诞生了图形界面(GUI),整个世界都为之一新。今天电脑使用者们可能习惯了移动鼠标来点击图标,在酷炫的图像和动画效果下完成某项任务。但UNIX诞生之时还没有GUI, 后来才加上的。很多年来,Linux和它的UNIX兄弟是在没有任何图形界面的情况下完成工作的。但现在用户们应该更喜欢他们的运行在`X(7)`上,有酷炫善良外形,能到处点的GUI的Linux系统。 -那么,什么是`X`? 它是有图标的桌面?是菜单?窗口管理器?还是它标注着地点(译注:此处有梗(X marks the spot))?都不是。GUI分为许多部分,`X`是其中的基础。`X`能从鼠标,键盘和其他设备读取输入,还能控制显卡的工作。总之,`X`能与你的电脑硬件交互以完成图形工作,其他程序只是与`X`交互。 +那么,什么是“X”? 它是有图标的桌面?是菜单?窗口管理器?还是它标注着地点(译注:此处有梗——X marks the spot)?都不是。GUI分为许多部分,“X”是其中的基础。“X”能从鼠标,键盘和其他设备读取输入,还能控制显卡的工作。总之,“X”能与你的电脑硬件交互以完成图形工作,其他程序只是与“X”交互。 + +在这里要提一提一系列名称,“X”只是你可能遇到的名称之一。它还叫“X11”、“xorg”、“X Window System”、“X Window”、“X11R6”、“X Version 11”等等。不管名字是什么,你知道它们指的是“X”就行了。 -在这里要提一提一系列名称,`X`只是你可能遇到的名称之一。它还叫X11, xorg, X Window System, X Window, X11R6, X Version 11, 等等。不管名字是什么,你知道它们指的是`X`就行了。 diff --git a/chapter_17/Installing_Removing_and_Upgrading_Packages.md b/chapter_17/Installing_Removing_and_Upgrading_Packages.md index b69b22b..b5a6176 100644 --- a/chapter_17/Installing_Removing_and_Upgrading_Packages.md +++ b/chapter_17/Installing_Removing_and_Upgrading_Packages.md @@ -1,55 +1,66 @@ ### 软件包的安装、移除和升级 - `pkgtool` 很方便,但用installpkg(8)处理一些不常做的事会更合适一些,比如要安装一个单独的包,或者要安装一整个硬盘的包,又或者想用脚本控制安装过程等等。像所有的Slackware包管理工具一样, `installpkg` 不会自作聪明,只会乖乖的照吩咐办事。来看看 `installpkg` 最基本的用法:告诉 `installpkg` 要安装哪些包,它就会毫不犹豫地安装这些包。 - - darkstar:~# installpkg blackbox-0.70.1-i486-2.txz - Verifying package blackbox-0.70.1-i486-2.txz. - Installing package blackbox-0.70.1-i486-2.txz: - PACKAGE DESCRIPTION: - # blackbox (Blackbox window manager) - # - # Blackbox is that fast, light window manager you have been looking for - # without all those annoying library dependencies. - # - # Also included in this package is the bbkeys utility for controlling - # keyboard shortcut commands from within Blackbox. - # - # The Blackbox home page is http://blackboxwm.sourceforge.net - # - Package blackbox-0.70.1-i486-2.txz installed. + `pkgtool`很方便,但用`installpkg(8)`处理一些不常做的事会更合适一些,比如要安装一个单独的包,或者要安装一整个硬盘的包,又或者想用脚本控制安装过程等等。像所有的Slackware包管理工具一样, `installpkg`不会自作聪明,只会乖乖的照吩咐办事。来看看`installpkg`最基本的用法:告诉 `installpkg`要安装哪些包,它就会毫不犹豫地安装这些包。 + + ``` +darkstar:~# installpkg blackbox-0.70.1-i486-2.txz +Verifying package blackbox-0.70.1-i486-2.txz. +Installing package blackbox-0.70.1-i486-2.txz: +PACKAGE DESCRIPTION: +# blackbox (Blackbox window manager) +# +# Blackbox is that fast, light window manager you have been looking for +# without all those annoying library dependencies. +# +# Also included in this package is the bbkeys utility for controlling +# keyboard shortcut commands from within Blackbox. +# +# The Blackbox home page is http://blackboxwm.sourceforge.net +# +Package blackbox-0.70.1-i486-2.txz installed. +``` 借助于shell通配符,还可以一下子安装很多个包。要从一个已挂载的光盘中安装所有N系列的包,只需要这么做: - darkstar:~# installpkg /mnt/cdrom/slackware/n/*.txz +``` +darkstar:~# installpkg /mnt/cdrom/slackware/n/*.txz +``` + +不论何时,都可以查看`/var/log/packages`目录来了解当前系统中安装了哪些包和它们的版本。用`cat`命令可以显示一个包的内容,包括它的大小,它是做什么的,它在哪里安装了哪些文件: -不论何时,都可以查看/var/log/packages目录来了解当前系统中安装了哪些包和它们的版本。用cat命令可以显示一个包的内容,包括它的大小,它是做什么的,它在哪里安装了哪些文件: +``` +darkstar:~# cat /var/log/packages/foo-1.0-x86_64.txz +``` - darkstar:~# cat /var/log/packages/foo-1.0-x86_64.txz +移除包和安装包一样简单。也许和你想的一样,移除包的命令是`removepkg(8)`。告诉 `removepkg`要移除哪些包,它会在软件包数据库中检查这些包的内容,给出一个警告,然后移除这些包中所有的文件和目录。如果一个文件属于很多个包,则不会被删除,如果一个目录中有其他文件,这个目录会被留下。因此,移除一个包会比安装它更费时间。 -移除包和安装包一样简单。也许和你想的一样,移除包的命令是removepkg(8)。告诉 `removepkg` 要移除哪些包,它会在软件包数据库中检查这些包的内容,给出一个警告,然后移除这些包中所有的文件和目录。如果一个文件属于很多个包,则不会被删除,如果一个目录中有其他文件,这个目录会被留下。因此,移除一个包会比安装它更费时间。 +``` +darkstar:~# removepkg blackbox-0.70.1-i486-2.txz +``` - darkstar:~# removepkg blackbox-0.70.1-i486-2.txz +最后,升级包也是那么简单,你一定猜到了,用`upgradepkg(8)`。 `upgradepkg`先安装新软件包,再移除旧软件包留下的所有文件和目录。要注意的是`upgradepkg`不会检查已安装包的版本是不是比“新”软件包的版本还要高,有了这一点,`upgradepkg`也可以用来降级软件包。 -最后,升级包也是那么简单,你一定猜到了,用upgradepkg(8)。 `upgradepkg` 先安装新软件包,再移除旧软件包留下的所有文件和目录。要注意的是 `upgradepkg` 不会检查已安装包的版本是不是比“新”软件包的版本还要高,有了这一点, `upgradepkg` 也可以用来降级软件包。 +``` +darkstar:~# upgradepkg blackbox-0.70.1-i486-2.txz - darkstar:~# upgradepkg blackbox-0.70.1-i486-2.txz ++============================================================================== +| Upgrading blackbox-0.65.0-x86_64-4 package using +./blackbox-0.70.1-i486-2.txz ++============================================================================== - +============================================================================== - | Upgrading blackbox-0.65.0-x86_64-4 package using - ./blackbox-0.70.1-i486-2.txz - +============================================================================== +Pre-installing package blackbox-0.70.1-i486-2... - Pre-installing package blackbox-0.70.1-i486-2... +Removing package +/var/log/packages/blackbox-0.65.0-x86_64-4-upgraded-2010-02-23,16:50:51... + --> Deleting symlink /usr/share/blackbox/nls/POSIX + --> Deleting symlink /usr/share/blackbox/nls/US_ASCII + --> Deleting symlink /usr/share/blackbox/nls/de + --> Deleting symlink /usr/share/blackbox/nls/en + --> Deleting symlink /usr/share/blackbox/nls/en_GB +... +Package blackbox-0.65.0-x86_64-4 upgraded with new package +./blackbox-0.70.1-i486-2.txz. +``` - Removing package - /var/log/packages/blackbox-0.65.0-x86_64-4-upgraded-2010-02-23,16:50:51... - --> Deleting symlink /usr/share/blackbox/nls/POSIX - --> Deleting symlink /usr/share/blackbox/nls/US_ASCII - --> Deleting symlink /usr/share/blackbox/nls/de - --> Deleting symlink /usr/share/blackbox/nls/en - --> Deleting symlink /usr/share/blackbox/nls/en_GB - ... - Package blackbox-0.65.0-x86_64-4 upgraded with new package - ./blackbox-0.70.1-i486-2.txz. +以上所有工具都可以添加很多有用的参数。比如,向`installpkg`添加`--root`参数可以把包安装在任何目录中。`--dry-run`参数可以命令`upgradepkg`在不对系统做任何改变的情况下显示它要做的事。更多细节请参考man手册。 -以上所有工具都可以添加很多有用的参数。比如,向 `installpkg` 添加 `--root` 参数可以把包安装在任何目录中。 `--dry-run` 参数可以命令 `upgradepkg` 在不对系统做任何改变的情况下显示它要做的事。更多细节请参考man手册。 \ No newline at end of file diff --git a/chapter_17/Package_Compression_Formats/README.md b/chapter_17/Package_Compression_Formats/README.md index 398fc2a..a7028bb 100644 --- a/chapter_17/Package_Compression_Formats/README.md +++ b/chapter_17/Package_Compression_Formats/README.md @@ -1,7 +1,8 @@ ### 软件包的压缩格式 -过去,所有Slackware软件包都采用gzip(1)工具进行压缩,在压缩速度和压缩后的文件大小上,gzip都表现的很好。最近又有了很多新的压缩方案,包管理工具为了支持这些压缩方案,也进行了相应的升级。现在,官方的Slackware软件包采用xz工具进行压缩,扩展名为.txz。老的软件包(还有许多第三方软件包)仍然使用.tgz扩展名。 +过去,所有Slackware软件包都采用`gzip(1)`工具进行压缩,在压缩速度和压缩后的文件大小上,`gzip`都表现的很好。最近又有了很多新的压缩方案,包管理工具为了支持这些压缩方案,也进行了相应的升级。现在,官方的Slackware软件包采用`xz`工具进行压缩,扩展名为`.txz`。老的软件包(还有许多第三方软件包)仍然使用`.tgz`扩展名。 -有必要说明一下,.tgz和.txz(常统称为.t?x)都是用来表示压缩过的tar文件的标准扩展名,它们不是专用的。这样做有很多好处:在几乎所有的UNIX系统中都可以很容易地构建这样的包(许多其他格式的包需要专用的工具链才能构建),而且拆包也非常简单。 +有必要说明一下,`.tgz`和`.txz`(常统称为`.t?x`)都是用来表示压缩过的tar文件的标准扩展名,它们不是专用的。这样做有很多好处:在几乎所有的UNIX系统中都可以很容易地构建这样的包(许多其他格式的包需要专用的工具链才能构建),而且拆包也非常简单。 + +注意并非所有的`.t?z`文件都是Slackware软件包,只不过Slackware软件包以`.t?z`文件的形式存在罢了。`installpkg`不会安装任何非Slackware软件包的`.t?z`文件。 -注意并非所有的.t?z文件都是Slackware软件包,只不过Slackware软件包以.t?z文件的形式存在罢了。installpkg不会安装任何非Slackware软件包的.t?z文件。 diff --git a/chapter_17/Package_Compression_Formats/rpm2tgz.md b/chapter_17/Package_Compression_Formats/rpm2tgz.md index f4f5d52..55d6cc0 100644 --- a/chapter_17/Package_Compression_Formats/rpm2tgz.md +++ b/chapter_17/Package_Compression_Formats/rpm2tgz.md @@ -2,19 +2,22 @@ 最常见的Linux软件包格式之一是RPM,不难发现有开发者只以源代码形式和RPM包形式提供他们的软件。在这种情况下,有三种选择: - 1.自行创建Slackware包。 - 2.直接从源代码编译安装。 - 3.转换RPM包并安装。 +1. 自行创建Slackware包 ++ 直接从源代码编译安装 ++ 转换RPM包并安装 -从源代码构建或者创建Slackware包并不是想象中的那么复杂,但直接从源代码编译安装是不太好的,因为在执行 `make install` 之后,很难追踪哪些东西被安装在了系统中。如何自行创建Slackware包不在本章的讨论范围里。那么只好使用 `rpm2tgz` 了。 +从源代码构建或者创建Slackware包并不是想象中的那么复杂,但直接从源代码编译安装是不太好的,因为在执行`make install`之后,很难追踪哪些东西被安装在了系统中。如何自行创建Slackware包不在本章的讨论范围里。那么只好使用`rpm2tgz`了。 - `rpm2tgz` 把RPM包转换成可以被 `pkgtool` 或 `installpkg `安装的Slackware包,这样一来,既避免了自行创建Slackware包,又实现了对软件包的追踪、移除和升级。 + `rpm2tgz`把RPM包转换成可以被`pkgtool`或`installpkg`安装的Slackware包,这样一来,既避免了自行创建Slackware包,又实现了对软件包的追踪、移除和升级。 - 警告 - 一个Slackware包只是shell脚本加一些代码,相比之下,一个RPM包就像个充满了依赖列表和特殊指令的迷宫。因此, `rpm2tgz` 不是总能奏效,尤其对那些非常复杂的应用程序,而且它也不会像变魔术似的解决依赖关系。 - -要尝试 `rpm2tgz` ,从可靠的网站上下载一个RPM文件并转换它: +> ##### 警告 +> 一个Slackware包只是shell脚本加一些代码,相比之下,一个RPM包就像个充满了依赖列表和特殊指令的迷宫。因此, `rpm2tgz` 不是总能奏效,尤其对那些非常复杂的应用程序,而且它也不会像变魔术似的解决依赖关系。 + +要尝试`rpm2tgz`,从可靠的网站上下载一个RPM文件并转换它: + +``` +rpm2tgz foo-x.x.xx.rpm +``` + +这会产生一个`.tgz`文件,所以转换完毕后,原来的RPM文件完全可以删除。使用`installpkg`安装刚刚创建的Slackware包,要使安装的程序能够真正运行,还要保证所有它依赖的代码也被正确安装了。 - rpm2tgz foo-x.x.xx.rpm - -这会产生一个.tgz文件,所以转换完毕后,原来的RPM文件完全可以删除。使用 `installpkg` 安装刚刚创建的Slackware包,要使安装的程序能够真正运行,还要保证所有它依赖的代码也被正确安装了。 \ No newline at end of file diff --git a/chapter_17/Package_Compression_Formats/slackpkg.md b/chapter_17/Package_Compression_Formats/slackpkg.md index 7a9f544..30f87ef 100644 --- a/chapter_17/Package_Compression_Formats/slackpkg.md +++ b/chapter_17/Package_Compression_Formats/slackpkg.md @@ -1,28 +1,28 @@ #### slackpkg - `slackpkg` 是管理Slackware Linux软件包的自动化工具,它最初出现在slackware-12.1的extra中。自slackware-12.2发布以来,slackpkg已经被包含在了基本系统安装的ap系列中。 +`slackpkg`是管理Slackware Linux软件包的自动化工具,它最初出现在slackware-12.1的*extra*中。自slackware-12.2发布以来,`slackpkg`已经被包含在了基本系统安装的ap系列中。 -就像用 `installpkg` 可以从安装盘的extra目录中安装Slackware软件包一样,用 `slackpkg` 可以从网上把软件包拖过来安装。对安全更新和已被上传到Slackware服务器的重要软件升级来说,这非常有用。 +就像用`installpkg`可以从安装盘的*extra*目录中安装Slackware软件包一样,用`slackpkg`可以从网上把软件包拖过来安装。对安全更新和已被上传到Slackware服务器的重要软件升级来说,这非常有用。 -如果没有 `slackpkg` ,只能这么做: +如果没有`slackpkg`,只能这么做: - 1.在Slackware变要记录中看到有能用的更新。 - 2.在本地的Slackware镜像站中找到更新软件包的下载链接。 - 3.下载软件包。 - 4.使用 installpkg 或 pkgtool 安装下载的软件包。 +1. 在Slackware变要记录中看到有能用的更新 ++ 在本地的Slackware镜像站中找到更新软件包的下载链接 ++ 下载软件包 ++ 使用 installpkg 或 pkgtool 安装下载的软件包 -有了slackpkg,只需要这么做: +有了`slackpkg`,只需要这么做: - 1.在Slackware变要记录中看到有foo的更新。 - 2.slackpkg install foo +1. 在Slackware变要记录中看到有“foo”的更新。 ++ 运行`slackpkg install foo` 很明显,效率提高了。 -要使用 `slackpkg` ,用root权限编辑 `/etc/slackpkg/mirrors` 来为系统选择一个Slackware镜像站,找到和使用的Slackware版本、架构都一致的镜像站,然后取消注释就可以了。镜像列表提供了ftp和http两种访问方式,但只能取消注释一个镜像站。 +要使用`slackpkg`,用root权限编辑`/etc/slackpkg/mirrors`来为系统选择一个Slackware镜像站,找到和使用的Slackware版本、架构都一致的镜像站,然后取消注释就可以了。镜像列表提供了ftp和http两种访问方式,但只能取消注释一个镜像站。 -一旦选择了一个镜像站,就要用命令 `slackpkg update` 来更新远程文件的列表。如果看到有新的软件包被上传到了Slackware服务器,同样要更新远程文件的列表(通常Slackware变要记录里查看,见第18章 追踪系统更新)。 +一旦选择了一个镜像站,就要用命令`slackpkg update`来更新远程文件的列表。如果看到有新的软件包被上传到了Slackware服务器,同样要更新远程文件的列表(通常Slackware变要记录里查看,见“[第十八章、追踪系统更新](../chapter_18/README.md)”)。 -要搜索一个软件包,使用命令 `slackpkg search foo` ,要安装一个软件包,使用命令 `slackpkg install foo` 。 +要搜索一个软件包,使用命令`slackpkg search foo`,要安装一个软件包,使用命令`slackpkg install foo`。 一旦用 `slackpkg` 安装了一个软件包,就可以用 `pkgtool` 或其他包管理命令移除或升级包,这些命令在“软件包的安装、移除和升级”小节中介绍过了。 diff --git a/chapter_17/pkgtool.md b/chapter_17/pkgtool.md index f40b49e..7437113 100644 --- a/chapter_17/pkgtool.md +++ b/chapter_17/pkgtool.md @@ -1,8 +1,8 @@ ### pkgtool -最简单的软件包维护方法就是使用pkgtool(8),它为其他一些工具提供了一个菜单界面。 `pkgtool` 可以安装或移除软件包,查看软件包内容,列出当前已安装的软件包,这些操作都在一个对用户友好的ncurses界面中进行。 +最简单的软件包维护方法就是使用`pkgtool(8)`,它为其他一些工具提供了一个菜单界面。`pkgtool`可以安装或移除软件包,查看软件包内容,列出当前已安装的软件包,这些操作都在一个对用户友好的ncurses界面中进行。 -![pkgtool](http://slackbook.org/beta/png/pkgtool.png) +![pkgtool](../png/pkgtool.png) -基本的软件包维护工作都可以方便的用 `pkgtool` 完成,高级点的则需要用到更灵活的工具。 +基本的软件包维护工作都可以方便的用`pkgtool`完成,高级点的则需要用到更灵活的工具。 diff --git a/chapter_18/The_stable_Branch.md b/chapter_18/The_stable_Branch.md index f3db01c..ca22a51 100644 --- a/chapter_18/The_stable_Branch.md +++ b/chapter_18/The_stable_Branch.md @@ -4,7 +4,7 @@ 每当slackware发布新版本,Slackware的团队会按需发布升级包用以修复严重的安全问题和惹人厌的漏洞。因此让你当前版本的Slackware跟进最新的补丁是非常重要的,这种版本被称之为-stable分支。与之不同的还有一个-current分支,我们会在这个分支上进行下一个稳定版本的开发工作(所以经常会有一些引发问题的提交)。除非你愿意在一个可能出错的系统中工作并可以自食其力地解决这些问题。我们强烈建议你使用-stable分支。 -由于本地无法获得-stable分支的安全更新,所以你需要从互联网上自行获取。许多个人和组织提供Slackware的镜像站,你可以在这些地方以多种方式下载到Slackware的完整目录树(也可能只是patches/目录)。有些镜像站可以在网页上访问,但更常见的方式是从运行着ftp/rsync服务器的镜像站上获取更新。Slackware项目维护着一份按照国家分类的已知镜像站清单。如果你不确定该使用哪个镜像站,可以查看[http://www.slackware.com/getslack/](http://www.slackware.com/getslack/)获得帮助。如果你附近有一所大学,他们很可能会提供一份维护着许多开源项目的镜像站——Slackware可能也在其中。一个镜像站可用的必要条件只有一个——它是官方镜像站的一个完整克隆。通常来说,最好使用距离你较近的镜像站以获得最快的访问速度和最少的网络资源占用。 +由于本地无法获得-stable分支的安全更新,所以你需要从互联网上自行获取。许多个人和组织提供Slackware的镜像站,你可以在这些地方以多种方式下载到Slackware的完整目录树(也可能只是`patches/`目录)。有些镜像站可以在网页上访问,但更常见的方式是从运行着ftp/rsync服务器的镜像站上获取更新。Slackware项目维护着一份按照国家分类的已知镜像站清单。如果你不确定该使用哪个镜像站,可以查看[http://www.slackware.com/getslack/](http://www.slackware.com/getslack/)获得帮助。如果你附近有一所大学,他们很可能会提供一份维护着许多开源项目的镜像站——Slackware可能也在其中。一个镜像站可用的必要条件只有一个——它是官方镜像站的一个完整克隆。通常来说,最好使用距离你较近的镜像站以获得最快的访问速度和最少的网络资源占用。 那么如何知道有可用更新呢?最好的方法是在任意提供及时更新的镜像站上查看ChangeLog.txt文件。你可以在Slackware官网上获得-stable和-current分支的更新日志。但是如果你正在使用一个较旧版本的Slackware,你需要从镜像站上查询是否有可用的更新。 diff --git a/chapter_19/What_Does_the_Kernel_Do.md b/chapter_19/What_Does_the_Kernel_Do.md index 3ea28d5..4a4a960 100644 --- a/chapter_19/What_Does_the_Kernel_Do.md +++ b/chapter_19/What_Does_the_Kernel_Do.md @@ -3,3 +3,4 @@ 你可能听说过人们谈论编译内核或建立一个内核,但究竟什么是内核,它有什么作用? 内核是计算机操作系统的核心。它是整个操作系统的基础。内核充当硬件和应用程序之间的桥梁。这意味着内核(通常)是你计算机上唯一一个负责控制计算机硬件的软件。内核能指导你的硬盘驱动器在硬盘上搜索一个特定的数据流。内核也能指导你的网卡通过电压快速变化来传递数据。内核同时也监控你的硬件。当网卡检测到远程计算机发送的信息,其转发信息给内核。这使得内核成为你计算机上最重要也最复杂的一个软件。 + diff --git a/chapter_19/Working_with_Modules.md b/chapter_19/Working_with_Modules.md index eb82c72..dccd428 100644 --- a/chapter_19/Working_with_Modules.md +++ b/chapter_19/Working_with_Modules.md @@ -1,43 +1,44 @@ ### 设置内核模块 -现代linux内核的复杂度是惊人的。 内核源码在未压缩的情况下有将近400MB大小。有成千上万的开发者为内核贡献代码,内核中有数以百计编译的选项,如果把这些都编译到一起,仅内核的大小都将会很快超过100MB。为了防止内核容量过大(同时也防止内核所占用的RAM过多),大多数内核选项是作为模块(modules)被构建的。你可以把这些模块看做设备驱动程序,它们可以从运行中的内核上被随意添加或移除。但事实上,它们中的许多根本不是驱动程序,但是却包含了诸如网络协议,安全措施,甚至对文件系统的支持等内容。总之,几乎linux内核中任何一个部分都可以被构建成一个可加载模块。 - -我们需要认识到Slackware将为您自动处理大多数模块的加载。当您的系统启动时,`udevd`已经启动并开始查找您的系统硬件。对于找到的每个设备,它都会自动加载适当的内核模块并在`/dev`下创建一个设备节点(device node)。这通常意味着你将不需要自己手动加载任何模块就可以使用您的计算机,但是有时候手动加载也是必要的。 - -那么,我们该如何知道什么模块当前加载我们的计算机上以及我们如何加载和卸载它们?幸运的是我们拥有一套完整的处理这个问题的工具。正如你可能已经猜到的那样,列出模块的工具是`lsmod` - -```bash - darkstar:~# lsmod - Module Size Used by - nls_utf8 1952 1 - cifs 240600 2 - i915 168584 2 - drm 168128 3 i915 - i2c_algo_bit 6468 1 i915 - tun 12740 1 - ... many more lines ommitted ... +现代linux内核的复杂度是惊人的。 内核源码在未压缩的情况下有将近400MB大小。有成千上万的开发者为内核贡献代码,内核中有数以百计编译的选项,如果把这些都编译到一起,仅内核的大小都将会很快超过100MB。为了防止内核容量过大(同时也防止内核所占用的RAM过多),大多数内核选项是作为模块(modules)被构建的。你可以把这些模块看做设备驱动程序,它们可以从运行中的内核上被随意添加或移除。但事实上,它们中的许多根本不是驱动程序,但是却包含了诸如网络协议,安全措施,甚至对文件系统的支持等内容。总之,几乎linux内核中任何一个部分都可以被构建成一个可加载模块。 + +我们需要认识到Slackware将为您自动处理大多数模块的加载。当您的系统启动时,`udevd`已经启动并开始查找您的系统硬件。对于找到的每个设备,它都会自动加载适当的内核模块并在`/dev`下创建一个设备节点(device node)。这通常意味着你将不需要自己手动加载任何模块就可以使用您的计算机,但是有时候手动加载也是必要的。 + +那么,我们该如何知道什么模块当前加载我们的计算机上以及我们如何加载和卸载它们?幸运的是我们拥有一套完整的处理这个问题的工具。正如你可能已经猜到的那样,列出模块的工具是`lsmod`。 + +``` +darkstar:~# lsmod +Module Size Used by +nls_utf8 1952 1 +cifs 240600 2 +i915 168584 2 +drm 168128 3 i915 +i2c_algo_bit 6468 1 i915 +tun 12740 1 +... many more lines ommitted ... ``` 除了向您展示哪些模块被加载外,它还展示了每个模块的大小并告诉你有哪些其他模块正在使用这个模块。 我们有两个负责加载模块的应用程序:`insmod`和`modprobe`。它们两个都可以加载模块并且报告任何错误(例如加载了一个系统中不存在的设备的模块),但我们首选`modprobe`,因为它可以加载任何模块的依赖关系。这两个应用程序中的任何一个都可以被直接使用。 -```bash - darkstar:~# insmod ext3 - darkstar:~# modprobe ext4 - darkstar:~# lsmod | grep ext - ext4 239928 1 - jbd2 59088 1 ext4 - crc16 1984 1 ext4 - ext3 139408 0 - jbd 48520 1 ext3 - mbcache 8068 2 ext4,ext3 +``` +darkstar:~# insmod ext3 +darkstar:~# modprobe ext4 +darkstar:~# lsmod | grep ext +ext4 239928 1 +jbd2 59088 1 ext4 +crc16 1984 1 ext4 +ext3 139408 0 +jbd 48520 1 ext3 +mbcache 8068 2 ext4,ext3 ``` -移除一个模块是一个棘手的过程,这里我们也有两个工具来移除模块:`rmmod` 和 `modprobe`。使用`modprobe`的 [-r] 参数可以移除一个模块。 +移除一个模块是一个棘手的过程,这里我们也有两个工具来移除模块:`rmmod` 和`modprobe`。使用`modprobe`的`-r`参数可以移除一个模块。 -```bash - darkstar:~# rmmod ext3 - darkstar:~# modprobe -r ext4 - darkstar:~# lsmod | grep ext ``` +darkstar:~# rmmod ext3 +darkstar:~# modprobe -r ext4 +darkstar:~# lsmod | grep ext +``` + diff --git a/preface/Why_A_New_Slackware_Book.md b/preface/Why_A_New_Slackware_Book.md index 6ad7a6c..9f0e5ae 100644 --- a/preface/Why_A_New_Slackware_Book.md +++ b/preface/Why_A_New_Slackware_Book.md @@ -1,4 +1,4 @@ -### 为什么会有一版新的Slackware 手册? +### 为什么会有一版新的Slackware手册? Slackware Linux是现存最古老的Linux发行版之一,它至今仍在更新且包含了许多流行开源软件的最新版本。Slackware在保持UNIX原汁原味的同时,也在不断进化着。子系统在改变,窗口管理器一个接一个的出现,新的操作系统管理方法被设计出来。虽然我们反对为了改变而改变,但随着事物的发展,文档会变得陈旧——手册也不例外。