LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 8963|回复: 29

X.org7.3安装笔记

[复制链接]
发表于 2008-1-20 18:52:17 | 显示全部楼层 |阅读模式
X.org7.3安装笔记

花了三天的时间才安装好了X.org7.3,现在做个总结

你需要找个大点的分区建立一个目录将源代码全放在这个目录下面
  1. mkdir /home/blfs/xorg7.3
  2. mkdir /home/blfs/org
复制代码


我建立了两个目录,xorg7.3用来存放xorg7.3的代码,org用来存放与xorg相关的源代码
  1. http://xorg.freedesktop.org/releases/X11R7.3/src/
复制代码
上下载xorg7.3的源代码,除了everything这个目录以外,其它的目录全部下载,然后存到/home/xorg7.3,当然driver目录下的文件你可以只下载你需要的。顺便再说一下,下个月xorg7.4就要放出来了,不过目前已经有很多程序已经完成了,你可以在
  1. http://www.x.org/wiki/Releases/7.4/
复制代码
这里下载,替换掉xorg7.3中的包。

如果你不明白怎么编译xorg可以看这里
  1. [url]http://cblfs.cross-lfs.org/index.php/Xorg7/Intro[/url
复制代码
],CBLFS上有详细的说明,BLFS好像目前只更新到了xorg7.2。

1、先做安装前的准备工作

  1. export XORG_PREFIX="/usr/X11R7"
复制代码


设置你的Xorg安装目录我用的是/usr/X11R7

  1. cat >> /etc/ld.so.conf << EOF
  2. # Begin Xorg addition to /etc/ld.so.conf

  3. ${XORG_PREFIX}/lib

  4. # End Xorg addition to /etc/ld.so.conf
  5. EOF
复制代码


将/usr/X11R7/lib加入到你的ld.sc.conf文件中去

[color="red"]安装pkg-config


pkgconfig是用来在编译脚本中向编译器传递头文件包含路径或库文件路径的程序。
PKG_CONFIG_PATH 的缺省设置是 /lib/pkgconfig, /usr/lib/pkgconfig 和 /usr/local/lib/pkgconfig。它将在这些目录下面搜索库文件的元信息文件,当然我们也可以使用PKG_CONFIG_PATH来定义pkg-config的搜索路径。

先下载pkg-config
  1. wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.22.tar.gz
复制代码


然后安装它
  1. tar xvf pkg-config-0.22.tar.gz
  2. cd pkg-config-0.22
  3. ./configure --prefix=/usr &&
  4. make
  5. make install
复制代码


将/usr/X11R7/lib加入到pkg-config的搜索路径中去。

  1. export PKG_CONFIG_PATH=/usr/X11R7/lib:/lib/pkgconfig:/usr/lib/pkgconfig
复制代码



现在开始正式安装Xorg了

[color="red"]先要安装的是Xorg7/Protocol Headers

需求:Protocol Headers的安装需要前面安装的pkg-config

进入到存有Protocol Headers的目录下面,以后的操作都在是存有Xorg源代码的目录下,所以后面就不再写什么cd...了
  1. cd /home/xorg7.3/proto
复制代码


运行下面的程序,将所有的包全部解开,如果你下的是gz的包哪么自己改一下吧。

  1. for i in *.tar.bz2; do
  2.   tar xvf $i;
  3. done
复制代码


开始编译,和上面一样,用脚本来做,要不然一个一个编译要累死的。

  1. for dir in `find . -maxdepth 1 -mindepth 1 -type d`; do
  2.   cd $dir &&
  3.   PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" ./configure $XORG_CONFIG &&
  4.   make install
  5.   cd ..;
  6. done
复制代码


[color="red"]安装Xorg7/Utilities

需求:Utilities的安装需要前面安装的两个包pkg-config和Protocol Headers,如果前面的安装没有完成,这里也安装不下去的。

进入到目录下面,和前面一样,用脚本解开所有的包

  1. cd /home/xorg7.3/util

  2. for i in *.tar.bz2; do
  3. tar xvf $i;
  4. done
复制代码


[color="red"]先安装xorg-cf-files-1.0.2.tar.bz2

  1. cd xorg-cf-files-1.0.2
  2. sed -i "s@/usr/X11R6@$XORG_PREFIX@" X11.tmpl &&
  3. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" \
  4. ./configure $XORG_CONFIGN &&
  5. make install
复制代码



[color="red"]其次是imake-1.0.2、gccmakedep-1.0.2、imake-1.0.2、lndir-1.0.1、makedepend-1.0.1、util-macros-1.1.5

