运行 X11 - 3. 获取和安装 X11
3.1 通过 Fink 安装
Fink 可以让你以你喜欢的方式安装 X11,
不过它也提供自己的 XFree86 软件包。如果你使用 fink install ...
,它会下载源代码,并在你的计算机上进行编译。如果你使用 apt-get install ...
或 dselect
前端工具,它会下载预编译的二进制包,类似官方的
XFree86 发行版。
General notes:
- All of the X11 packages currently available via Fink support both full-screen and rootless operation, and have OpenGL support.
- Important note: Files get moved around between X11 releases. This frequently means that if you try to downgrade your X11 installation, you will find that binaries (executable programs, etc.) won't work anymore. You'd have to rebuild any such packages.
You can go the other way though: packages built vs an older X11 generally work on a later one.
For 10.3, the X11 hierarchy is as follows:
xorg > xfree86 > Apple's X11
10.3 users:
You can install version 4.3.99.16-2 (that which is in the current binary distribution) or 4.4 (which is available from source). You will need both the xfree86
and xfree86-shlibs
packages to have a fully functional installation.
You can also install the X.org X11 release (currently version 6.8) via the xorg
and xorg-shlibs
packages in the unstable tree. This X11 flavor is similar to XFree86-4.4, but includes some bugfixes and new features, and removes some code with a disputed license.
10.2 users:
10.2 users may install version 4.3 via source or binary, and 4.4 from the unstable tree. As above, you'll install xfree86
and xfree86-shlibs
.
XFree86 4.2.1.1 is also available for 10.2, in normal
and -threaded
flavors (later X11s all have threading support), though it is considered to be obsolete. The xfree86-base
, xfree86-base-shlibs
, xfree86-shlibs
, and xfree86-rootless-shlibs
packages (or their -threaded
counterparts must all be installed for you to have a working XFree86 setup. In addition, you may need to install the xfree86-base-dev
and xfree86-rootless-dev
packages (or their -threaded
equivalents) to keep Fink from trying to install a newer version.
10.1 users:
You can install version 4.2.0 from the binary distribution (only). You will install xfree86-base
and xfree86-rootless
.
3.2 苹果公司的二进制版本
2003 年 1 月 7 日,苹果发布了一个基于 XFree86-4.2 的 X11 定制实现,它包括 Quartz 渲染和加速的 OpenGL。2003 年 2 月 10 日发布了补充更多特性和修正缺陷的新版本。第三个版本(Beta 3)2003 年 3 月 17 日,它包括更多的特性和缺陷修正。这个版本可以运行在 Juguar 上。
2003 年 10 月 24 日,苹果发布了 Panther (10.3),包括了它们 X11 的发布版本。这个版本基于 XFree86-4.3。
2005 年 4 月 29 日,苹果发布了 Tiger (10.4),包括了它们 X11 的发布版本。这个版本基于 XFree86-4.4。
要使用苹果的二进制版本,你需要安装 X11 User 软件包,你还需要 更新 Fink。
在 fink-0.16.2
下,你需要安装 X11 SDK 软件包。这样以后,Fink 才可以创建 system-xfree86
虚拟软件包。
在 fink-0.17.0
或更新版本下,只有你需要从源程序编译软件包才必须安装 X11 SDK 。这种情况下,即使你没有安装 SDK,仍然会有 system-xfree86
和 system-xfree86-shlibs
虚拟软件包,后者表示共享函数库。如果你安装了 SDK,那么还会有一个
system-xfree86-dev
软件包,代表头文件。
如果你已经安装了 XFree86,无论是否通过 Fink 安装,你都可以用一个 X11 软件包来替换另一个。确定你删除了现有的软件包,然后安装苹果的 X11(如果需要的话,还包括 X11 SDK)。
关于使用苹果 X11 的一些注意事项:
-
autocutsel
软件包已经不在需要。如果正在使用启动这个功能的 X11,你应该关闭它。 -
苹果的 X11 使用你现有的
~/.xinitrc
文件。如果你希望全功能的 Quartz 集成,你应该使用/usr/X11R6/bin/quartz-wm
作为你的窗口管理器,或者删除~/.xinitrc
文件。如果你只需要拷贝粘贴支持,但希望使用另外一个窗口管理器,你可以按照下面的例子做:
/usr/X11R6/bin/quartz-wm --only-proxy & exec /opt/sw/bin/fvwm2
当然,你也可以使用其它的窗口管理器,
startkde
,等等。 -
quartz-wm
不完全支持 Gnome/KDE 窗口管理管器的一些提示参数,所以你可能会看到一些本不应该有边框的窗口会有边框。 -
默认情况下,苹果的 X11 不理会 Fink 的环境变量设置。为了启动你通过 fink 安装的程序(例如窗口管理器,gnome-session,其它在
/opt/sw/bin
下的应用程序),把下面移行放在~/.xinitrc
文件比较靠前的地方(比如,在最初的 "#!/bin/sh
" 的这一行之后,但在运行其它程序以前):. /opt/sw/bin/init.sh
这样 Fink 的环境就被初始化了。注意:我们使用
init.sh
文件而不是init.csh
文件是因为.xinitrc
是使用sh
来做解释器,而不是tcsh
。 -
有些程序需要调用 Fink 目录下的其它程序,如果这些程序是通过应用程序菜单启动的话,还需要另外的专门处理。而不仅仅是使用全路径名这个简单。例如:
/opt/sw/bin/emacs
如果你使用 bash 作为你的默认 shell 程序,你需要象下面这样设置:
. /opt/sw/bin/init.sh ; emacs
如果你用 tcsh:
source /opt/sw/bin/init.csh ; emacs
这个确保程序有一个正确的 PATH 环境。你可以对任何 Fink 安装的程序使用这个语法。
-
如果你尝试手工编译一个需要和苹果的 X11 连接的软件包,并且看到类似下面的错误:
ld: err.o illegal reference to symbol: _XSetIOErrorHandler defined in indirectly referenced dynamic library /usr/X11R6/lib/libX11.6.dylib
那么你需要在你的连接选项中使用
-lX11
。检查你的软件的配置选项,看如何给它添加额外的连接参数。 -
如果你原来使用
xfree86
软件包,后来又转到苹果的 X11 (无论是 10.2.x 还是 10.3.x 上),任何连接到xfree86
的软件包都需要重新编译,因为他们并不二进制兼容。 -
10.3 and 10.4 users only: It is possible to use Apple's display server and window manager on top of XFree86 or X.org. If you install the
applex11tools
package, Fink will install what you need, as long as you have a copy of X11User.pkg.
For more information on using Apple's X11, check out this article at the Apple Developer Connection.
3.3 官方二进制版本
XFree86 项目又一个针对 XFree86 4.5.0。
你可以在你本地的 XFree86 镜像站点中的4.5.0/binaries/Darwin-ppc-6.x
(4.5.0/binaries/Darwin-ppc-6.x
for 10.1) 目录中找到它。
一定要同时下载 Xprog.tgz
和 Xquartz.tgz
这两个压缩档,虽然它们被标为可选的。
如果你不知道你需要些什么,那么可以下载整个目录。
以 root 权限运行 Xinstall.sh
脚本来进行安装。
(在安装之前,你也许要阅读一下官方指南)。
你现在都拥有了一个 XFree86 软件包,其中包括一个可以在 OS X 下支持全屏幕或无根模式的服务器程序。
3.4 官方源代码版
如果你有时间可花的话,你可以用源代码构建 XFree86 4.5。
你可以在你本地的 XFree86 镜像站点的4.5.0/source
目录中找到它们。
获取一共三个的 X420src-#.tgz
压缩档,并把它们解压到相同的一个目录里面。
你可以把一些宏定义放到 XFree86 的源代码树的 config/cf/host.def
文件里面,来自己定制构建方式。
查看
config/cf/darwin.cf
文件来获得一些提示。
(注意:只有那些被 #ifndef 包围的宏才可以被 host.def 文件所重定义。)
当你对你的配置满意以后,使用下面指令编译和安装 XFree86:
make World sudo make install install.man
要升级到 4.2.1.1,请按照官方二进制版部分的指引。
要安装 4.3.0,按照上面的指引,把 "2" 替换成 "3",但是不要做 4.2.1.1 的升级步骤。
和安装官方二进制版一样,你现在已经拥有了一个 XFree86 软件包,其中包括一个可以在 OS X 下支持全屏幕或无根模式的服务器程序。
3.5 最新的源代码
如果你不但有时间,还有坚强的神经的话,你可以从公开的 CVS 库里面获取最新的开发过程中的 XFree86 源代码。 注意,代码是处于持续开发过程中的,因此,你今天下载的内容不一定和你昨天下载的相同。
要安装,按照 XFree86
CVS 中的办法下载 xc
模块。然后,按照上面的从源代码构建的办法进行。
3.6 替换 X11
如果你已经安装了一个 Fink X11 软件包,但由于某个原因你希望删除它,换成另外一个。操作过程很简单。首先你需要牵制删除旧的安装包,然后安装新的,保持你的 dpkg 数据库的一致性。
有两个办法这样做:
-
使用 FinkCommander
如果你使用FinkCommander,你可以从菜单里面进行强制删除。例如,如果你安装了
xfree86-rootless
,但希望改用线程化的版本,你可以选择xfree86-rootless
,xfree86-rootless-shlibs
,xfree86-base
和xfree86-base-shlibs
软件包,然后选择菜单:Source -> Force Remove
-
在命令行手工删除
要手工删除,你可以使用带 --force-depends 参数的
dpkg
命令,象这样:sudo dpkg -r --force-depends xfree86-rootless\ xfree86-rootless-shlibs xfree86-base xfree86-base-shlibs
如果你有需要使用线程化 XFree86 的程序,那么删除它并安装另外一个 XFree86 软件包会有问题。
如果,你有一个不是由 Fink 安装的 X11,你需要在命令行删除它:
sudo rm -rf /usr/X11R6 /etc/X11
上面办法应该对任何不是通过 Fink 安装的 X11 都有效。根据你安装的版本不同,你还需要删除 XDarwin.app
或
X11.app
。如果你删除的是苹果的 X11,那么检查你的 .xinitrc
文件,确定你运行的窗口管理器不是 quartz-wm
。你现在可以安装你喜欢的 X11 变种,手工或通过 Fink。
3.7 Fink 软件包简介
一个关于安装选项和你应该安装的 Fink 软件包的归纳:
Install Type | Fink packages |
---|---|
XFree86-4.4.0 or 4.5.0 (10.3 and 10.4) |
|
X.org-6.8.2 (10.3 and 10.4) |
|
Apple's X11 (all versions) |
|
XFree86-4.x official binaries |
|
XFree86-4.x built from source, or from the latest CVS source |
|
XFree86-4.2.1.x (10.2 only) or 4.2.0 (10.1 only) |
or |
Next: 4. 启动 X11