7. 特定软件包

下列章节包含了在 Fedora Core 5 test1 中发生了重要变化的软件包的相关信息。为了方便查找,以 Anaconda 使用的分类进行组织。

[小心]信息可能过时

文章的内容需要为 Fedora Core 5 test1 更新。

7.1. 基本组件

这一章是与基本系统组件相关的信息

7.1.1. Fedora Extras 仓库

Fedora Extras 是更大的 Fedora Project 的一部分,是基于社区力量,由贡献者创建的一个软件仓库,与 Fedora Core 兼容。Fedora Extras 仓库在 Fedora Core 5 test1 及之后的版本中将默认启用。

可以从这里得到更多有关 Fedora Extras 的信息:

http://fedoraproject.org/wiki/Extras

如果想从 Fedora Extras 安装任何软件,可以使用 yum 命令。

yum install <packagename>

这里,<packagename> 是您要安装的软件的名称。例如,如果您需要安装 abiword 软件包,那么命令 yum install abiword 将自动安装它,并解决依赖关系。

7.1.2. Audit 守护进程 auditd 以及日志文件

Audit 守护进程 auditd 默认被启用。当 auditd 运行时,内核将 audit 信息发送到 /var/log/audit/audit.log 中。这个文件的位置在 /etc/auditd.conf 中指定。

SELinux 的 AVC 信息使用 audit 来发送,这些信息现在在 /var/log/audit/audit.log 中。

当 autitd 没有运行时,内核将 audit 信息传送给 syslog,这些消息通常保存到 /var/log/messages 文件中,可以用 dmesg 命令查看。

Audit 扩展现在被编译到了 PAM 中。任何登录系统,或是修改用户帐号属性的程序都将产生 audit 信息。

要启用内核中的审计,必须在启动中将 audit=1 传递给内核。也可以在运行时使用下列命令来启用审计:

auditctl -e 1

7.1.3. LinuxThreads 与 NPTL

作为去除过时的 LinuxThreads 库的一个步骤,在 Fedora Core 5 test1 中编译和连接的代码现在自动使用 NPTL 头文件和库。

在过去的版本中,从 Red Hat Linux 9 开始,默认的线程模型是 LinuxThreads,因为接口是最通用的。NPTL 接口的优点在于,线程取消的处理更快 (使用 -fexception 参数时,即使在 C 代码中)。现在附加的接口也已可用,不需要特殊的编译器和连接器参数。也就是说,您不必再用 -I/usr/include/nptl-L/usr/lib{,64}/nptl 选项了。注意 lib{,64} 应该理解为 lib64,如果这个平台将 DSO 文件放在 lib64/ 目录的话。

在 Fedora Core 5 test1 中仍然可以创建使用 LinuxThreads 的代码。为此,必须安装 linuxthreads-devel 软件包,并且

-I/usr/include/linuxthreads -L/usr/lib{,64}/linuxthreads

选项必须被传递给编译器。

过去,您可以使用运行时环境变量选择 glibc 的版本,以及 libpgthread DSH。现在,您需要同时指定这个环境变量:

LD_LIBRARY_PATH=/lib{,64}/obsolete/linuxthreads

需要这个附加的变量,是因为运行时库已经被移动到了那里。仍然有些程序无法工作,如果它们使用了 DT_RPATH (那样会覆盖 LD_LIBRARY_PATH 设置)。

这样做会导致运行依赖于 LinuxThreads 的程序非常麻烦。但是这是有意为之。

[重要]重要

FC5 将不包含 LinuxThreads 支持,那时所有程序都必须被转换为使用 NPTL。

通常,到 NPTL 的转换没什么问题。

7.1.4. 启用 slocate 数据库

命令 locate 使用的数据库不会被默认创建。如果您想使用 locate 命令,可以将 /etc/updatedb.conf 中的 DAILY_UPDATE 设置为 yes

7.1.5. openssh 中更严格的控制

Fedora Core 5 test1 中的 OpenSSH 基于 OpenSSH 3.9,包含对用户配置文件 ~/.ssh/config 的严格的属主和权限检查。如果这个文件没有合适的属主和权限,ssh 将退出。