使用下面的命令就可以了。

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" \
  2. ./configure $XORG_CONFIGN  &&
  3. make &&
  4. make install
复制代码


现在我们开始安装Xorg7/Libraries,不过在这之前先要解决它的依赖关系,我们需要先安装一些软件,它们是:FreeType、FontConfig、expat、xcb-proto、libpthread-stubs、libxcb、xcb-utils、LibXSLT、Gperf、LibXML2

  1. wget http://downloads.sourceforge.net/freetype/freetype-2.1.10.tar.bz2
  2. wget http://downloads.sourceforge.net/freetype/freetype-doc-2.1.10.tar.bz2
  3. wget http://fontconfig.org/release/fontconfig-2.4.2.tar.gz
  4. wget http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
  5. wget http://xcb.freedesktop.org/dist/xcb-proto-1.0.tar.bz2
  6. wget http://xcb.freedesktop.org/dist/libpthread-stubs-0.1.tar.bz2
  7. wget http://xcb.freedesktop.org/dist/libxcb-1.0.tar.bz2
  8. wget http://svn.cross-lfs.org/svn/repos/patches/libxcb/libxcb-1.0-sloppy_lock-1.patch
  9. wget http://xcb.freedesktop.org/dist/xcb-util-0.2.tar.bz2
  10. wget ftp://xmlsoft.org/libxml2/libxslt-1.1.22.tar.gz
  11. wget ftp://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.3.tar.gz
  12. wget ftp://xmlsoft.org/libxml2/libxml2-2.6.31.tar.gz
复制代码

其中freetype-doc-2.1.10.tar.bz2这个是freetype的方档,可以不下载的。

[color="red"]LibXML2、Gperf、LibXSLT使用下面的命令来安装。

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" \
  2. ./configure --prefix=/usr  &&
  3. make &&
  4. make install
复制代码


XCB系列的包则安装到/usr/X11R7目录下去,注意,Libxcb这个包需要打上补丁,命令是patch -Np1 -i libxcb-1.0-sloppy_lock-1.patch。

[color="red"]Xcb-proto、Libpthread-stubs、Libxcb、Xcb-utils的安装

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" \
  2. ./configure $XORG_CONFIG  &&
  3. make &&
  4. make install
复制代码


[color="red"]安装expat-2.0.1

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" \
  2. ./configure --prefix=/usr  &&
  3. make &&
  4. make install
复制代码

  1. install -v -m755 -d /usr/share/doc/expat-2.0.1 &&
  2. install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-2.0.1
复制代码
和LibXML2、Gperf等的命令一样,只不过是最后多了两个安装文档的命令,可以省去

最后安装FreeType和FontConfig

[color="red"]先安装FreeType,因为FontConfig的安装需要FreeType。

  1. sed -i -r 's:.*(#.*BYTE.*) .*:\1:' include/freetype/config/ftoption.h
  2. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" \
  3. ./configure --prefix=/usr  &&
  4. make &&
  5. make install
复制代码


如果你打算安装FreeType的文档的话,要在运行上面的命令之前就将它解压到docs目录下,命令如下:
  1. tar xf ../freetype-doc-2.1.10.tar.bz2 --strip-components=2 -C docs
复制代码


