第一章 装x
建立一个文件夹,取名01X,将本章所有的软件包放在里面,安装时,只要进入该文件夹,按先后顺序执行命令便可以了。主要安装的软件包有:libpng-1.2.12.tar.bz2; expat-2.0.0.tar.gz; freetype-2.1.10.tar.bz2;fontconfig-2.3.2.tar.gz;Linux-PAM-0.99.4.0.tar.bz2;X11R6.9.0-src.tar.bz2等六个包。
-----------------------------------------------------------------------------------
01.01
libpng-1.2.12
http://downloads.sourceforge.net/lib...1.2.12.tar.bz2tar -jxvf libpng-1.2.12.tar.bz2
cd libpng-1.2.12
./configure --prefix=/usr
make
make install
install -v -m755 -d /usr/share/doc/libpng-1.2.12
install -v -m644 README libpng.txt /usr/share/doc/libpng-1.2.12
cd ..
rm -rf libpng-1.2.12
-----------------------------------------------------------------------------------
make
make install
install -v -m755 -d /usr/share/doc/expat-2.0.0
install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-2.0.0
cd ..
rm -rf expat-2.0.0
tar -jxvf freetype-2.1.10.tar.bz2
cd freetype-2.1.10
tar xf ../freetype-doc-2.1.10.tar.bz2 \
--strip-components=2 -C docs
sed -i -r 's:.*(#.*BYTE.*) .*:\1:' \
include/freetype/config/ftoption.h
./configure --prefix=/usr
make
make install
install -v -m755 -d /usr/share/doc/freetype-2.1.10
cp -v -R docs/* /usr/share/doc/freetype-2.1.10
cd ..
rm -rf freetype-2.1.10
-----------------------------------------------------------------------------------
01.04
fontconfig-2.3.2
http://fontconfig.org/release/fontconfig-2.3.2.tar.gztar -zxvf fontconfig-2.3.2.tar.gz
cd fontconfig-2.3.2
./configure --prefix=/usr --sysconfdir=/etc \
--disable-docs --without-add-fonts \
--with-docdir=/usr/share/doc/fontconfig-2.3.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.3.2/fontconfig-devel
install -v -m644 doc/*.{html,pdf,txt} \
/usr/share/doc/fontconfig-2.3.2
install -v -m644 doc/fontconfig-devel/* \
/usr/share/doc/fontconfig-2.3.2/fontconfig-devel
cd ..
rm -rf fontconfig-2.3.2
-----------------------------------------------------------------------------------
01.05
linux-pam-0.99.4.0
http://www.kernel.org/pub/linux/libs...99.4.0.tar.bz2http://www.kernel.org/pub/linux/libs...0-docs.tar.bz2tar -jxvf Linux-PAM-0.99.4.0.tar.bz2
cd Linux-PAM-0.99.4.0
tar -xf ../Linux-PAM-0.99.4.0-docs.tar.bz2 -C doc
./configure --libdir=/usr/lib \
--sbindir=/lib/security \
--enable-securedir=/lib/security \
--enable-docdir=/usr/share/doc/Linux-PAM-0.99.4.0 \
--enable-read-both-confs
make
make install
chmod -v 4755 /lib/security/unix_chkpwd
mv -v /lib/security/pam_tally /sbin
mv -v /usr/lib/libpam*.so.0* /lib
ln -v -sf ../../lib/libpam.so.0.81.3 /usr/lib/libpam.so
ln -v -sf ../../lib/libpamc.so.0.81.0 /usr/lib/libpamc.so
ln -v -sf ../../lib/libpam_misc.so.0.81.2 /usr/lib/libpam_misc.so
for DOCTYPE in html pdf ps txts
do
cp -v -R doc/$DOCTYPE /usr/share/doc/Linux-PAM-0.99.4.0
done
cd ..
rm -rf Linux-PAM-0.99.4.0
-----------------------------------------------------------------------------------
01.06
Xorg-6.9.0
http://xorg.freedesktop.org/releases....0-src.tar.bz2http://www.linuxfromscratch.org/patc...t_race-1.patchhttp://www.linuxfromscratch.org/patc...curity-4.patchtar -jxvf X11R6.9.0-src.tar.bz2
cd xc
patch -Np1 -i ../xorg-6.9.0-luit_race-1.patch
patch -Np1 -i ../xorg-6.9.0-security-4.patch
sed -i 's@/usr/X11R6@</usr>@' programs/luit/parser.h
sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile
pushd config/util
make -f Makefile.ini lndir
popd
mkdir ../xcbuild
cd ../xcbuild
../xc/config/util/lndir ../xc
cat > config/cf/host.def << "EOF"
/*特别说明,host.def是青铜镜修改过的!建议使用原来的官方文件!*/
/* Begin Xorg host.def file */
/* System Related Information. If you read and configure only one
* section then it should be this one. The Intel architecture defaults
* are set for a i686 and higher. If that happens, try
* building without the DefaultGcc2PpcOpt line. ***********/
/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce \
-fno-strict-aliasing -march=athlon-xp */
#define HasFreetype2 YES
#define HasFontconfig YES
#define HasExpat YES
#define HasLibpng YES
#define HasZlib YES
/* Uncomment the following define if you'd like
* xdm to use Linux-PAM
#define HasPam YES
*/
/*
* Which drivers to build. When building a static server, each of
* these will be included in it. When building the loadable server
* each of these modules will be built.
*
#define XF86CardDrivers mga glint nv tga vesa vga \
XF86OSCardDrivers XF86ExtraCardDrivers
*/
/*
* Select the XInput devices you want by uncommenting this.
*
#define XInputDrivers mouse keyboard acecad calcomp citron \
digitaledge dmc dynapro elographics \
microtouch mutouch penmount spaceorb \
summa wacom void magictouch aiptek
*/
/* Most installs will only need this */
#define XInputDrivers mouse keyboard
/* Xterm is no longer built by default */
#define BuildXterm YES
/* Disable building Xprint server and clients until we get them figured
* out but build Xprint libraries to allow precompiled binaries such as
* Acrobat Reader to run.
*/
#define XprtServer NO
#define BuildXprintClients NO
/* Uncomment the following define if you would prefer to install X into
* /usr or change it to any other location that you prefer.
* The GL related defines disable compatibility symlinks (the links
* are not needed when X is installed in /usr).
#define ProjectRoot /usr
#define LinkGLToUsrInclude NO
#define LinkGLToUsrLib NO
*/
/* End Xorg host.def file */
EOF
sed -i -e "s@^#include <linux/config.h>@/* & */@" \
`grep -lr linux/config.h *` && \
( make World 2>&1 | tee xorg-compile.log && exit $PIPESTATUS )
make install
make install.man
ln -v -s ../X11R6/bin /usr/bin/X11
ln -v -s ../X11R6/lib/X11 /usr/lib/X11
ln -v -s ../X11R6/include/X11 /usr/include/X11
install -v -d -m755 /usr/share/fonts
ln -svn /usr/X11R6/lib/X11/fonts/TTF /usr/share/fonts/X11-TTF
cat >> /etc/ld.so.conf << "EOF"
/usr/X11R6/lib
EOF
ldconfig
cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/X11R6/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/X11R6/lib/pkgconfig
EOF
/sbin/ldconfig
cd ~
Xorg -configure
补充说明1:
执行下面的命令以后,
cat >> /etc/ld.so.conf << "EOF"
/usr/X11R6/lib
EOF
系统会把/usr/X11R6/lib这一行写入到/etc/ld.so.conf文件里面,
但是,/usr/X11R6/lib只是追加到# End of ld.so.conf这一行后面.
必须得修改一下,把/usr/X11R6/lib放到# End of ld.so.conf这一行的前面!
输入命令测试:
X -config ~/xorg.conf.new
按Ctrl+Alt+backspace退出
01.06.02 Xorg-6.9.0
install -v -m755 -D ~/xorg.conf.new /etc/X11/xorg.conf
cat > ~/.xinitrc << "EOF"
# Begin .xinitrc file
xterm -g 80x40+0+0 &
xclock -g 100x100-0+0 &
twm
EOF
cat >> /etc/sysconfig/createfiles << "EOF"
/tmp/.ICE-unix dir 1777 root root
EOF
补充说明2:
执行下面的命令以后,
cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/X11R6/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/X11R6/lib/pkgconfig
EOF
系统会把
export PATH=$PATH:/usr/X11R6/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/X11R6/lib/pkgconfig
这两行写入到/etc/profile文件里面,
但是,这两行只是追加到# End of profile这一行后面.
必须得修改一下,把上面的这两行代码放到# End of profile这一行的前面!
修改后,
执行命令:
source /etc/profile
ldconfig
要不然系统会找不到命令.
至此,停下来测试你的Xorg是不是可以正常工作了。运行命令:startx
看到TWM和一个时钟没有?你还可以在TWM里面输入命令:xcalc &
这样,你还能看到一个计算器!如果你没看到TWM、时钟和计算器,那么青铜镜强烈建议:你一定要好好检查一下,看看哪里出了问题。先把问题解决了再继续进行下去。因为,如果X没装好,那么下面的工作是无意义的。
第二章 支持库
建立一个文件夹,取名02G,将本章所有的软件包放在里面,安装时,只要进入该文件夹,按先后顺序执行命令便可以了。主要安装的软件包有:pkg-config-0.20.tar.bz2;glib-2.10.3.tar.bz2;atk-1.11.4.tar.bz2;cairo-1.2.4.tar.gz;pango-1.12.3.tar.bz2;tiff-3.8.2.tar.bz2;gtk+-2.8.20.tar.bz2等七个包。
02.01
pkg-config-0.20
http://pkgconfig.freedesktop.org/rel...ig-0.20.tar.gztar -zxvf pkg-config-0.20.tar.gz
cd pkg-config-0.20
./configure --prefix=/usr
make
make install
cd ..
rm -rf pkg-config-0.20
-----------------------------------------------------------------------------------
02.02
glib-2.10.3
http://ftp.gnome.org/pub/gnome/sourc...2.10.3.tar.bz2tar -jxvf glib-2.10.3.tar.bz2
cd glib-2.10.3
./configure --prefix=/usr
make
make install
cd ..
rm -rf glib-2.10.3
-----------------------------------------------------------------------------------
02.03
ATK-1.11.4
http://ftp.gnome.org/pub/gnome/sourc...1.11.4.tar.bz2tar -jxvf atk-1.11.4.tar.bz2
cd atk-1.11.4
./configure --prefix=/usr
make
make install
cd ..
rm -rf atk-1.11.4
-----------------------------------------------------------------------------------
02.04
cairo-1.2.4
http://cairographics.org/releases/cairo-1.2.4.tar.gztar zxvf cairo-1.2.4.tar.gz
cd cairo-1.2.4
./configure --prefix=/usr
make
make install
cd ..
rm -rf cairo-1.2.4
-----------------------------------------------------------------------------------
02.05
Pango-1.12.3
http://ftp.gnome.org/pub/gnome/sourc...1.12.3.tar.bz2 tar -jxvf pango-1.12.3.tar.bz2
cd pango-1.12.3
./configure --prefix=/usr --sysconfdir=/etc
make
make install
cd ..
rm -rf pango-1.12.3
-----------------------------------------------------------------------------------
02.06
libtiff-3.8.2
http://libtiff.maptools.org/dl/tiff-3.8.2.tar.gztar -zxvf tiff-3.8.2.tar.gz
cd tiff-3.8.2
./configure --prefix=/usr
make
make install
cd ..
rm -rf tiff-3.8.2
----------------------------------------------------------------------------------
注:此处青铜镜兄弟没有写编译libjpeg,我在02.07步骤里configure出错,所以把编译libjpeg补充到这里
02.06.2
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --enable-static --enable-shared --prefix=/usr
make
make install
cd ..
rm -fr jpeg-6b
安装好libjpeg以后再进行02.07步骤安装GTK
02.07
GTK+-2.8.20
http://ftp.gnome.org/pub/gnome/sourc...2.8.20.tar.bz2tar -jxvf gtk+-2.8.20.tar.bz2
cd gtk+-2.8.20
./configure --prefix=/usr --sysconfdir=/etc
make
make install
install -v -m755 -d /usr/share/doc/gtk+-2.8.20/{faq,tutorial}
cp -v -R docs/faq/html/* /usr/share/doc/gtk+-2.8.20/faq
cp -v -R docs/tutorial/html/* /usr/share/doc/gtk+-2.8.20/tutorial
cd ..
rm -rf gtk+-2.8.20