LFS V6.3 & BLFS V6.3
LFS是中文文档,见http://youbest.cublog.cn
BLFS是英文文档.我是下载下来,开一个终端用lynx来浏览的,貌似links不支持鼠标复制.
参考网址: http://www.linuxfromscratch.org/blfs/view/stable/
本来是打算用SlackWare12.1 DVD ISO 里的Xorg源码来编译的,懒得下载嘛,但由于有些包编译顺序不对,导致很多东西都没编译好,所以后面一直出错.所以就参照Beyond Linux® From Scratch Version 6.3的英文文档,把需要的东西wget下载,然后按照文档指导,花了一天时间,把Xorg基本环境编译出来了.最后加了个fluxbox,目前也就只做到这里了.本来还不打算BLFS的,但过于无聊,就BLFS下.见笑了.
准备工作:
mkdir xc &&
cd xc
export XORG_PREFIX=”/usr”
export XORG_CONFIG=”–prefix=$XORG_PREFIX –sysconfdir=/etc \
–mandir=$XORG_PREFIX/share/man –localstatedir=/var”
install -v -m755 -d \
/etc/X11/{app-defaults,fs,twm,xdm,xinit,xkb,xsm} &&
install -v -m755 -d $XORG_PREFIX/lib/X11 &&
for link in \
/etc/X11/{app-defaults,fs,twm,xdm,xinit,xkb,xsm}
do
ln -sv $link $XORG_PREFIX/lib/X11
done
下面是编译过程:
1.Xorg Protocol Headers
wget http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/proto-7.2.wget
mkdir proto &&
cd proto &&
grep -v ‘^#’ ../proto-7.2.wget | wget -i- -c \
-B http://xorg.freedesktop.org/releases/individual/proto/
#Begin wget_install
for package in $(grep -v ‘^#’ ../proto-7.2.wget)
do
packagedir=$(echo $package | sed ‘s/.tar.bz2//’)
tar -xf $package
cd $packagedir
./configure $XORG_CONFIG
make install
cd ..
rm -rf $packagedir
rm -f $package
done 2>&1 | tee -a ../xorg-proto-7.2-compile.log #log the entire loop
#End wget_install
../wget_install &&
cd ..
2.pkg-config-0.22
wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.22.tar.gz
tar xvf pkg-config-0.22.tar.gz
cd pkg-config-0.22
./configure –prefix=/usr &&
make &&
make install &&
cd ..
3.Xorg Utilities
wget http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/util-7.2.wget
mkdir util &&
cd util &&
grep -v ‘^#’ ../util-7.2.wget | wget -i- -c \
-B http://xorg.freedesktop.org/releases/individual/util/
#Begin wget_install
for package in $(grep -v ‘^#’ ../util-7.2.wget)
do
packagedir=$(echo $package | sed ‘s/.tar.bz2//’)
tar -xf $package
cd $packagedir
./configure $XORG_CONFIG
make
make install
cd ..
rm -rf $packagedir
rm -f $package
done 2>&1 | tee -a ../xorg-util-7.2-compile.log #log the entire loop
#End wget_install
../wget_install &&
cd ..
4.libXau-1.0.3
wget http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.3.tar.bz2
tar xvf libXau-1.0.3.tar.bz2
cd libXau-1.0.3
./configure $XORG_CONFIG &&
make &&
make install &&
cd ..
5.libXdmcp-1.0.2
wget http://xorg.freedesktop.org/releases/individual/lib/libXdmcp-1.0.2.tar.bz2
tar xvf libXdmcp-1.0.2.tar.bz2
cd libXdmcp-1.0.2
./configure $XORG_CONFIG &&
make &&
make install &&
cd ..
6.xcb-proto-1.0
wget http://xcb.freedesktop.org/dist/xcb-proto-1.0.tar.bz2
tar xvf xcb-proto-1.0.tar.bz2
cd xcb-proto-1.0
./configure $XORG_CONFIG &&
make &&
make install &&
install -dv -m755 ${XORG_PREFIX}/share/doc/xcb-proto-1.0 &&
install -v -m644 doc/* ${XORG_PREFIX}/share/doc/xcb-proto-1.0 &&
cd ..
7.libxml2-2.6.31
wget http://xmlsoft.org/sources/libxml2-2.6.31.tar.gz
tar xvf libxml2-2.6.31.tar.gz
cd libxml2-2.6.31
./configure –prefix=/usr &&
make &&
make install &&
cd ..
8.libxslt-1.1.22
wget http://xmlsoft.org/sources/libxslt-1.1.22.tar.gz
tar xvf libxslt-1.1.22.tar.gz
cd libxslt-1.1.22
./configure –prefix=/usr &&
make &&
make install &&
cd ..
第九步之前应是要先装这个:libpthread-stubs-0.1
9.libxcb-1.0
wget http://xcb.freedesktop.org/dist/libxcb-1.0.tar.bz2
wget http://www.linuxfromscratch.org/patches/blfs/6.3/libxcb-1.0-sloppy_lock-1.patch
tar xvf libxcb-1.0.tar.bz2
cd libxcb-1.0
patch -Np1 -i ../libxcb-1.0-sloppy_lock-1.patch &&
./configure $XORG_CONFIG –docdir=’${datadir}’/doc/libxcb-1.0 &&
make &&
make install &&
cd ..
10.Ed-0.8
wget http://ftp.gnu.org/pub/gnu/ed/ed-0.8.tar.bz2
tar xvf ed-0.8.tar.bz2
cd ed-0.8
./configure –prefix=/usr &&
make &&
make install &&
make install-man &&
cd ..
11.expat-2.0.1
wget http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
tar xvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure –prefix=/usr &&
make &&
make install &&
install -v -m755 -d /usr/share/doc/expat-2.0.1 &&
install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-2.0.1 &&
cd ..
12.FreeType-2.3.7
wget http://downloads.sourceforge.net/freetype/freetype-2.3.7.tar.bz2
wget http://downloads.sourceforge.net/freetype/freetype-doc-2.3.7.tar.bz2
tar xvf freetype-2.3.7.tar.bz2
cd freetype-2.3.7
tar xf ../freetype-doc-2.3.7.tar.bz2 \
–strip-components=2 -C docs
sed -i -r -e ‘s:.*(#.*BYTE.*) .*:\1:’ \
-e ‘s:.*(#.*SUBPIX.*) .*:\1:’ \
include/freetype/config/ftoption.h &&
./configure –prefix=/usr &&
make &&
make install &&
install -v -m755 -d /usr/share/doc/freetype-2.3.7 &&
cp -v -R docs/* /usr/share/doc/freetype-2.3.7 &&
cd ..
13.Fontconfig-2.4.2
wget http://fontconfig.org/release/fontconfig-2.4.2.tar.gz
tar xvf fontconfig-2.4.2.tar.gz
cd fontconfig-2.4.2
./configure –prefix=/usr \
–sysconfdir=/etc –localstatedir=/var \
–disable-docs –without-add-fonts \
–with-docdir=/usr/share/doc/fontconfig-2.4.2 &&
make
make install &&
install -v -m644 doc/*.3 /usr/share/man/man3 &&
install -v -m644 doc/*.5 /usr/share/man/man5 &&
install -v -m755 \
-d /usr/share/doc/fontconfig-2.4.2/fontconfig-devel &&
install -v -m644 doc/*.{html,pdf,txt} \
/usr/share/doc/fontconfig-2.4.2 &&
install -v -m644 doc/fontconfig-devel/* \
/usr/share/doc/fontconfig-2.4.2/fontconfig-devel
cd ..
14.Xorg Libraries
wget http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/lib-7.2.wget
wget http://www.linuxfromscratch.org/patches/blfs/6.3/libX11-1.1.2-badargs-1.patch
wget http://www.linuxfromscratch.org/patches/blfs/6.3/libXfont-1.2.8-pcf_parser-1.patch
mkdir lib &&
cd lib &&
grep -v ‘^#’ ../lib-7.2.wget | wget -i- -c \
-B http://xorg.freedesktop.org/releases/individual/lib/
#Begin wget_install
for package in $(grep -v ‘^#’ ../lib-7.2.wget)
do
packagedir=$(echo $package | sed ‘s/.tar.bz2//’)
tar -xf $package
cd $packagedir
case $(basename “$PWD”) in
libX11-1.1.2 )
patch -Np1 -i ../../libX11-1.1.2-badargs-1.patch &&
sed -i ‘s/_XGet/XGet/’ modules/im/ximcp/imDefLkup.c
;;
libXfont-1.2.8 )
patch -Np1 -i ../../libXfont-1.2.8-pcf_parser-1.patch &&
sed -i ‘s/(ft_isdigit/(isdigit/’ src/FreeType/fttools.c
;;
esac
./configure $XORG_CONFIG
make
make install
ldconfig
cd ..
rm -rf $packagedir
rm -f $package
done 2>&1 | tee -a ../xorg-lib-7.2-compile.log #log the entire loop
#End wget_install
../wget_install &&
cd ..
Tips:
这里要重新编译下libXfont-1.2.8,配置的时候加下面的参数,要不然的话后面xorg-server编译通过不
了.
./configure $XORG_CONFIG CFLAGS=’-Dft_isdigit=isdigit’
make
make install
ldconfig
15.Xbitmaps-1.0.1
wget http://xorg.freedesktop.org/releases/individual/data/xbitmaps-1.0.1.tar.bz2
tar xvf xbitmaps-1.0.1.tar.bz2
cd xbitmaps-1.0.1
./configure $XORG_CONFIG &&
make install &&
cd ..
16.libpng-1.2.29
wget http://downloads.sourceforge.net/libpng/libpng-1.2.29.tar.bz2
tar xvf libpng-1.2.29.tar.bz2
cd libpng-1.2.29
./configure –prefix=/usr &&
make &&
make install &&
install -v -m755 -d /usr/share/doc/libpng-1.2.29 &&
install -v -m644 README libpng-1.2.29.txt \
/usr/share/doc/libpng-1.2.29 &&
cd ..
17.libdrm-2.3.0
wget http://dri.freedesktop.org/libdrm/libdrm-2.3.0.tar.gz
tar xvf libdrm-2.3.0.tar.gz
cd libdrm-2.3.0
./configure –prefix=$XORG_PREFIX &&
make &&
make install &&
cd ..
18.MesaLib-6.5.2
wget http://downloads.sourceforge.net/mesa3d/MesaLib-6.5.2.tar.bz2
tar xvf MesaLib-6.5.2.tar.bz2
cd MesaLib-6.5.2
make linux-dri-x86 OPT_FLAGS=”-O2 -fno-strict-aliasing” \
DRI_DRIVER_INSTALL_DIR=${XORG_PREFIX}/lib/X11/modules/dri \
X11_INCLUDES=-I${XORG_PREFIX}/include \
EXTRA_LIB_PATH=-L${XORG_PREFIX}/lib
make install INSTALL_DIR=${XORG_PREFIX} \
DRI_DRIVER_INSTALL_DIR=${XORG_PREFIX}/lib/X11/modules/dri &&
install -dv ${XORG_PREFIX}/share/doc/MesaLib-6.5.2 &&
install -v -m644 docs/* ${XORG_PREFIX}/share/doc/MesaLib-6.5.2
ln -s -v ${XORG_PREFIX}/include/GL /usr/include
cd ..
19.Xorg Applications
wget http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/app-7.2.wget
mkdir app &&
cd app &&
grep -v ‘^#’ ../app-7.2.wget | wget -i- -c \
-B http://xorg.freedesktop.org/releases/individual/app/
#Begin wget_install
for package in $(grep -v ‘^#’ ../app-7.2.wget)
do
packagedir=$(echo $package | sed ‘s/.tar.bz2//’)
tar -xf $package
cd $packagedir
./configure $XORG_CONFIG
make
make install
cd ..
rm -rf $packagedir
rm -f $package
done 2>&1 | tee -a ../xorg-app-7.2-compile.log #log the entire loop
#End wget_install
../wget_install &&
cd ..
20.xcursor-themes-1.0.1
wget http://xorg.freedesktop.org/releases/individual/data/xcursor-themes-1.0.1.tar.bz2
tar xvf xcursor-themes-1.0.1.tar.bz2
cd xcursor-themes-1.0.1
./configure $XORG_CONFIG &&
make &&
make install &&
cd ..
21.Xorg Fonts
wget http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/font-7.2.wget
mkdir font &&
cd font &&
grep -v ‘^#’ ../font-7.2.wget | wget -i- -c \
-B http://xorg.freedesktop.org/releases/individual/font/
#Begin wget_install
for package in $(grep -v ‘^#’ ../font-7.2.wget)
do
packagedir=$(echo $package | sed ‘s/.tar.bz2//’)
tar -xf $package
cd $packagedir
./configure $XORG_CONFIG
make
make install
cd ..
rm -rf $packagedir
rm -f $package
done 2>&1 | tee -a ../xorg-font-7.2-compile.log #log the entire loop
#End wget_install
../wget_install &&
install -v -d -m755 /usr/share/fonts &&
ln -svn $XORG_PREFIX/lib/X11/fonts/OTF /usr/share/fonts/X11-OTF &&
ln -svn $XORG_PREFIX/lib/X11/fonts/TTF /usr/share/fonts/X11-TTF &&
cd ..
22.XML::Parser-2.34
wget http://cpan.org/authors/id/M/MS/MSERGEANT/XML-Parser-2.34.tar.gz
tar xvf XML-Parser-2.34.tar.gz
cd XML-Parser-2.34
perl Makefile.PL
perl Makefile.PL PREFIX=/home/me/perl INSTALLDIRS=perl
make
make install
cd ..
23.XKeyboardConfig-1.2
wget http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-1.2.tar.bz2
tar xvf xkeyboard-config-1.2.tar.bz2
cd xkeyboard-config-1.2
./configure $XORG_CONFIG –with-xkb-rules-symlink=xorg &&
make &&
make install &&
install -dv -m755 $XORG_PREFIX/share/doc/xkeyboard-config-1.2 &&
install -v -m644 docs/{README,HOWTO}* \
$XORG_PREFIX/share/doc/xkeyboard-config-1.2 &&
cd ..
24.Luit-1.0.2
wget http://xorg.freedesktop.org/releases/individual/app/luit-1.0.2.tar.bz2
tar xvf luit-1.0.2.tar.bz2
cd luit-1.0.2
./configure $XORG_CONFIG \
–with-localealiasfile=$XORG_PREFIX/share/X11/locale/locale.alias &&
make &&
make install &&
cd ..
25.Xorg-Server-1.2.0
wget http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.2.0.tar.bz2
wget http://www.linuxfromscratch.org/patches/blfs/6.3/xorg-server-1.2.0-security-1.patch
tar xvf xorg-server-1.2.0.tar.bz2
patch -Np1 -i ../xorg-server-1.2.0-security-1.patch
./configure $XORG_CONFIG \
–with-mesa-source=/root/Mesa-6.5.2 \
–with-module-dir=$XORG_PREFIX/lib/X11/modules \
–with-dri-driver-path=$XORG_PREFIX/lib/X11/modules/dri \
–with-xkb-output=/var/lib/xkb \
–enable-install-setuid &&
make &&
make install &&
cd ..
Tips:
–with-mesa-source=/root/Mesa-6.5.2
因为我的Mesa-6.5.2的源代码在/root/下,官方文档说这里要用绝对路径
编译时间比较长.
26.Xorg Drivers
wget http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/driver-7.2.wget
mkdir driver &&
cd driver &&
grep -v ‘^#’ ../driver-7.2.wget | wget -i- -c \
-B http://xorg.freedesktop.org/releases/individual/driver/
#Begin wget_install
for package in $(grep -v ‘^#’ ../driver-7.2.wget)
do
packagedir=$(echo $package | sed ‘s/.tar.bz2//’)
tar -xf $package
cd $packagedir
case $(basename “$PWD”) in
xf86-input-evdev-[0-9]* | xf86-video-ati-[0-9]* | \
xf86-video-fbdev-[0-9]* | xf86-video-glint-[0-9]* | \
xf86-video-newport-[0-9]* )
sed -i -e “s/\xc3\xb8/\\\\[\/o]/” \
-e “s/\xc3\xa4/\\\\[:a]/” \
-e “s/\xc3\x9c/\\\\[:U]/” man/*.man
;;
esac &&
./configure $XORG_CONFIG \
–with-xorg-module-dir=$XORG_PREFIX/lib/X11/modules &&
make &&
make install &&
cd ..
rm -rf $packagedir
rm -f $package
done 2>&1 | tee -a ../xorg-driver-7.2-compile.log #log the entire loop
#End wget_install
../wget_install &&
至此,Xorg 7.2的所有编译工作完成.接下来就是配置xorg,安装窗口管理器等,我自己编译的是fluxbox.
转载自:
http://hi.baidu.com/wtx358/blog/item/db40f9c4aa0533ae8226acc5.html/cmtid/03391e33fa30b6f31a4cffbd