然后在做完make install 后安装docs

  1. install -v -m755 -d /usr/share/doc/freetype-2.1.10 &&
  2. cp -v -R docs/* /usr/share/doc/freetype-2.1.10
复制代码


[color="red"]安装FontConfig

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" \
  2. ./configure --prefix=/usr --sysconfdir=/etc \
  3.     --disable-docs --localstatedir=/var --without-add-fonts \
  4.     --with-docdir=/usr/share/doc/fontconfig-2.4.2 &&
  5. make &&
  6. make install &&

  7. install -v -m644 doc/*.3 /usr/share/man/man3 &&
  8. install -v -m644 doc/*.5 /usr/share/man/man5 &&
  9. install -v -m755 -d /usr/share/doc/fontconfig-2.4.2/fontconfig-devel &&
  10. install -v -m644 doc/*.{html,pdf,txt} /usr/share/doc/fontconfig-2.4.2 &&
  11. install -v -m644 doc/fontconfig-devel/* /usr/share/doc/fontconfig-2.4.2/fontconfig-devel
复制代码

最后的5条命令是安装FontConfig的文档,可以省去这一步

在./configure运行时可选择的选项

--enable-libxml2  打开libxml2支持

[color="red"]现在安装Xorg7/Libraries的准备工作都已经完成了,可以安装Libraries了

先下载软件列表
  1. wget http://cblfs.cross-lfs.org/index.php/Special:Filepath/Lib-7.3.wget
复制代码


老规矩先解开所有的包
  1. for i in *.tar.bz2; do
  2.   tar xjvf $i;
  3. done
复制代码


然后用下面的脚本开始编译,Lib-7.3.wget就是刚才用wget下载的文件,我将它和lib的包放在一起所以没有指定目录

  1. for dir in `sed "s/.tar.bz2//g" Lib-7.3.wget`; do
  2.   cd ${dir} &&
  3.   PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" ./configure $XORG_CONFIG &&
  4.   make &&
  5.   make install &&
  6.   cd ..;
  7. done
复制代码


可以加的参数太多了,说点有用的

libX11这个包可以使用--enable-loadable-i18n这个参数,它将打开i18n的国际化支持。所以建议打开,你可以单独编译一下这个包。其它的参数可以通过./configure --help来查看。


[color="red"]安装Xorg7/libdrm

命令如下:

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" ./configure $XORG_CONFIG &&
  2. make &&
  3. make install
复制代码


[color="red"]安装Xorg7/MesaLib
MesaLib是一套类似于openGL或是DX的接口程序。目前BLFS手册上使用的是6.5的版本,而我们要安装的是MesaLib-7.0.2。

先下载所需要的代码:
  1. wget http://downloads.sourceforge.net/mesa3d/MesaLib-7.0.2.tar.bz2
  2. wget http://downloads.sourceforge.net/mesa3d/MesaDemos-7.0.2.tar.bz2
  3. wget http://downloads.sourceforge.net/mesa3d/MesaGLUT-7.0.2.tar.bz2
  4. wget http://svn.mandriva.com/svn/packages/cooker/mesa/current/SOURCES/mesa-7.0.2-build-config.patch
复制代码


将它们全部解压
  1. tar xvf MesaLib-7.0.2.tar.bz2
  2. tar xvf MesaDemos-7.0.2.tar.bz2
  3. tar xvf MesaGLUT-7.0.2.tar.bz2
复制代码


然后进入到目录中打上补丁
  1. patch -Np1 -i ../mesa-7.0.2-build-config.patch
复制代码


连接目录
  1. ln -sf linux-dri configs/current
复制代码


再做一点小小的设置,主要是路径
  1. echo 'X11_INCLUDES = $(shell pkg-config --cflags-only-I x11)' >> configs/current &&
  2. echo 'CFLAGS += $(X11_INCLUDES)' >> configs/current &&
  3. echo 'EXTRA_LIB_PATH = $(shell pkg-config --libs-only-L x11)' >> configs/current &&
  4. echo "DRI_DRIVER_INSTALL_DIR = ${XORG_PREFIX}/lib/xorg/modules/dri" >> configs/current &&
  5. echo "INSTALL_DIR = /usr" >> configs/current &&
  6. echo "LIB_DIR = lib" >> configs/current
复制代码


最后可以开始编译和安装了
  1. make default &&
  2. make install &&
  3. make -C progs/xdemos glxinfo glxgears &&
  4. install -m755 -v progs/xdemos/{glxinfo,glxgears} /usr/bin
复制代码


[color="red"]安装Xorg7/xbitmaps

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" ./configure $XORG_CONFIG &&
  2. make &&
  3. make install
复制代码


[color="red"]安装Libpng
Libpng:png的库,Xcursorgen这个包需要它的支持,所以要先安装上。

取得Libpng
  1. wget http://downloads.sourceforge.net/libpng/libpng-1.2.24.tar.bz2
复制代码


  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" ./configure $XORG_CONFIG &&
  2. make &&
  3. make install
复制代码


文档的安装,可以省去。
  1. install -v -m755 -d /usr/share/doc/libpng-1.2.24 &&
  2. install -v -m644 README libpng-1.2.24.txt /usr/share/doc/libpng-1.2.24
复制代码


[color="red"]安装Xorg7/Apps

Apps是Xorg的一部分,主要是一些程序像启动Xorg的startx、时钟等。

先取得文件列表
[HTML]wget http://cblfs.cross-lfs.org/index.php/Special:Filepath/App-7.3.wget[/HTML]

然后解开全部的包
  1. for i in *.tar.bz2; do
  2.   tar xvf $i;
  3. done
复制代码


最后开始编译
  1. for dir in `sed "s/.tar.bz2//g" ../App-7.3.wget`; do
  2. cd ${dir} &&
  3. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" ./configure $XORG_CONFIG &&
  4. make &&
  5. make install &&
  6. cd ..;
  7. done
复制代码


这个列表是官方的列表,但是好像有点问题,我编译完Xorg并配置好了xorg.conf后输入startx发现居然没有startx这个命令,
只好手动编译了一次。至于Apps目录下的其它包没有试过,不知道是不是全部编译了。

[color="red"]安装Perl Module XML:arser

这个是Xorg7/Data需要的支持,所以要先安装上,顺便说一下Perl Module XML:arser需要Expat的支持,不过我们在前面已经安装过了.

取得XML-Parser-2.36.tar.gz
  1. wget http://cpan.org/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz
复制代码


解压
  1. tar xvf XML-Parser-2.36.tar.gz
复制代码


进入刚才解压的目录运行下面的命令
  1. sed -i 's@<PERL_DESTDIR>@@g' Makefile
复制代码


然后开始编译,最后一个命令是做个测试。
  1. perl Makefile.PL &&
  2. make &&
  3. make test
复制代码


如果测试没有问题,就可以安装了。
  1. make install
复制代码



[color="red"]安装Xorg7/Data

一共就两个包。

xcursor-themes的编译命令如下:

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" ./configure $XORG_CONFIG &&
  2. make &&
  3. make install
复制代码



xkeyboard-config的编译命令如下:

  1. PKG_CONFIG_PATH="${PKG_CONFIG_PATHN}" ./configure $XORG_CONFIG \
  2.     --with-xkb-base=${XORG_PREFIX}/share/X11/xkb \
  3.     --with-xkb-rules-symlink=xorg --enable-compat-rules &&
  4. make &&
  5. make install
复制代码



[color="red"]安装Xorg7/Fonts
38个字体,Xorg全是内置的

取得包列表
  1. wget http://cblfs.cross-lfs.org/index.php/Special:Filepath/Font-7.3.wget
复制代码


解开所有的包
  1. for i in *.tar.bz2; do
  2.   tar xvf $i;
  3. done
复制代码


然后开始安装
  1. for dir in `sed "s/.tar.bz2//g" ../Font-7.3.wget`; do
  2.   cd ${dir} &&
  3.   sed -i 's:${libdir}/X11/fonts:/usr/share/fonts:g' configure &&
  4.   PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" ./configure $XORG_CONFIG &&
  5.   make &&
  6.   make install &&
  7.   cd ..;
  8. done
复制代码


这个要花点时间,不过也不太长,可能是我的电脑慢了吧。

[color="red"]安装Pixman
因为Xorg7/Xserver需要它。

取得
  1. wget http://xorg.freedesktop.org/archive/individual/lib/pixman-0.9.5.tar.bz2
复制代码


编译的命令基本上都是一样的

  1.   PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" ./configure $XORG_CONFIG &&
  2.   make &&
  3.   make install
复制代码


[color="red"]安装Xorg7/Xserver这个是Xorg最主要的东东了,核心的家当全在这里了

先解压出来,然后打上补丁
  1. patch -Np1 -i ../xorg-server-1.4-paint_it_black-1.patch
复制代码


最后一行指定了Mesa的安装目录,如果你先前安装Mesa时没有吧源代码目录删除的话,这里可以指定它的位置,如果你已经安装了Mesa的话可以吧最后一行删除。
  1. sed -i '/xpconfigdir=/s@=.*@=$datadir/X11/xserver@' configure &&
  2. sed -i '/-DXPRINTDIR/s/libdir/datadir/' hw/xprint/Makefile.in &&
  3. ./configure $XORG_CONFIG --enable-install-setuid \
  4.     --with-dri-driver-path="${XORG_PREFIX}/lib/xorg/modules/dri" \
  5.     --with-fontdir="/usr/share/fonts" \
  6.     --with-mesa-source="${PWD}/../Mesa-7.0.2"
复制代码


编译并安装它
  1. make &&
  2. make install
复制代码


快完了,忍赖一下

[color="red"]安装Xorg7/Drivers主要是Xorg的驱动,可以选择你需要安装,别傻乎傻乎的全装了,因为哪没有什么用。

我只安装了下面三个驱动。
xf86-input-mouse
xf86-input-keyboard
xf86-video-nv

顺便说一下所有的驱动都是用下面的命令编译。
  1.   PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" ./configure $XORG_CONFIG &&
  2.   make &&
  3.   make install
复制代码



[color="red"]安装Xorg7/xterm
说实话,你可安装一个对中文支持更好的终端机,不过偶一般比较懒,所以直接用这个了

取得xterm
  1. wget ftp://invisible-island.net/xterm/xterm-231.tgz
复制代码

  1.   PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" ./configure $XORG_CONFIG \
  2.     --enable-wide-chars \
  3.     --with-app-defaults=${XORG_PREFIX}/share/X11/app-defaults &&
  4. make
  5. make install &&
  6. make install-ti
复制代码


还有一个Xorg7/rman,这个东西很少用,基本上我都是开个终端看man的,所以没有安装。

[color="Red"]配置XorgOK,需要编译的东西到这里基本上就完了,现在只需要配置一下就可以看见桌面了

做目录连接
  1. ln -sv ${XORG_PREFIX}/bin /usr/bin/X11
  2. ln -sv ${XORG_PREFIX}/include/X11 /usr/include/X11
  3. ln -sv ${XORG_PREFIX}/lib/X11 /usr/lib/X11
复制代码


回到用户目录,然后开始配置Xorg并生成一个名为xorg.conf.new的配置文件
  1. cd  &&
  2. Xorg -configure
复制代码


修改一下你的xorg.conf.new,具体内容自己改

然后使用新的配置文件启动X,如果没有问题,就可以安装到/etc/X11/目录中了
  1. X -config ~/xorg.conf.new
  2. install -v -m755 -D ~/xorg.conf.new /etc/X11/xorg.conf
复制代码


完成,收工

[color="Red"]安装一个桌面fluxbox,最喜欢它了,又小,又快,功能也不错。

取得fluxbox
  1. wget http://prdownloads.sourceforge.net/fluxbox/fluxbox-1.0rc2.tar.bz2
复制代码


编译命令:你可以不加上打开imlib2的参数,这样也可以正常编译,同时你也可以指定安装的位置到/usr/X11R7下面,都可以在这里指定。如果需要安装imlib2的话,它将需要reeType、 libpng 、libjpeg包的支持,你也可以选择性的加上LibTIFF、GifLib、libid3tag这三个包

安装fluxbox
  1. ./configure --prefix=/usr --enable-imlib2 &&
  2. make
  3. make install
复制代码


[color="red"]imlib2的编译命令
其它包的编译命令同fluxbox一样除不用指定--enable-imlib2
  1. CPPFLAGS="-I${XORG_PREFIX}/include" \
  2. ./configure --prefix=/usr &&
  3. make
复制代码

  1. cd
  2. echo fluxbox>.xinitrc
复制代码

现在启动X吧,几秒钟以后你将会看到一个超简洁的桌面。


[color="Red"]最后问个问题,有哪位懂menu这个程序,就是以前debian下的menu可以在安装新的程序后自己更新桌面菜单的,我已经折腾了2天了,还没有搞定,主要是不会设置,man已经看过了也没有办法:mad::mad::mad::mad::mad:
发表于 2008-1-20 20:34:44 | 显示全部楼层
LZ辛苦了,向你学习了
回复 支持 反对

使用道具 举报

发表于 2008-1-20 23:51:42 | 显示全部楼层
顶,支持……
回复 支持 反对

使用道具 举报

发表于 2008-1-21 12:46:31 | 显示全部楼层
把它改写成一个可以裁剪的安装脚本吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-21 15:28:20 | 显示全部楼层
Post by linux001;1809494
把它改写成一个可以裁剪的安装脚本吧


兄台有兴趣来做一个吗?正好我还打算再做一次
回复 支持 反对

使用道具 举报

发表于 2008-1-21 19:39:59 | 显示全部楼层
我不会写,但很想用,嘿嘿。。。
回复 支持 反对

使用道具 举报

发表于 2008-1-21 20:26:57 | 显示全部楼层
先把需要的软件下载到目录,比如 xorg-7.3 目录。需要确保文件下载完整。
需要编译时再 cp -a xorg-7.3 到 sources 目录。
之后执行脚本,一步搞定。
回复 支持 反对

使用道具 举报

发表于 2008-1-24 12:19:11 | 显示全部楼层
楼主,你给的CLFS的网站连接打不开.
回复 支持 反对

使用道具 举报

发表于 2008-1-25 21:29:22 | 显示全部楼层
7.3和6.9有很大的不同~
回复 支持 反对

使用道具 举报

发表于 2008-4-29 19:53:08 | 显示全部楼层
Post by linux001;1809494
把它改写成一个可以裁剪的安装脚本吧
编译X lib时,因为lib之间依赖关系的问题,还是手动编译比较好吧~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表