检测 ~/.ssh/config 的所有者是 ~/ 的所有者,且权限设置为 600。

ls -l ~/.ssh/config
-rw-------  1 username username 400 May  5 18:44 /home/username/.ssh/config

目录 ~/ 是当前登录的用户的个人目录的简写,通常等同于 /home/username/

另外,在连接服务器时,OpenSSH 不再配置为默认进行 X11 转发。要启用 X11 转发,必须指定 -X-Y 选项,或者在 ~/.ssh/config 中设置 ForwardX11 选项。

使用 -X 选项时,ssh 客户端的行为有了变化。在 OpenSSH 3.8 及新版中,X11 转发的方式是应用程序默认作为不可信的客户端。过去,X11 转发的方式是应用程序总是作为可信的客户端运行。一些应用程序在作为不可信的客户端运行时,可能无法正常工作。要将应用程序作为可信的客户端运行,应当使用 -Y 选项而不是 -X 选项,或者在 ~/.ssh/config 中设置 ForwardX11Trusted 选项。

7.1.6. Perl 二进制兼容符号链接

perl-5.8.0, perl-5.8.1perl-5.8.2 准备的二进制兼容符号链接已经被删除。如果您的 perl 模块是以旧版本的 perl 构建的,就需要用 Fedora Core 5 test1 包含的 perl-5.8.6 重新构建。

7.1.7. 服务器和系统配置工具

[小心]信息可能过时

文章的内容需要为 Fedora Core 5 test1 更新。

这一章重点描述 Fedora Core 中,对各种图形化的系统/服务器配置工具的改进。

7.1.7.1. system-config-lvm

新的 LVM 工具 system-config-lvm 帮助您管理逻辑卷。

7.1.8. 关于 Java 的建议

[小心]信息可能过时

文章的内容需要为 Fedora Core 5 test1 更新。

Fedora Core 5 test1 用户不应当使用 Sun 提供的 Java RPM。它包含的 Provides 与作为 Fedora Core 5 test1 一部分的软件包使用的名字相冲突。因此,在已安装的系统的升级过程中,已安装的 Sun Java 可能会被卸载。

Fedora Core 5 test1 用户应当使用 jpackage.org 制作的 RPM 或者手动将 Sun Java tar 打包安装到 /opt 目录下。

7.2. 核心

这一章包含 Fedora Core 最重要的组件,包括内核。

7.2.1. yum

yum 现在使用 sqllite 数据库,使得性能大大提高。

默认启用了 Fedora Extras 仓库。

7.2.2. Linux 内核

7.2.2.1. 版本

Fedora Core 基于 2.6 系列的内核。Fedora Core 可能包含了附加的补丁,来改进,修正或添加附加特性。因此,Fedora Core 内核与从 kernel.org 网站下载的,被称为纯正的 vanilla kernel 的内核不是完全相同的。

可以对 Fedora Core 内核源码包使用这个命令来获取所有补丁的列表

rpm -qplkernel-version.src.rpm
7.2.2.2. 内核配置

Fedora Core 包含了下列内核构建

  • 本机的内核,包括单处理器和 SMP 版本。已配置的源代码包含在 kernel-devel-version.arch.rpm 软件包中。

  • 虚拟机的内核,用于 Xen 模拟器。已配置的源代码包含在 kernel-xen0-devel-version.arch.rpm 软件包中。

多种配置的内核源码可以同时安装。文件将被安装在 /usr/src/kernels/version[-xen0]-arch/ 目录树中。使用适当的命令:

rpm -Uvhkernel-devel[-xen0]-version.arch.rpm

[提示]遵循关于内核的教科书

关于 Linux 内核开发,很多教材,范例和教科书都假设内核源代码安装在 /usr/src/linux 目录。如果您像下面一样创建一个符号链接,就可以在 Fedora Core 中继续使用那些学习材料了。按照上面提到的方式,安装合适的内核源代码,然后:

ln -s/usr/src/kernels/kernel-all-the-rest/usr/src/linux
7.2.2.3. 为内核开发作准备

