Skip to content

Commit

Permalink
#29 统一展现风格
Browse files Browse the repository at this point in the history
  • Loading branch information
Arondight committed Mar 9, 2016
1 parent fcbc6d6 commit af9160c
Show file tree
Hide file tree
Showing 13 changed files with 137 additions and 114 deletions.
3 changes: 2 additions & 1 deletion chapter_07/Choosing_a_Window_Manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ Slackware Linux包含大量的窗口管理器和桌面环境。窗口管理器

选择窗口管理器的最简单方式就是`xwmconfig(1)`(已包含在Slackware内)。该程序允许用户选择`startx`要运行的窗口管理器。

![ ](http://slackbook.org/beta/img/xwmconfig.png)
![ ](../img/xwmconfig.png)

9 changes: 5 additions & 4 deletions chapter_07/Configuring_the_X_Server.md
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -35,4 +35,5 @@ Section "InputDevice"
EndSection
```

创建这些配置文件,你就能轻松地管理`X`配置。
创建这些配置文件,你就能轻松地管理“X”配置。

9 changes: 6 additions & 3 deletions chapter_07/Setting_Up_A_Graphical_Login.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -35,3 +35,6 @@ id:3:initdefault:
# Default runlevel. (Do not set to 0 or 6)
id:4:initdefault:
```

> 译者注:**绝对**不要把运行级别改为**0**或者**6**
5 changes: 3 additions & 2 deletions chapter_07/What_Is_And_Isnt_X.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`就行了。
91 changes: 51 additions & 40 deletions chapter_17/Installing_Removing_and_Upgrading_Packages.md
Original file line number Diff line number Diff line change
@@ -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手册。
7 changes: 4 additions & 3 deletions chapter_17/Package_Compression_Formats/README.md
Original file line number Diff line number Diff line change
@@ -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文件。
27 changes: 15 additions & 12 deletions chapter_17/Package_Compression_Formats/rpm2tgz.md
Original file line number Diff line number Diff line change
Expand Up @@ -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包,要使安装的程序能够真正运行,还要保证所有它依赖的代码也被正确安装了。
Loading

0 comments on commit af9160c

Please sign in to comment.