Fedora Core 5 test1 与旧版本不同,不包含 kernel-source 软件包。已配置的源代码可以按照 第 7.2.2.2 节 “内核配置” 得到。需要使用 Fedora Core 内核源代码的用户可以在 kernel.src.rpm 软件包中找到。要根据这个文件创建解压后的源码树,可以用下列步骤:

[重要]这些步骤指的是当前运行中的内核!

为了简化下面的指令,我们假设您需要配置内核为使用当前运行中的内核的配置。在下面的步骤中,您必须明白,短语 version 指的是使用这个命令显示的内核版本:

uname -r
  1. 从下列来源之一获取 kernel-version.src.rpm 文件:

    • 正确的 SRPMSCDISO 镜像文件中的 SRPMS 目录

    • 下载内核软件包的 FTP 站点

    • 使用这样的命令:

      up2date --get-sourcekernel
      
  2. 使用下面的命令来安装 kernel-version.src.rpm

    rpm -Uvhkernel-version.src.rpm
    

    这会将 RPM 内容写入 /usr/src/redhat/SOURCES/usr/src/redhat/SPECS 目录。

  3. 使用这样的命令来准备内核源代码:

    cd /usr/src/redhat/SPECS
    rpmbuild -bp --target $(arch)kernel-2.6.spec
    

    内核源代码将位于 /usr/src/redhat/BUILD/kernel-version 目录。通常的做法,是将这个 linux-version 目录移到 /usr/src 目录中,尽管不是必须这样做。这样做只是为了遵循通常使用的文档。

    cd /usr/src/redhat/BUILD/kernel-version/usr/src/
    mv linux-version/usr/src/
    cd /usr/src
    ln -s./linux-versionlinux
    cd /usr/src/linux
    
  4. Fedora Core 5 test1 默认的内核的配置文件在 configs/ 目录。例如,i686 SMP 配置文件被命名为 configs/kernel-version-i686-smp.config。使用下列命令来将需要的配置文件复制到合适的位置,用来编译:

    cp configs/desired-config-file.config
    

    您也可以在 /lib/modules/version/build/.config 这个位置找到与您当前的内核匹配的 .config 文件。

  5. 每个内核的名字都包含了版本号,也就是 uname -r 命令显示的值。内核 Makefile 的前四行定义了内核的名字。为了保护官方的内核不被覆盖,Makefile 经过了修改,以生成一个与官方的内核不同的名字。如果一个模块要被现有的内核接受,这个模块必须针对现有的内核进行编译。也就是说,您必须编辑现有内核的 Makefile

    例如,如果 uname -r 返回的字符串是 2.6.11-1.234_FC4,那么将 EXTRAVERSION 的定义由:

    EXTRAVERSION = -prep
    

    修改为:

    EXTRAVERSION = -1.234_FC4
    

    也就是说,替换为最后一个连字符之后的所有内容

  6. 执行这个命令:

    make oldconfig
    

接下来就没什么差别了。

7.2.2.4. 只构建内核模块

要为当前使用的内核构建内核模块,例如您自己的设备驱动,并不需要 完整的内核源码树。

例如,要构建 foo.ko 模块,在包含 foo.c 文件的目录中创建这样的 Makefile

obj-m := foo.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
    $(MAKE) -C $(KDIR) M=$(PWD) modules

执行 make 命令来编译 foo.ko 模块就可以了。

7.2.2.5. 用户空间对内核的依赖

Fedora Core 添加了对集群系统的支持。这需要将特殊的内核与一些用户空间的使用工具联合使用,包括管理守护进程等。因此,如果在更新升级之后,要删除这样的内核,不能 像在过去的发行版中一样,简单地使用 rpm -e kernel-version 命令,因为这些用户空间的软件包依赖于内核软件包。您可以在 rpm -e 命令中同时列出内核软件包和依赖于它的用户空间软件包,也可以用命令 yum remove kernel-version,这样 yum 会自动删除有依赖关系的软件包。

7.2.3. 安全

这一章记述 Fedora Core 的安全措施。

Pam_stack 已过时。更多信息请参阅邮件列表 fedora-test-list (http://www.redhat.com/mailman/listinfo/fedora-test-list

7.2.3.1. 安全亮点

这一章记述 Fedora Core 的安全措施。

数字认证现在被集中到 /etc/pki/ 目录。执行升级的用户必须重新定位他们的数字证书。

OpenSSL: /usr/share/ssl/ 的内容被移动到了 /etc/pki/tls//etc/pki/CA/

Dovecot: 一个名为 dovecot-openssl.cnf 的文件被自动安装到 /etc/pki/dovecot/

7.2.3.2. SELinux 的变化

MCS SELinux 被加入。主要亮点。更多信息,请参阅这篇内容丰富的文章:

http://post-office.corp.redhat.com/archives/rhselinux-project/2005-June/msg00001.html

7.3. 国际化 (i18n)

SCIM 取代了所有其他输入法。这是最大的亮点。

7.3.1. 多语种支持

这一章包含与 Fedora Core 中多语种支持有关的信息。

7.3.1.1. IIIMF 输入系统

IIIMF 即 Internet/Intranet Input Method Framework。在 Fedora Core 5 test1 中,iiimf 软件包被更新到 12.2 版。

文件路径的更改

iiimf 软件包中的一些文件的名称和路径发生了变化。

IIIMF 服务器被重命名,从 /usr/sbin/htt 变为 /usr/bin/iiimd。XIM 客户端被重命名,从 httx 变为 iiimxinit.d 中的启动脚本名称没有变化,仍然叫做 iiim。所有全局配置文件现在都位于 /etc/iiim/

语言引擎 (LE) 开发者要注意的是,LE 模块和数据现在位于 ${libdir}/iiim/le/<LE_NAME>/,而运行时数据位于 /var/lib/iiim/le/<LE_NAME>/

要查看确切的路径和文件位置变化,参见 Fedora IIIMF FAQ:

http://www.fedora.redhat.com/projects/i18n/iiimf-faq.html.

快捷键

快捷键,例如用来激活输入法的 Ctrl-Space,现在可以用命令行工具 iiimf-le-tools 进行配置了。当前,这一特性只为 GTK2 应用程序所支持。对于其他使用 XIM 的应用程序,可以在 X 资源文件中修改快捷键。参见 IIIMF FAQ 中有关如何改变快捷键的细节,文档在 http://www.fedora.redhat.com/projects/i18n/iiimf-faq.html

注意键名称是 X 键位符号的名称。例如,如果您想用 Ctrl-@ 激活输入法,您需要指定 '<Control>at' 作为键名称,而不是 '<Control>@'。

由于在 SELinux enforcing 模式下,缺少相应的 SELinux 策略,无法为每个用户配置快捷键。这时,只能在系统范围的配置中修改快捷键。

Qt 支持

系统中包含了 iiimf 的 Qt immodule。这个模块可以工作,但是没有状态显示,并且被认为是实验中的作品。因此,对于 Qt 程序,默认仍然是使用 XIM 来进行 IIIMF 输入。

如果您愿意在 Qt 应用程序中尝试 immodule,首先安装 iiimf-qt 软件包,然后启动应用程序,在输入区域点击鼠标中键,在上下文菜单的 选择输入法 子菜单中选择 iiimqcf

7.4. 多媒体

Fedora Core 包含了各种多媒体相关的应用程序,包括播放,录制和编辑程序。附加的软件包可以在 Fedora Extras 仓库找到。

多媒体播放器

Fedora Core 默认安装 rhythmboxtotemHelix Player (hxplay) 用于媒体播放。另外,Fedora Core 和 Fedora Extras 仓库中还有很多其他程序,包括著名的 xmms 播放器。GNOME 和 KDE 都各有一系列适于各种格式的播放器。其他著名的程序,类似 Adobe/Macromedia 的 Flash 播放器,Real Player,VLC,MPlayer 和 Xine 也可以另外安装,不过它们不包含在 Fedora 的仓库中,因为它们与 Fedora 的授权不相容,或是在发布时包含了对私有格式的支持。请参阅 第 7.4.1 节 “被排除的软件” 查看详情。

Fedora Core 配置为充分使用了高级 Linux 音频体系 (ALSA) 系统。这意味着多个程序可以同时播放音频,这在 Linux 系统中一度是无法做到的。如果所有多媒体软件都配置为使用 ALSA 实现音频支持,过去的限制将不复存在。请参阅此项目的网站获取更多信息:

http://www.alsa-project.org/

Ogg 和 Xiph.Org 基金会的文件格式

Fedora 包含了对 Ogg 媒体容器格式的完整支持,包括 Vorbis 音频,Theora 视频,Speex 音频和 FLAC 无损音频格式。关于这些格式的详细信息,以及如何使用它们,可以访问 Xiph.Org 基金会的网站:

http://www.xiph.org/

MP3 和 DVD 支持

Fedora Core 和 Fedora Extras 不能包含对 MP3 或 DVD 的播放或录制的支持,因为 MP3 和 MPEG (DVD) 格式受专利保护,而专利持有人没有提供许可。要获得更多信息,请参阅 第 7.4.1 节 “被排除的软件”

7.4.1. 被排除的软件

出于许可的原因,多种程序被排除在 Fedora Core 和 Fedora Extras 之外。这些程序包括提供了 MP3 和 DVD 支持的程序,Flash 播放器和 Real 播放器。需要使用这些程序或受限格式的用户必须从第三方仓库中安装附加的软件包。Fedora 仓库中很多多媒体程序都支持查检,因此对新格式的支持可以很容易地添加或删除。要获得更多信息,请参阅:

http://fedoraproject.org/wiki/ForbiddenItems

7.4.2. CD 和 DVD 创建和烧录

Fedora Core 和 Fedora Extras 中包含了方便管理和烧录 CD 和 DVD 的工具。可以在终端下使用的程序包括 cdrecordreadcdmkisofs 以及其他 Linux 应用程序。GNOME 用户可以使用 Fedora Core 中的 xcdroast 和 Fedora Extras 中的 graveman 很容易地创建音频和数据光盘。KDE 用户可以使用 k3b,一个十分稳定的软件包。

7.5. 游戏和娱乐

Fedora Core 和 Fedora Extras 提供了一系列游戏,包含各种风格。Fedora Core 默认包含了一个 GNOME 的小游戏软件包 (名字是 gnome-games)。要查看可以通过 yum 安装的其他游戏列表,可以打开一个终端并执行下面的命令:

yum groupinfo "Games and Entertainment"

要查看用 yum 安装这些游戏软件包的方法,可以参考这里的教程:

http://fedora.redhat.com/docs/yum/

7.6. 网络服务器

这一章包含与 Web 相关的应用程序的信息

7.6.1. httpd

默认 httpd 配置中有下列改变:

  • 默认不再加载 mod_cern_metamod_asis 模块。

  • 默认加载 mod_ext_filter

7.7. Samba (Windows 文件系统兼容性)

这一章包含与 Samba 有关的信息。Samba 是使 Linux 得以与 Microsoft Windows 系统互操作的软件套件。

浏览 Windows 共享 (也被称为 SMB 浏览) 在标准的 Fedora Core 5 test1 防火墙配置中无法工作。可以发现,桌面用户无法显示共享内容。

默认情况下,防火墙屏蔽了 SMB 浏览的广播模式。有两种解决办法:

  • 在网路中配置一个 WINS 服务器,在 smb.conf 中设置 "wins server" 选项为 WINS 服务器的地址。

  • 关掉防火墙。

[警告]关掉防火墙将使您的系统有被入侵的危险

在做这一步之前,要知道这样的危险。

要得到更多信息,参见下列错误报告:

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=133478

7.8. X 窗口系统 (图形界面)

[小心]信息可能过时

文章的内容需要为 Fedora Core 5 test1 更新。

这一章包含了 Fedora Core 的 X 窗口系统实现有关的信息。

7.8.1. xorg-x11

对于 X.org 的 X11,新用户应当注意它与 Red Hat 和 Fedora 过去版本中附带的 XFree86.org 实现的 X11 的不同之处。特别的,一些文件的名称发生了改变:

X 服务器可执行文件:

  • XFree86 X11: XFree86

  • X.org X11: Xorg

X 服务器配置文件:

  • XFree86 X11: /etc/X11/XF86Config

  • X.org X11: /etc/X11/xorg.conf

X 服务器日志文件:

  • XFree86 X11: /var/log/XFree86.$DISPLAY.log

  • X.org X11: /var/log/Xorg.$DISPLAY.log

在配置和调试您的 X 服务器配置时,要确定使用的是正确的文件。

在新近的 Fedora Core 中,处理 X 窗口系统的字体问题时,有一些混乱。目前,有两种字体子系统,它们有不同的特性:

  • 最初的 (有 15 年历史的) 子系统被称为 X 核心字体子系统。这个子系统渲染的字体没有反锯齿,由 X 服务器控制,字体名称类似:-misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1

  • 较新的字体子系统被称为 fontconfig,允许应用程序直接访问字体文件。Fontconfig 总是与 Xft 库一起使用,后者允许应用程序在渲染 fontconfig 字体到屏幕时使用反锯齿。Fontconfig 使用更人性化的字体名称,类似:Luxi Sans-10

一段时间后,fontconfig 和 Xft 将替换 X 核心字体子系统。当前,使用 Qt 3 或 GTK 2 的应用程序 (包括 KDE 和 GNOME 应用程序在内) 用的是 fontconfig 和 Xft 子系统;很多其他程序用的是 X 核心字体子系统。

将来,Fedora Core 将只支持 fontconfig/Xft,代替 XFS 字体服务器作为默认的本地字体访问方法。

[注意]注意

对于上面讲到的字体子系统,有一个特例:OpenOffice.org 使用自己的字体渲染技术。

向 Fedora Core 5 test1 系统中添加新字体时,所需的步骤依赖于新字体将用于哪个字体子系统。如果是 X 核心字体子系统,应当这样:

  1. 创建 /usr/share/fonts/local 目录 (如果它不存在的话):

    mkdir /usr/share/fonts/local/
    
  2. 将新字体文件复制到 /usr/share/fonts/local/

  3. 执行下面的命令,来更新字体信息 (注意,由于格式限制,下面的命令可能被显示为多行;但是应用中,每个命令必须输入为一行):

    ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale
    mkfontdir /usr/share/fonts/local/
    
  4. 如果您必须创建 /usr/share/fonts/local/ 目录,您必须将它添加到 X 字体服务器 (xfs) 的路径中:

    chkfontpath --add /usr/share/fonts/local/
    

向 fontconfig 字体子系统添加新字体非常简单;只要将新的字体复制到 /usr/share/fonts/ 目录 (个人用户可以将字体复制到 ~/.fonts/ 目录,来修改自己的字体配置)。

复制了新字体之后,使用 fc-cache 命令来刷新字体信息缓存:

fc-cache <directory>

(这里 <directory>/usr/share/fonts/ 或者 ~/.fonts/ 目录。)

个人用户也可以通过图形界面安装字体,只要在 Nautilus 中浏览 fonts:///,然后将新的字体文件拖放到那里。

[注意]注意

如果字体文件名以 ".gz" 结尾,那么它是以 gzip 压缩的,必须在解压 (使用 gunzip 命令) 之后才能为 fontconfig 字体子系统所用。

由于转换成了基于 fontconfig/Xft 的新的字体子系统,字体配置 对话框的修改对于 GTK+ 1.2 应用程序是无效的。对于这些应用程序,可以通过将下列内容添加到文件 ~/.gtkrc.mine 中来配置字体。

    
style "user-font" {
fontset = "<font-specification>"
}
widget_class "*" style "user-font"

(这里 <font-specification> 代表一个字体的描述,使用传统 X 应用程序的风格来描述,就像这样 "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*".)

7.9. 游戏和娱乐

Fedora Core 和 Fedora Extras 提供了一系列游戏,包含各种风格。Fedora Core 默认包含了一个 GNOME 的小游戏软件包 (名字是 gnome-games)。要查看可以通过 yum 安装的其他游戏列表,可以打开一个终端并执行下面的命令:

yum groupinfo "Games and Entertainment"

要查看用 yum 安装这些游戏软件包的方法,可以参考这里的教程:

http://fedora.redhat.com/docs/yum/