LinuxSir.cn,穿越时空的Linuxsir!

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

LFS 6.7 准速成手册 及 LFS 6.7 上安装 xorg 7.5

[复制链接]
发表于 2011-1-6 12:05:33 | 显示全部楼层 |阅读模式
题目起得有点霸道,各位高手别人肉我。

文章分开两篇同时发表于自己的博客:

http://www.open2l.com/lfs67-quick-guide.html
http://www.open2l.com/install-xorg75-at-lfs67.html


作者是在真机里装了 virtualbox-3.2_3.2.12-68302 ,要在 virtualbox 里创建一个 LFS6.7 系统。

建立虚拟机,按默认来就行,其中“网络”选择“Bridged”

开启虚拟机,用 LiveCD 启动。LiveCD 可前往 http://www.linuxfromscratch.org/livecd/download.html 下载。

##########下面在虚拟机操作#############

开启SSH

  1. /usr/sbin/sshd
复制代码


设置root密码

  1. passwd root
复制代码


##########下面的在真机的系统里操作#######

连接 SSH ,IP 地址要根据自己的情况来改。

  1. ssh root@192.168.1.101
复制代码


连接上之后,就可以用真机的一个终端来对虚拟机进行操作。

分区、激活交换分区、创建“创作基地”、创建必要目录并设置属性、创建工具链目录

  1. cfdisk /dev/sda
复制代码


当然不一定用 cfdisk 命令,我个人是觉得好用而已。分两个区出来:/dev/sda1 作为 swap ,/dev/sda2 作为目标系统根目录。

  1. mkswap /dev/sda1
  2. mke2fs -jv /dev/sda2
  3. swapon /dev/sda1

  4. export LFS=/mnt/lfs
  5. mkdir -v $LFS
  6. mount -v -t ext3 /dev/sda2 $LFS
  7. mkdir -v $LFS/sources
  8. chmod -v a+wt $LFS/sources
  9. mkdir -v $LFS/tools
  10. ln -sv $LFS/tools /
复制代码


创建 lfs 用户、登录到 lfs 用户、建立 lfs 用户环境、下入编译目录

  1. groupadd lfs
  2. useradd -s /bin/bash -g lfs -m -k /dev/null lfs
  3. passwd lfs
  4. #直接回车就是空密码

  5. chown -v lfs $LFS/tools
  6. chown -v lfs $LFS/sources

  7. su - lfs

  8. cat > ~/.bash_profile << "EOF"
  9. exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
  10. EOF

  11. cat > ~/.bashrc << "EOF"
  12. set +h
  13. umask 022
  14. LFS=/mnt/lfs
  15. LC_ALL=POSIX
  16. LFS_TGT=$(uname -m)-lfs-linux-gnu
  17. PATH=/tools/bin:/bin:/usr/bin
  18. export LFS LC_ALL LFS_TGT PATH
  19. EOF

  20. source ~/.bash_profile
  21. cd $LFS/sources

  22. wget -c ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-6.7.tar
复制代码


如果在真机里有,可以在真机通过 scp 命令拷贝进去:scp lfs-packages-6.7.tar root@192.168.1.101:/mnt/lfs/sources

  1. tar xvf lfs-packages-6.7.tar -C $LFS/
复制代码


注:其实如果不使用lfs用root也是能完成工具链的,不过需要对root的环境变量进行修改,还要防止因为输入错误而导致覆盖主系统下的文件,所以LFS手册中制作工具链部分就是为了解决这种意外的发生而用lfs用户来建立工具链

#############################################################
########下面开始就是手册里5. Constructing a Temporary System
########构建临时体系统的过程
##############################################################

Binutils-2.20.1 - Pass 1

  1. tar xvf binutils-2.20.1.tar.bz2
  2. cd binutils-2.20.1
  3. mkdir -v ../binutils-build
  4. cd ../binutils-build
  5. ../binutils-2.20.1/configure \
  6.     --target=$LFS_TGT --prefix=/tools \
  7.     --disable-nls --disable-werror
  8. make
  9. make install
  10. cd ..
  11. rm -rf binutils-build
  12. rm -rf binutils-2.20.1
复制代码


GCC-4.5.1 - Pass 1

  1. tar xvf gcc-4.5.1.tar.bz2
  2. cd gcc-4.5.1
  3. tar -jxf ../mpfr-3.0.0.tar.bz2
  4. mv -v mpfr-3.0.0 mpfr
  5. tar -jxf ../gmp-5.0.1.tar.bz2
  6. mv -v gmp-5.0.1 gmp
  7. tar -zxf ../mpc-0.8.2.tar.gz
  8. mv -v mpc-0.8.2 mpc
  9. mkdir -v ../gcc-build
  10. cd ../gcc-build
  11. ../gcc-4.5.1/configure \
  12.     --target=$LFS_TGT --prefix=/tools \
  13.     --disable-nls --disable-shared --disable-multilib \
  14.     --disable-decimal-float --disable-threads \
  15.     --disable-libmudflap --disable-libssp \
  16.     --disable-libgomp --enable-languages=c \
  17.     --with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \
  18.     --without-ppl --without-cloog

  19. make
  20. make install
  21. ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | \
  22.     sed 's/libgcc/&_eh/'`
  23. cd ..
  24. rm -rf gcc-4.5.1
  25. rm -rf gcc-build
复制代码


这里不要图个省事而不删除 gcc-4.5.1 ,否则可能会给后面的编译产生一些意外错误

Linux-2.6.35.4 API Headers

  1. tar xvf linux-2.6.35.4.tar.bz2
  2. cd linux-2.6.35.4
  3. make mrproper
  4. make headers_check
  5. make INSTALL_HDR_PATH=dest headers_install
  6. cp -rv dest/include/* /tools/include
  7. cd ..
  8. rm -rf linux-2.6.35.4
复制代码


Glibc-2.12.1

  1. tar xvf glibc-2.12.1.tar.bz2
  2. cd glibc-2.12.1
  3. patch -Np1 -i ../glibc-2.12.1-gcc_fix-1.patch
  4. patch -Np1 -i ../glibc-2.12.1-makefile_fix-1.patch
  5. mkdir -v ../glibc-build
  6. cd ../glibc-build
  7. case `uname -m` in
  8.   i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;;
  9. esac
  10. ../glibc-2.12.1/configure --prefix=/tools \
  11.     --host=$LFS_TGT --build=$(../glibc-2.12.1/scripts/config.guess) \
  12.     --disable-profile --enable-add-ons \
  13.     --enable-kernel=2.6.22.5 --with-headers=/tools/include \
  14.     libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes
  15. make
  16. make install
  17. cd ..
  18. rm -rf glibc-2.12.1
  19. rm -rf glibc-build
复制代码


注:这里的参数—enable-kernel=2.6.22.5,指支持2.6.22.5 及其之后的内核版本,老版本不支持。

调节工具链

  1. SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs
  2. $LFS_TGT-gcc -dumpspecs | sed \
  3.   -e 's@/lib\(64\)\?/ld@/tools&@g' \
  4.   -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS
  5. echo "New specs file is: $SPECS"
  6. unset SPECS
复制代码


测试一下工具链,可以不做的,但还是看看有没有出错

  1. echo 'main(){}' > dummy.c
  2. $LFS_TGT-gcc -B/tools/lib dummy.c
  3. readelf -l a.out | grep ': /tools'
复制代码


这里大致输出:

[Requesting program interpreter: /tools/lib/ld-linux.so.2]

删除测试文件

  1. rm -v dummy.c a.out
复制代码


Binutils-2.20.1 - Pass 2

  1. tar xvf binutils-2.20.1.tar.bz2
  2. cd binutils-2.20.1
  3. mkdir -v ../binutils-build
  4. cd ../binutils-build
  5. CC="$LFS_TGT-gcc -B/tools/lib/" \
  6.    AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib \
  7.    ../binutils-2.20.1/configure --prefix=/tools \
  8.    --disable-nls --with-lib-path=/tools/lib
  9. make
  10. make install
  11. make -C ld clean
  12. make -C ld LIB_PATH=/usr/lib:/lib
  13. cp -v ld/ld-new /tools/bin
  14. cd ..
  15. rm -rf binutils-build
  16. rm -rf binutils-2.20.1
复制代码


GCC-4.5.1 - Pass 2

  1. tar xvf gcc-4.5.1.tar.bz2
  2. cd gcc-4.5.1
  3. patch -Np1 -i ../gcc-4.5.1-startfiles_fix-1.patch
  4. cp -v gcc/Makefile.in{,.orig}
  5. sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
  6. cp -v gcc/Makefile.in{,.tmp}
  7. sed 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
  8.   > gcc/Makefile.in
  9. for file in \
  10. $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
  11. do
  12.   cp -uv $file{,.orig}
  13.   sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
  14.   -e 's@/usr@/tools@g' $file.orig > $file
  15.   echo '
  16. #undef STANDARD_INCLUDE_DIR
  17. #define STANDARD_INCLUDE_DIR 0
  18. #define STANDARD_STARTFILE_PREFIX_1 ""
  19. #define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
  20.   touch $file.orig
  21. done
  22. tar -jxf ../mpfr-3.0.0.tar.bz2
  23. mv -v mpfr-3.0.0 mpfr
  24. tar -jxf ../gmp-5.0.1.tar.bz2
  25. mv -v gmp-5.0.1 gmp
  26. tar -zxf ../mpc-0.8.2.tar.gz
  27. mv -v mpc-0.8.2 mpc
  28. mkdir -v ../gcc-build
  29. cd ../gcc-build
  30. CC="$LFS_TGT-gcc -B/tools/lib/" \
  31.     AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib \
  32.     ../gcc-4.5.1/configure --prefix=/tools \
  33.     --with-local-prefix=/tools --enable-clocale=gnu \
  34.     --enable-shared --enable-threads=posix \
  35.     --enable-__cxa_atexit --enable-languages=c,c++ \
  36.     --disable-libstdcxx-pch --disable-multilib \
  37.     --disable-bootstrap --disable-libgomp \
  38.     --with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \
  39.     --without-ppl --without-cloog
  40. make
  41. make install
  42. ln -vs gcc /tools/bin/cc
  43. cd ..
  44. rm -rf gcc-4.5.1
  45. rm -rf gcc-build
复制代码


再次测试工具链的调整,以确保刚刚编译的gcc正确工作

  1. echo 'main(){}' > dummy.c
  2. cc dummy.c
  3. readelf -l a.out | grep 'tools'
复制代码


如果输出大致如下

[Requesting program interpreter: /tools/lib/ld-linux.so.2]

则表示调整成功,因为所有的库已经连接到了/tools/lib下。

删除测试文件

  1. rm -rf a.out dummy.c
复制代码


############################################################
###接下来这三个:Tcl-8.5.8、Expect-5.44.1.15、DejaGNU-1.4.4。#
###是用于手册第六章各种源码包编译后测试的工具。                 #
###如果不打算做 make check 之类的事情,那么这三个包其可以不装。  #
############################################################

Tcl-8.5.8

  1. tar xvf tcl8.5.8-src.tar.gz
  2. cd tcl8.5.8
  3. cd unix
  4. ./configure --prefix=/tools
  5. make
  6. make install
  7. chmod -v u+w /tools/lib/libtcl8.5.so
  8. make install-private-headers
  9. ln -sv tclsh8.5 /tools/bin/tclsh
  10. cd ..
  11. cd ..
  12. rm -rf tcl8.5.8
复制代码


Expect-5.44.1.15

  1. tar xvf expect-5.44.1.15.tar.bz2
  2. cd expect-5.44.1.15
  3. patch -Np1 -i ../expect-5.44.1.15-no_tk-1.patch
  4. cp -v configure{,.orig}
  5. sed 's:/usr/local/bin:/bin:' configure.orig > configure
  6. ./configure --prefix=/tools --with-tcl=/tools/lib \
  7.   --with-tclinclude=/tools/include --with-tk=no
  8. make
  9. make SCRIPTS="" install
  10. cd ..
  11. rm -rf expect-5.44.1.15
复制代码


DejaGNU-1.4.4

  1. tar xvf dejagnu-1.4.4.tar.gz
  2. cd dejagnu-1.4.4
  3. patch -Np1 -i ../dejagnu-1.4.4-consolidated-1.patch
  4. ./configure --prefix=/tools
  5. make install
  6. cd ..
  7. rm -rf dejagnu-1.4.4
复制代码


Ncurses-5.7

  1. tar xvf ncurses-5.7.tar.gz
  2. cd ncurses-5.7
  3. ./configure --prefix=/tools --with-shared \
  4.     --without-debug --without-ada --enable-overwrite
  5. make
  6. make install
  7. cd ..
  8. rm -rf ncurses-5.7
复制代码


Bash-4.1

  1. tar xvf bash-4.1.tar.gz
  2. cd bash-4.1
  3. patch -Np1 -i ../bash-4.1-fixes-2.patch
  4. ./configure --prefix=/tools --without-bash-malloc
  5. make
  6. make install
  7. ln -vs bash /tools/bin/sh
  8. cd ..
  9. rm -rf bash-4.1
复制代码


Bzip2-1.0.5

  1. tar xvf bzip2-1.0.5.tar.gz
  2. cd bzip2-1.0.5
  3. make
  4. make PREFIX=/tools install
  5. cd ..
  6. rm -rf bzip2-1.0.5
复制代码


Coreutils-8.5

  1. tar xvf coreutils-8.5.tar.gz
  2. cd coreutils-8.5
  3. ./configure --prefix=/tools --enable-install-program=hostname
  4. make
  5. make install
  6. cp -v src/su /tools/bin/su-tools
  7. cd ..
  8. rm -rf coreutils-8.5
复制代码


Diffutils-3.0

  1. tar xvf diffutils-3.0.tar.gz
  2. cd diffutils-3.0
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf diffutils-3.0
复制代码


File-5.04

  1. tar xvf file-5.04.tar.gz
  2. cd file-5.04
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf file-5.04
复制代码


Findutils-4.4.2

  1. tar xvf findutils-4.4.2.tar.gz
  2. cd findutils-4.4.2
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf findutils-4.4.2
复制代码


Gawk-3.1.8

  1. tar xvf gawk-3.1.8.tar.bz2
  2. cd gawk-3.1.8
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf gawk-3.1.8
复制代码


Gettext-0.18.1.1

  1. tar xvf gettext-0.18.1.1.tar.gz
  2. cd gettext-0.18.1.1
  3. cd gettext-tools
  4. ./configure --prefix=/tools --disable-shared
  5. make -C gnulib-lib
  6. make -C src msgfmt
  7. cp -v src/msgfmt /tools/bin
  8. cd ..
  9. cd ..
  10. rm -rf gettext-0.18.1.1
复制代码


Grep-2.6.3

  1. tar xvf grep-2.6.3.tar.gz
  2. cd grep-2.6.3
  3. ./configure --prefix=/tools \
  4.     --disable-perl-regexp
  5. make
  6. make install
  7. cd ..
  8. rm -rf grep-2.6.3
复制代码


Gzip-1.4

  1. tar xvf gzip-1.4.tar.gz
  2. cd gzip-1.4
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf gzip-1.4
复制代码


M4-1.4.14

  1. tar xvf m4-1.4.14.tar.bz2
  2. cd m4-1.4.14
  3. sed -i -e '/"m4.h"/a\
  4. #include <sys/stat.h>' src/path.c
  5. ./configure --prefix=/tools
  6. make
  7. make install
  8. cd ..
  9. rm -rf m4-1.4.14
复制代码


Make-3.82

  1. tar xvf make-3.82.tar.bz2
  2. cd make-3.82
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf make-3.82
复制代码


Patch-2.6.1

  1. tar xvf patch-2.6.1.tar.bz2
  2. cd patch-2.6.1
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf patch-2.6.1
复制代码


Perl-5.12.1

  1. tar xvf perl-5.12.1.tar.bz2
  2. cd perl-5.12.1
  3. patch -Np1 -i ../perl-5.12.1-libc-1.patch
  4. sh Configure -des -Dprefix=/tools \
  5.                   -Dstatic_ext='Data/Dumper Fcntl IO'
  6. make perl utilities ext/Errno/pm_to_blib
  7. cp -v perl pod/pod2man /tools/bin
  8. mkdir -pv /tools/lib/perl5/5.12.1
  9. cp -Rv lib/* /tools/lib/perl5/5.12.1
  10. cd ..
  11. rm -rf perl-5.12.1
复制代码


Sed-4.2.1

  1. tar xvf sed-4.2.1.tar.bz2
  2. cd sed-4.2.1
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf sed-4.2.1
复制代码


Tar-1.23

  1. tar xvf tar-1.23.tar.bz2
  2. cd tar-1.23
  3. sed -i /SIGPIPE/d src/tar.c
  4. ./configure --prefix=/tools
  5. make
  6. make install
  7. cd ..
  8. rm -rf tar-1.23
复制代码


Texinfo-4.13a

  1. tar xvf texinfo-4.13a.tar.gz
  2. cd texinfo-4.13
  3. ./configure --prefix=/tools
  4. make
  5. make install
  6. cd ..
  7. rm -rf texinfo-4.13
复制代码


Stripping

这步是可有可无的,如果你打算今后还要用/tools里面的东西,那么可以strip一下来减少占用的磁盘空间(70M),但如果做完目标系统后就删除了,不Strip也可以,反正最后也是要删掉的。

  1. strip --strip-debug /tools/lib/*
  2. strip --strip-unneeded /tools/{,s}bin/*
复制代码


info和man里面的内容在制作过程中没什么用处,所以删掉也没啥关系。空出 25M 的空间。

  1. rm -rf /tools/{,share}/{info,man}
复制代码


####################
###这一步千万不能少###
###退出 lfs 用户  ###
####################

  1. exit
复制代码


现在你应该是处于root用户状态的,看看你的命令行提示符是不是回到了“#”。

从现在开始不在需要lfs用户来制作系统了。重新设置目录权限,便于后面的工作。

  1. chown -R root:root $LFS/tools
复制代码


#########接下来就是手册第六章的内容Installing Basic System Software######

创建三个重要目录

  1. mkdir -v $LFS/{dev,proc,sys}
复制代码


创建两个目标系统所必须的设备文件

  1. mknod -m 600 $LFS/dev/console c 5 1
  2. mknod -m 666 $LFS/dev/null c 1 3
复制代码


利用主系统加载几个重要的文件系统,请注意这个步骤对于后面的工作极其重要。

  1. mount -v --bind /dev $LFS/dev
  2. mount -vt devpts devpts $LFS/dev/pts
  3. mount -vt tmpfs shm $LFS/dev/shm
  4. mount -vt proc proc $LFS/proc
  5. mount -vt sysfs sysfs $LFS/sys
复制代码


Chroot到目标系统的目录下,以便不受主系统的影响来制作目标系统

  1. chroot "$LFS" /tools/bin/env -i \
  2.     HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
  3.     PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
  4.     /tools/bin/bash --login +h
复制代码


注意:这个时候你的提示符会是“I have no name!”,没有关系继续我们的工作很快就可以正常了。

建立目标系统的目录结构

  1. mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt}
  2. mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
  3. install -dv -m 0750 /root
  4. install -dv -m 1777 /tmp /var/tmp
  5. mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
  6. mkdir -pv /usr/{,local/}share/{doc,info,locale,man}
  7. mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
  8. mkdir -pv /usr/{,local/}share/man/man{1..8}
  9. for dir in /usr /usr/local; do
  10.   ln -sv share/{man,doc,info} $dir
  11. done
  12. case $(uname -m) in
  13. x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64 ;;
  14. esac
  15. mkdir -v /var/{lock,log,mail,run,spool}
  16. mkdir -pv /var/{opt,cache,lib/{misc,locate},local}
复制代码


创建几个必要的链接,因为在目标系统的编译过程中,部分编译程序会用绝对路径来寻找命令或文件。

  1. ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
  2. ln -sv /tools/bin/perl /usr/bin
  3. ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
  4. ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
  5. ln -sv bash /bin/sh
  6. touch /etc/mtab
复制代码


创建root及nobody用户和必要的组

  1. cat > /etc/passwd << "EOF"
  2. root:x:0:0:root:/root:/bin/bash
  3. bin:x:1:1:bin:/dev/null:/bin/false
  4. nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
  5. EOF
  6. cat > /etc/group << "EOF"
  7. root:x:0:
  8. bin:x:1:
  9. sys:x:2:
  10. kmem:x:3:
  11. tty:x:4:
  12. tape:x:5:
  13. daemon:x:6:
  14. floppy:x:7:
  15. disk:x:8:
  16. lp:x:9:
  17. dialout:x:10:
  18. audio:x:11:
  19. video:x:12:
  20. utmp:x:13:
  21. usb:x:14:
  22. cdrom:x:15:
  23. mail:x:34:
  24. nogroup:x:99:
  25. EOF
复制代码


重新加载bash,以使root用户起效,这样前面的提示符就不会是“I have no name!”

  1. exec /tools/bin/bash --login +h
复制代码


创建和设置几个临时文件和日志文件。

  1. touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
  2. chgrp -v utmp /var/run/utmp /var/log/lastlog
  3. chmod -v 664 /var/run/utmp /var/log/lastlog
复制代码


进入源码包所在目录来进行编译安装系统

  1. cd sources/
复制代码


Linux-2.6.35.4 API Headers

  1. tar xvf linux-2.6.35.4.tar.bz2
  2. cd linux-2.6.35.4
  3. make mrproper
  4. make headers_check
  5. make INSTALL_HDR_PATH=dest headers_install
  6. find dest/include \( -name .install -o -name ..install.cmd \) -delete
  7. cp -rv dest/include/* /usr/include
  8. cd ..
  9. rm -rf linux-2.6.35.4
复制代码


Man-pages-3.25

man-pages的版本可以使用更新的版本。当然只要你愿意。

  1. tar xvf man-pages-3.25.tar.bz2
  2. cd man-pages-3.25
  3. make install
  4. cd ..
  5. rm -rf man-pages-3.25
复制代码


Glibc-2.12.1

这一关是相当的长的,慢慢等。
注意:glibc的测试比较容易出现错误,比如机器慢就有可能出现超时的错误,还有一些能引起错误的LFS手册上有所提及,像超时这种错误有时候很难避免,就跳过去吧。

在进行之前请检查一下是否glibc-2.12.1和glibc-build这两个目录已经被删除,如果没有删除请删除后在继续。

  1. tar xvf glibc-2.12.1.tar.bz2
  2. cd glibc-2.12.1
  3. DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p')
  4. sed -i "s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|" \
  5.         scripts/test-installation.pl
  6. unset DL
  7. sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in
  8. patch -Np1 -i ../glibc-2.12.1-gcc_fix-1.patch
  9. patch -Np1 -i ../glibc-2.12.1-makefile_fix-1.patch
  10. mkdir -v ../glibc-build
  11. cd ../glibc-build
  12. case `uname -m` in
  13.   i?86) echo "CFLAGS += -march=i486 -mtune=native -O3 -pipe" > configparms ;;
  14. esac
  15. ../glibc-2.12.1/configure --prefix=/usr \
  16.     --disable-profile --enable-add-ons \
  17.     --enable-kernel=2.6.22.5 --libexecdir=/usr/lib/glibc
  18. make
  19. cp -v ../glibc-2.12.1/iconvdata/gconv-modules iconvdata
  20. make -k check 2>&1 | tee glibc-check-log
  21. grep Error glibc-check-log
  22. touch /etc/ld.so.conf
  23. make install

  24. #安装locale
  25. mkdir -pv /usr/lib/locale
  26. localedef -i en_US -f UTF-8 en_US.UTF-8
  27. localedef -i zh_CN -f GB18030 zh_CN
  28. localedef -i zh_CN -f GBK zh_CN
  29. localedef -i zh_CN -f UTF-8 zh_CN
  30. localedef -i zh_CN -f GB2312 zh_CN
  31. localedef -i zh_HK -f UTF-8 zh_CN
  32. localedef -i zh_HK -f BIG5-HKSCS zh_CN
  33. localedef -i zh_TW -f EUC-TW zh_CN
  34. localedef -i zh_TW -f UTF-8 zh_CN
  35. localedef -i zh_TW -f BIG5 zh_CN
  36. #这里只安装了美语与中文,如果想安装全部则用 make localedata/install-locales 命令替代上面的命令。

  37. cat > /etc/nsswitch.conf << "EOF"
  38. # Begin /etc/nsswitch.conf

  39. passwd: files
  40. group: files
  41. shadow: files

  42. hosts: files dns
  43. networks: files

  44. protocols: files
  45. services: files
  46. ethers: files
  47. rpc: files

  48. # End /etc/nsswitch.conf
  49. EOF

  50. cp -v --remove-destination /usr/share/zoneinfo/Asia/Shanghai \
  51.     /etc/localtime
  52. #这里使用“上海”时区,如果想用别的可以用命令 tzselect 查看相应的时区。

  53. cat > /etc/ld.so.conf << "EOF"
  54. # Begin /etc/ld.so.conf

  55. /usr/local/lib
  56. /opt/lib

  57. # End /etc/ld.so.conf
  58. EOF

  59. cd ..
  60. rm -rf glibc-2.12.1
  61. rm -rf glibc-build
复制代码


调整工具链

  1. mv -v /tools/bin/{ld,ld-old}
  2. mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}
  3. mv -v /tools/bin/{ld-new,ld}
  4. ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld
复制代码


调整specs文件

  1. gcc -dumpspecs | sed -e 's@/tools@@g' \
  2.     -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
  3.     -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
  4.     `dirname $(gcc --print-libgcc-file-name)`/specs
复制代码


测试工具链是否被调整成功

  1. echo 'main(){}' > dummy.c
  2. cc dummy.c -v -Wl,--verbose &> dummy.log
  3. readelf -l a.out | grep ': /lib'
复制代码


如果显示[Requesting program interpreter: /lib/ld-linux.so.2]表示调整成功,动态库已经连接到了目标系统的/lib下。

  1. grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
复制代码


应该显示:
/usr/lib/crt1.o succeeded
/usr/lib/crti.o succeeded
/usr/lib/crtn.o succeeded

  1. grep -B1 '^ /usr/include' dummy.log
复制代码


应该显示:
#include &lt;...&gt; search starts here:
/usr/include

  1. grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
复制代码


应该显示:
SEARCH_DIR("/tools/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/lib")
SEARCH_DIR("/lib");

  1. grep "/lib.*/libc.so.6 " dummy.log
复制代码


应该显示:
attempt to open /lib/libc.so.6 succeeded

  1. grep found dummy.log
复制代码


应该显示:
found ld-linux.so.2 at /lib/ld-linux.so.2

如果上面均显示正常,那么表明工具链调整成功,删除测试文件:

  1. rm -v dummy.c a.out dummy.log
复制代码


Zlib-1.2.5

这里我省掉了 make check ,手册建议这一章内容最好不要省掉 make check。

  1. tar xvf zlib-1.2.5.tar.bz2
  2. cd zlib-1.2.5
  3. sed -i 's/ifdef _LARGEFILE64_SOURCE/ifndef _LARGEFILE64_SOURCE/' zlib.h
  4. CFLAGS='-mstackrealign -fPIC -O3' ./configure --prefix=/usr
  5. make
  6. make install
  7. mv -v /usr/lib/libz.so.* /lib
  8. ln -sfv ../../lib/libz.so.1.2.5 /usr/lib/libz.so
  9. cd ..
  10. rm -rf zlib-1.2.5
复制代码


Binutils-2.20.1
make check 时这里测试统计可能会出现个别失败。这里我也给省掉了,手册说这个是相当重要!

  1. tar xvf binutils-2.20.1.tar.bz2
  2. cd binutils-2.20.1
  3. expect -c "spawn ls"

  4. rm -fv etc/standards.info
  5. sed -i.bak '/^INFO/s/standards.info //' etc/Makefile.in
  6. mkdir -v ../binutils-build
  7. cd ../binutils-build
  8. ../binutils-2.20.1/configure --prefix=/usr \
  9.     --enable-shared
  10. make tooldir=/usr
  11. make tooldir=/usr install
  12. cp -v ../binutils-2.20.1/include/libiberty.h /usr/include
  13. cd ..
  14. rm -rf binutils-2.20.1
  15. rm -rf binutils-build
复制代码


GMP-5.0.1

  1. tar xvf gmp-5.0.1.tar.bz2
  2. cd gmp-5.0.1
  3. ./configure --prefix=/usr --enable-cxx --enable-mpbsd
  4. make
  5. make check 2>&1 | tee gmp-check-log
  6. awk '/tests passed/{total+=$2} ; END{print total}' gmp-check-log
  7. #测试结果为 162 通过。
  8. make install
  9. #如果要安装文档则运行下面两行命令
  10. #mkdir -v /usr/share/doc/gmp-5.0.1
  11. #cp    -v doc/{isa_abi_headache,configuration} doc/*.html \
  12. #         /usr/share/doc/gmp-5.0.1

  13. cd ..
  14. rm -rf gmp-5.0.1
复制代码


MPFR-3.0.0

这里测试应全部通过

  1. tar xvf mpfr-3.0.0.tar.bz2
  2. cd mpfr-3.0.0
  3. ./configure --prefix=/usr --enable-thread-safe \
  4.   --docdir=/usr/share/doc/mpfr-3.0.0
  5. make
  6. make install
  7. make html
  8. make install-html
  9. cd ..
  10. rm -rf mpfr-3.0.0
复制代码


MPC-0.8.2

  1. tar xvf mpc-0.8.2.tar.gz
  2. cd mpc-0.8.2
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. cd ..
  7. rm -rf mpc-0.8.2
复制代码


GCC-4.5.1

这里我也不进行make check。其实这一步是相当重要的。这里check时间比较长,可能会有一些错误发生

  1. tar xvf gcc-4.5.1.tar.bz2
  2. cd gcc-4.5.1
  3. sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
  4. case `uname -m` in
  5.   i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' \
  6.         gcc/Makefile.in ;;
  7. esac
  8. sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
  9. mkdir -v ../gcc-build
  10. cd ../gcc-build
  11. ../gcc-4.5.1/configure --prefix=/usr \
  12.     --libexecdir=/usr/lib --enable-shared \
  13.     --enable-threads=posix --enable-__cxa_atexit \
  14.     --enable-clocale=gnu --enable-languages=c,c++ \
  15.     --disable-multilib --disable-bootstrap --with-system-zlib
  16. make
  17. make install
  18. ln -sv ../usr/bin/cpp /lib
  19. ln -sv gcc /usr/bin/cc
复制代码


重新测试工具链是否正确,确定GCC是否安装正确

  1. echo 'main(){}' > dummy.c
  2. cc dummy.c -v -Wl,--verbose &> dummy.log
  3. readelf -l a.out | grep ': /lib'
复制代码


如果显示[Requesting program interpreter: /lib/ld-linux.so.2]表示链接位置正确,动态库已经连接到了目标系统的/lib下。

  1. grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
复制代码


应该显示:
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../crt1.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../crti.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../crtn.o succeeded

  1. grep -B4 '^ /usr/include' dummy.log
复制代码


应该显示:
#include &lt;...&gt; search starts here:
/usr/local/include
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/include
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/include-fixed
/usr/include

  1. grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
复制代码


应该显示:
SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/local/lib")
SEARCH_DIR("/lib")
SEARCH_DIR("/usr/lib");

  1. grep "/lib.*/libc.so.6 " dummy.log
复制代码


应该显示:
attempt to open /lib/libc.so.6 succeeded

  1. grep found dummy.log
复制代码


应该显示:
found ld-linux.so.2 at /lib/ld-linux.so.2

如果上面均显示正常,那么表明工具链正常,可以删除测试文件了

  1. rm -v dummy.c a.out dummy.log
复制代码

  1. cd ..
  2. rm -rf gcc-4.5.1
  3. rm -rf gcc-build
复制代码


Sed-4.2.1

  1. tar xvf sed-4.2.1.tar.bz2
  2. cd sed-4.2.1
  3. ./configure --prefix=/usr --bindir=/bin --htmldir=/usr/share/doc/sed-4.2.1
  4. make
  5. make html
  6. make install
  7. make -C doc install-html
  8. cd ..
  9. rm -rf sed-4.2.1
复制代码


Pkg-config-0.25

  1. tar xvf pkg-config-0.25.tar.gz
  2. cd pkg-config-0.25
  3. sed -i -e 's/XT])dnl/XT])[]dnl/' \
  4.        -e 's/\.])dnl/\.])[]dnl/' pkg.m4
  5. ./configure --prefix=/usr
  6. make
  7. make install
  8. cd ..
  9. rm -rf pkg-config-0.25
复制代码


Ncurses-5.7

  1. tar xvf ncurses-5.7.tar.gz
  2. cd ncurses-5.7
  3. ./configure --prefix=/usr --with-shared --without-debug --enable-widec
  4. make
  5. make install
  6. mv -v /usr/lib/libncursesw.so.5* /lib
  7. ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so
  8. for lib in ncurses form panel menu ; do \
  9.     rm -vf /usr/lib/lib${lib}.so ; \
  10.     echo "INPUT(-l${lib}w)" >/usr/lib/lib${lib}.so ; \
  11.     ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \
  12. done
  13. ln -sfv libncurses++w.a /usr/lib/libncurses++.a
  14. rm -vf /usr/lib/libcursesw.so
  15. echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so
  16. ln -sfv libncurses.so /usr/lib/libcurses.so
  17. ln -sfv libncursesw.a /usr/lib/libcursesw.a
  18. ln -sfv libncurses.a /usr/lib/libcurses.a
  19. #如果要文档文件则安装之
  20. #mkdir -v       /usr/share/doc/ncurses-5.7
  21. #cp -v -R doc/* /usr/share/doc/ncurses-5.7
  22. cd ..
  23. rm -rf ncurses-5.7
复制代码


Util-linux-ng-2.18

  1. tar xvf util-linux-ng-2.18.tar.bz2
  2. cd util-linux-ng-2.18
  3. sed -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
  4.     -i $(grep -rl '/etc/adjtime' .)
  5. mkdir -pv /var/lib/hwclock
  6. ./configure --enable-arch --enable-partx --enable-write
  7. make
  8. make install
  9. cd ..
  10. rm -rf util-linux-ng-2.18
复制代码


E2fsprogs-1.41.12

  1. tar xvf e2fsprogs-1.41.12.tar.gz
  2. cd e2fsprogs-1.41.12
  3. mkdir -v build
  4. cd build
  5. ../configure --prefix=/usr --with-root-prefix="" \
  6.     --enable-elf-shlibs --disable-libblkid --disable-libuuid \
  7.     --disable-uuidd --disable-fsck
  8. make
  9. make install
  10. make install-libs
  11. chmod -v u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
  12. gunzip -v /usr/share/info/libext2fs.info.gz
  13. install-info --dir-file=/usr/share/info/dir \
  14.              /usr/share/info/libext2fs.info
  15. makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
  16. install -v -m644 doc/com_err.info /usr/share/info
  17. install-info --dir-file=/usr/share/info/dir \
  18.              /usr/share/info/com_err.info
  19. cd ..
  20. cd ..
  21. rm -rf e2fsprogs-1.41.12
复制代码


Coreutils-8.5

  1. tar xvf coreutils-8.5.tar.gz
  2. cd coreutils-8.5
  3. case `uname -m` in
  4. i?86 | x86_64) patch -Np1 -i ../coreutils-8.5-uname-2.patch ;;
  5. esac
  6. patch -Np1 -i ../coreutils-8.5-i18n-1.patch
  7. ./configure --prefix=/usr \
  8.     --enable-no-install-program=kill,uptime
  9. make
  10. make NON_ROOT_USERNAME=nobody check-root
  11. echo "dummy:x:1000:nobody" >> /etc/group
  12. chown -Rv nobody .
  13. su-tools nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check"
  14. sed -i '/dummy/d' /etc/group
  15. make install
  16. mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
  17. mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} /bin
  18. mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
  19. mv -v /usr/bin/chroot /usr/sbin
  20. mv -v /usr/bin/{head,sleep,nice} /bin
  21. cd ..
  22. rm -rf coreutils-8.5
复制代码


Iana-Etc-2.30

  1. tar xvf iana-etc-2.30.tar.bz2
  2. cd iana-etc-2.30
  3. make
  4. make install
  5. cd ..
  6. rm -rf iana-etc-2.30
复制代码


M4-1.4.14

  1. tar xvf m4-1.4.14.tar.bz2
  2. cd m4-1.4.14
  3. sed -i -e '/"m4.h"/a\
  4. #include <sys/stat.h>' src/path.c
  5. ./configure --prefix=/usr
  6. make
  7. make install
  8. cd ..
  9. rm -rf m4-1.4.14
复制代码


Bison-2.4.3

  1. tar xvf bison-2.4.3.tar.bz2
  2. cd bison-2.4.3
  3. ./configure --prefix=/usr
  4. echo '#define YYENABLE_NLS 1' >> lib/config.h
  5. make
  6. make install
  7. cd ..
  8. rm -rf bison-2.4.3
复制代码


Procps-3.2.8

  1. tar xvf procps-3.2.8.tar.gz
  2. cd procps-3.2.8
  3. patch -Np1 -i ../procps-3.2.8-watch_unicode-1.patch
  4. sed -i -e 's@\*/module.mk@proc/module.mk ps/module.mk@' Makefile
  5. make
  6. make install
  7. cd ..
  8. rm -rf procps-3.2.8
复制代码


Grep-2.6.3

  1. tar xvf grep-2.6.3.tar.gz
  2. cd grep-2.6.3
  3. ./configure --prefix=/usr \
  4.     --bindir=/bin
  5. make
  6. make install
  7. cd ..
  8. rm -rf grep-2.6.3
复制代码


Readline-6.1

  1. tar xvf readline-6.1.tar.gz
  2. cd readline-6.1
  3. sed -i '/MV.*old/d' Makefile.in
  4. sed -i '/{OLDSUFF}/c:' support/shlib-install
  5. sed -i -e 's/0x0600/0x0601/' \
  6.        -e 's/6\.0/6.1/' \
  7.        -e 's/RL_VERSION_MINOR\t0/RL_VERSION_MINOR\t1/' readline.h
  8. ./configure --prefix=/usr --libdir=/lib
  9. make SHLIB_LIBS=-lncurses
  10. make install
  11. mv -v /lib/lib{readline,history}.a /usr/lib
  12. rm -v /lib/lib{readline,history}.so
  13. ln -sfv ../../lib/libreadline.so.6 /usr/lib/libreadline.so
  14. ln -sfv ../../lib/libhistory.so.6 /usr/lib/libhistory.so
  15. #要文档就安装之。
  16. #mkdir   -v       /usr/share/doc/readline-6.1
  17. #install -v -m644 doc/*.{ps,pdf,html,dvi} \
  18. #                 /usr/share/doc/readline-6.1
  19. cd ..
  20. rm -rf readline-6.1
复制代码


Bash-4.1

  1. tar xvf bash-4.1.tar.gz
  2. cd bash-4.1
  3. patch -Np1 -i ../bash-4.1-fixes-2.patch
  4. ./configure --prefix=/usr --bindir=/bin \
  5.     --htmldir=/usr/share/doc/bash-4.1 --without-bash-malloc \
  6.     --with-installed-readline
  7. make
  8. make install
  9. cd ..
  10. rm -rf bash-4.1
复制代码


应用刚编译好的/bin/bash。做脚本的朋友,这一步很容易出问题的哟。

  1. exec /bin/bash --login +h
复制代码


Libtool-2.2.10

  1. tar xvf libtool-2.2.10.tar.gz
  2. cd libtool-2.2.10
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. cd ..
  7. rm -rf libtool-2.2.10
复制代码


GDBM-1.8.3

  1. tar xvf gdbm-1.8.3.tar.gz
  2. cd gdbm-1.8.3
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. make install-compat
  7. install-info --dir-file=/usr/info/dir /usr/info/gdbm.info
  8. cd ..
  9. rm -rf gdbm-1.8.3
复制代码


Inetutils-1.8

  1. tar xvf inetutils-1.8.tar.gz
  2. cd inetutils-1.8
  3. ./configure --prefix=/usr --libexecdir=/usr/sbin \
  4.     --localstatedir=/var --disable-ifconfig \
  5.     --disable-logger --disable-syslogd --disable-whois \
  6.     --disable-servers
  7. make
  8. make install
  9. mv -v /usr/bin/{hostname,ping,ping6} /bin
  10. mv -v /usr/bin/traceroute /sbin
  11. cd ..
  12. rm -rf inetutils-1.8
复制代码


Perl-5.12.1

  1. tar xvf perl-5.12.1.tar.bz2
  2. cd perl-5.12.1
  3. echo "127.0.0.1 localhost $(hostname)" > /etc/hosts
  4. sed -i -e "s|BUILD_ZLIB\s*= True|BUILD_ZLIB = False|"           \
  5.        -e "s|INCLUDE\s*= ./zlib-src|INCLUDE    = /usr/include|" \
  6.        -e "s|LIB\s*= ./zlib-src|LIB        = /usr/lib|"         \
  7.     cpan/Compress-Raw-Zlib/config.in
  8. sh Configure -des -Dprefix=/usr \
  9.                   -Dvendorprefix=/usr           \
  10.                   -Dman1dir=/usr/share/man/man1 \
  11.                   -Dman3dir=/usr/share/man/man3 \
  12.                   -Dpager="/usr/bin/less -isR"  \
  13.                   -Duseshrplib
  14. make
  15. make install
  16. cd ..
  17. rm -rf perl-5.12.1
复制代码


Autoconf-2.67

  1. tar xvf autoconf-2.67.tar.bz2
  2. cd autoconf-2.67
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. cd ..
  7. rm -rf autoconf-2.67
复制代码


Automake-1.11.1

  1. tar xvf automake-1.11.1.tar.bz2
  2. cd automake-1.11.1
  3. ./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.11.1
  4. make
  5. make install
  6. cd ..
  7. rm -rf automake-1.11.1
复制代码


Bzip2-1.0.5

  1. tar xvf bzip2-1.0.5.tar.gz
  2. cd bzip2-1.0.5
  3. patch -Np1 -i ../bzip2-1.0.5-install_docs-1.patch
  4. patch -Np1 -i ../bzip2-1.0.5-version_fixes-1.patch
  5. sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
  6. make -f Makefile-libbz2_so
  7. make clean
  8. make
  9. make PREFIX=/usr install
  10. cp -v bzip2-shared /bin/bzip2
  11. cp -av libbz2.so* /lib
  12. ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
  13. rm -v /usr/bin/{bunzip2,bzcat,bzip2}
  14. ln -sv bzip2 /bin/bunzip2
  15. ln -sv bzip2 /bin/bzcat
  16. cd ..
  17. rm -rf bzip2-1.0.5
复制代码


Diffutils-3.0

  1. tar xvf diffutils-3.0.tar.gz
  2. cd diffutils-3.0
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. cd ..
  7. rm -rf diffutils-3.0
复制代码


Gawk-3.1.8

  1. tar xvf gawk-3.1.8.tar.bz2
  2. cd gawk-3.1.8
  3. ./configure --prefix=/usr --libexecdir=/usr/lib
  4. make
  5. make install
  6. #要文档就安装之。
  7. #mkdir -v /usr/share/doc/gawk-3.1.8
  8. #cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}} \
  9. #         /usr/share/doc/gawk-3.1.8
  10. cd ..
  11. rm -rf gawk-3.1.8
复制代码


File-5.04

  1. tar xvf file-5.04.tar.gz
  2. cd file-5.04
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. cd ..
  7. rm -rf file-5.04
复制代码


Findutils-4.4.2

  1. tar xvf findutils-4.4.2.tar.gz
  2. cd findutils-4.4.2
  3. ./configure --prefix=/usr --libexecdir=/usr/lib/findutils \
  4.     --localstatedir=/var/lib/locate
  5. make
  6. make install
  7. mv -v /usr/bin/find /bin
  8. sed -i 's/find:=${BINDIR}/find:=\/bin/' /usr/bin/updatedb
  9. cd ..
  10. rm -rf findutils-4.4.2
复制代码


Flex-2.5.35

  1. tar xvf flex-2.5.35.tar.bz2
  2. cd flex-2.5.35
  3. patch -Np1 -i ../flex-2.5.35-gcc44-1.patch
  4. ./configure --prefix=/usr
  5. make
  6. make install
  7. ln -sv libfl.a /usr/lib/libl.a
  8. cat > /usr/bin/lex << "EOF"
  9. #!/bin/sh
  10. # Begin /usr/bin/lex

  11. exec /usr/bin/flex -l "$@"

  12. # End /usr/bin/lex
  13. EOF
  14. chmod -v 755 /usr/bin/lex
  15. #要flex.pdf的话就安装之
  16. #mkdir -v /usr/share/doc/flex-2.5.35
  17. #cp    -v doc/flex.pdf \
  18. #         /usr/share/doc/flex-2.5.35
  19. cd ..
  20. rm -rf flex-2.5.35
复制代码


Gettext-0.18.1.1

  1. tar xvf gettext-0.18.1.1.tar.gz
  2. cd gettext-0.18.1.1
  3. ./configure --prefix=/usr \
  4.             --docdir=/usr/share/doc/gettext-0.18.1.1
  5. make
  6. make install
  7. cd ..
  8. rm -rf gettext-0.18.1.1
复制代码


Groff-1.20.1

PAGE=A4,A4 也可以换成 letter ,只要你喜欢。

  1. tar xvf groff-1.20.1.tar.gz
  2. cd groff-1.20.1
  3. PAGE=A4 ./configure --prefix=/usr
  4. make
  5. make docdir=/usr/share/doc/groff-1.20.1 install
  6. ln -sv eqn /usr/bin/geqn
  7. ln -sv tbl /usr/bin/gtbl
  8. cd ..
  9. rm -rf groff-1.20.1
复制代码


GRUB-1.98

  1. tar xvf grub-1.98.tar.gz
  2. cd grub-1.98
  3. ./configure --prefix=/usr           \
  4.              --sysconfdir=/etc       \
  5.              --disable-grub-emu-usb  \
  6.              --disable-grub-fstest   \
  7.              --disable-efiemu
  8. make
  9. make install
  10. cd ..
  11. rm -rf grub-1.98
复制代码


Gzip-1.4

  1. tar xvf gzip-1.4.tar.gz
  2. cd gzip-1.4
  3. ./configure --prefix=/usr --bindir=/bin
  4. make
  5. make install
  6. mv -v /bin/{gzexe,uncompress,zcmp,zdiff,zegrep} /usr/bin
  7. mv -v /bin/{zfgrep,zforce,zgrep,zless,zmore,znew} /usr/bin
  8. cd ..
  9. rm -rf gzip-1.4
复制代码


IPRoute2-2.6.35

  1. tar xvf iproute2-2.6.35.tar.bz2
  2. cd iproute2-2.6.35
  3. sed -i '/^TARGETS/s@arpd@@g' misc/Makefile
  4. sed -i '1289i\\tfilter.cloned = 2;' ip/iproute.c
  5. make DESTDIR=
  6. make DESTDIR= SBINDIR=/sbin MANDIR=/usr/share/man \
  7.      DOCDIR=/usr/share/doc/iproute2-2.6.35 install
  8. cd ..
  9. rm -rf iproute2-2.6.35
复制代码


Kbd-1.15.2

  1. tar xvf kbd-1.15.2.tar.gz
  2. cd kbd-1.15.2
  3. patch -Np1 -i ../kbd-1.15.2-backspace-1.patch
  4. ./configure --prefix=/usr --datadir=/lib/kbd
  5. make
  6. make install
  7. mv -v /usr/bin/{kbd_mode,loadkeys,openvt,setfont} /bin
  8. #要文档就安装之。
  9. #mkdir -v /usr/share/doc/kbd-1.15.2
  10. #cp -R -v doc/* \
  11. #         /usr/share/doc/kbd-1.15.2
  12. cd ..
  13. rm -rf kbd-1.15.2
复制代码


Less-436

  1. tar xvf less-436.tar.gz
  2. cd less-436
  3. ./configure --prefix=/usr --sysconfdir=/etc
  4. make
  5. make install
  6. cd ..
  7. rm -rf less-436
复制代码


Make-3.82

  1. tar xvf make-3.82.tar.bz2
  2. cd make-3.82
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. cd ..
  7. rm -rf make-3.82
复制代码


Man-DB-2.5.7

  1. tar xvf man-db-2.5.7.tar.gz
  2. cd man-db-2.5.7
  3. patch -Np1 -i ../man-db-2.5.7-fix_man_assertion-1.patch
  4. ./configure --prefix=/usr --libexecdir=/usr/lib \
  5.     --docdir=/usr/share/doc/man-db-2.5.7 --sysconfdir=/etc --disable-setuid \
  6.     --with-browser=/usr/bin/lynx --with-vgrind=/usr/bin/vgrind \
  7.     --with-grap=/usr/bin/grap
  8. make
  9. make install
  10. cd ..
  11. rm -rf man-db-2.5.7
复制代码


Module-Init-Tools-3.12

  1. tar xvf module-init-tools-3.12.tar.bz2
  2. cd module-init-tools-3.12
  3. echo '.so man5/modprobe.conf.5' > modprobe.d.5
  4. ./configure
  5. make check
  6. ./tests/runtests
  7. make clean
  8. ./configure --prefix=/ --enable-zlib-dynamic --mandir=/usr/share/man
  9. make
  10. make INSTALL=install install
  11. cd ..
  12. rm -rf module-init-tools-3.12
复制代码


Patch-2.6.1

  1. tar xvf patch-2.6.1.tar.bz2
  2. cd patch-2.6.1
  3. patch -Np1 -i ../patch-2.6.1-test_fix-1.patch
  4. ./configure --prefix=/usr
  5. make
  6. make install
  7. cd ..
  8. rm -rf patch-2.6.1
复制代码


Psmisc-22.12

  1. tar xvf psmisc-22.12.tar.gz
  2. cd psmisc-22.12
  3. sed -i 's@#include <sys\/user.h>@#include <bits\/types.h>\n&@' configure
  4. ./configure --prefix=/usr
  5. make
  6. make install
  7. mv -v /usr/bin/fuser /bin
  8. mv -v /usr/bin/killall /bin
  9. cd ..
  10. rm -rf psmisc-22.12
复制代码


Shadow-4.1.4.2

  1. tar xvf shadow-4.1.4.2.tar.bz2
  2. cd shadow-4.1.4.2
  3. sed -i 's/groups$(EXEEXT) //' src/Makefile.in
  4. find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;
  5. sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile.in
  6. sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD MD5@' \
  7.        -e 's@/var/spool/mail@/var/mail@' etc/login.defs
  8. ./configure --sysconfdir=/etc
  9. make
  10. make install
  11. mv -v /usr/bin/passwd /bin
  12. pwconv
  13. grpconv
  14. passwd root
  15. #一定要设置root的密码,否则重新启动后无法登陆。
  16. cd ..
  17. rm -rf shadow-4.1.4.2
复制代码


Sysklogd-1.5

  1. tar xvf sysklogd-1.5.tar.gz
  2. cd sysklogd-1.5
  3. make
  4. make BINDIR=/sbin install
  5. #设置syslog的配置文件
  6. cat > /etc/syslog.conf << "EOF"
  7. # Begin /etc/syslog.conf

  8. auth,authpriv.* -/var/log/auth.log
  9. *.*;auth,authpriv.none -/var/log/sys.log
  10. daemon.* -/var/log/daemon.log
  11. kern.* -/var/log/kern.log
  12. mail.* -/var/log/mail.log
  13. user.* -/var/log/user.log
  14. *.emerg *

  15. # End /etc/syslog.conf
  16. EOF
  17. cd ..
  18. rm -rf sysklogd-1.5
复制代码


Sysvinit-2.88dsf

  1. tar xvf sysvinit-2.88dsf.tar.bz2
  2. cd sysvinit-2.88dsf
  3. sed -i 's@Sending processes@& configured via /etc/inittab@g' \
  4.     src/init.c
  5. sed -i -e 's/utmpdump wall/utmpdump/' \
  6.        -e 's/mountpoint.1 wall.1/mountpoint.1/' src/Makefile
  7. make -C src
  8. make -C src install
  9. #设置启动配置文件/etc/inittab
  10. cat > /etc/inittab << "EOF"
  11. # Begin /etc/inittab

  12. id:3:initdefault:

  13. si::sysinit:/etc/rc.d/init.d/rc sysinit

  14. l0:0:wait:/etc/rc.d/init.d/rc 0
  15. l1:S1:wait:/etc/rc.d/init.d/rc 1
  16. l2:2:wait:/etc/rc.d/init.d/rc 2
  17. l3:3:wait:/etc/rc.d/init.d/rc 3
  18. l4:4:wait:/etc/rc.d/init.d/rc 4
  19. l5:5:wait:/etc/rc.d/init.d/rc 5
  20. l6:6:wait:/etc/rc.d/init.d/rc 6

  21. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

  22. su:S016:once:/sbin/sulogin

  23. 1:2345:respawn:/sbin/agetty tty1 9600
  24. 2:2345:respawn:/sbin/agetty tty2 9600
  25. 3:2345:respawn:/sbin/agetty tty3 9600
  26. 4:2345:respawn:/sbin/agetty tty4 9600
  27. 5:2345:respawn:/sbin/agetty tty5 9600
  28. 6:2345:respawn:/sbin/agetty tty6 9600

  29. # End /etc/inittab
  30. EOF
  31. cd ..
  32. rm -rf sysvinit-2.88dsf
复制代码


Tar-1.23

  1. tar xvf tar-1.23.tar.bz2
  2. cd tar-1.23
  3. sed -i /SIGPIPE/d src/tar.c
  4. patch -Np1 -i ../tar-1.23-overflow_fix-1.patch
  5. ./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/sbin
  6. make
  7. sed -i '35 i\
  8. AT_UNPRIVILEGED_PREREQ' tests/remfiles01.at
  9. make check
  10. make install
  11. cd ..
  12. rm -rf tar-1.23
复制代码


Texinfo-4.13a

  1. tar xvf texinfo-4.13a.tar.gz
  2. cd texinfo-4.13
  3. ./configure --prefix=/usr
  4. make
  5. make install
  6. make TEXMF=/usr/share/texmf install-tex
  7. cd /usr/share/info
  8. rm -v dir
  9. for f in *
  10. do install-info $f dir 2>/dev/null
  11. done
  12. cd /sources
  13. rm -rf texinfo-4.13
复制代码


Udev-161

  1. tar xvf udev-161.tar.bz2
  2. cd udev-161
  3. tar -xvf ../udev-config-20100128.tar.bz2
  4. tar -xvf ../udev-161-testfiles.tar.bz2 --strip-components=1
  5. install -dv /lib/{firmware,udev/devices/{pts,shm}}
  6. mknod -m0666 /lib/udev/devices/null c 1 3
  7. ./configure --prefix=/usr \
  8.     --sysconfdir=/etc --sbindir=/sbin \
  9.     --with-rootlibdir=/lib --libexecdir=/lib/udev \
  10.     --disable-extras --disable-introspection
  11. make
  12. make install
  13. rmdir -v /usr/share/doc/udev
  14. cd udev-config-20100128
  15. make install
  16. make install-doc
  17. cd ..
  18. cd ..
  19. rm -rf udev-161
复制代码


下面几个包在 LFS 里是没有的,得先在真机里下载好,用 scp 等方法放进虚拟机里去。

Nano-2.1.10

本身是 vim 的,但我从来不用,就干脆不装,装 nano。下载地址:http://www.nano-editor.org/dist/v2.1/nano-2.1.10.tar.gz

在真机里 wget 回来,用 scp 命令放进来就行。当然,如果你有别的方法一样可以搞掂。

这其实也是 BLFS 的内容,没所谓啦,什么时候装都一样。

  1. tar xvf nano-2.1.10.tar.gz
  2. cd nano-2.1.10
  3. ./configure --prefix=/usr --sysconfdir=/etc/nano \
  4.     --enable-color --enable-multibuffer --enable-nanorc &&
  5. make
  6. make install &&
  7. install -v -m644 -D doc/nanorc.sample /etc/nano/nanorc.sample &&
  8. install -v -m755 -d /usr/share/doc/nano-2.1.10 &&
  9. install -v -m644 doc/{,man/,texinfo/}*.html /usr/share/doc/nano-2.1.10
  10. cd ..
  11. rm -rf nano-2.1.10
复制代码


Wget-1.12

顺手把这个也装了,下载地址:http://ftp.gnu.org/gnu/wget/wget-1.12.tar.bz2

  1. tar xvf wget-1.12.tar.bz2
  2. cd wget-1.12
  3. ./configure --prefix=/usr --sysconfdir=/etc &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf wget-1.12
复制代码


为了一会装完 LFS 重启进入LFS不想摸黑进行 BLFS 等工作

这里装上 openssh ,以便我们能继续用 ssh 在真机里对虚拟机里的 LFS 进行操作。

OpenSSL

真机里下载好源码包、补丁。

wget -c http://www.openssl.org/source/openssl-1.0.0c.tar.gz
wget -c http://svn.cross-lfs.org/svn/repos/patches/openssl/openssl-1.0.0c-fix_manpages-1.patch
wget -c http://svn.cross-lfs.org/svn/repos/patches/openssl/openssl-1.0.0c-mips_support-1.patch

用 scp 等方式放进虚拟机里去。

  1. tar xvf openssl-1.0.0c.tar.gz
  2. cd openssl-1.0.0c
  3. patch -Np1 -i ../openssl-1.0.0c-fix_manpages-1.patch &&
  4. patch -Np1 -i ../openssl-1.0.0c-mips_support-1.patch &&
  5. ./config --openssldir=/etc/ssl --prefix=/usr shared &&
  6. make MANDIR=/usr/share/man
  7. make MANDIR=/usr/share/man install &&
  8. ln -sv ../../etc/ssl /usr/share &&
  9. cp -v -r certs /etc/ssl
  10. #要文档就安装之。
  11. #install -v -d -m755 /usr/share/doc/openssl-1.0.0c &&
  12. #cp -v -r doc/{HOWTO,README,*.{txt,html,gif}} \
  13. #    /usr/share/doc/openssl-1.0.0c
  14. cd ..
  15. rm -rf openssl-1.0.0c
复制代码


OpenSSH

真机里下载好源码包。

wget -c ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.6p1.tar.gz

用 scp 等方式放进虚拟机里去。

  1. tar xvf openssh-5.6p1.tar.gz
  2. cd openssh-5.6p1
  3. groupadd -g 48 sshd &&
  4. useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 48 sshd &&
  5. install -v -m700 -d /var/lib/sshd &&
  6. chown -v root:sys /var/lib/sshd
  7. ./configure --prefix=/usr --sysconfdir=/etc/ssh \
  8.     --libexecdir=/usr/sbin --with-md5-passwords \
  9.     --with-privsep-path=/var/lib/sshd \
  10.     --with-default-path="/bin:/usr/bin" \
  11.     --with-superuser-path="/sbin:/bin:/usr/sbin:/usr/bin" &&
  12. make
  13. make install
  14. #要文档则安装之。
  15. #install -v -m755 -d /usr/share/doc/openssh-5.6p1 &&
  16. #install -v -m644 INSTALL LICENCE OVERVIEW README* WARNING.RNG \
  17. #/usr/share/doc/openssh-5.6p1
  18. cd ..
  19. rm -rf openssh-5.6p1
复制代码


退出chroot环境

  1. logout
复制代码


为Strip而进入chroot环境

  1. chroot $LFS /tools/bin/env -i \
  2.     HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
  3.     PATH=/bin:/usr/bin:/sbin:/usr/sbin \
  4.     /tools/bin/bash --login

  5. /tools/bin/find /{,usr/}{bin,lib,sbin} -type f \
  6.   -exec /tools/bin/strip --strip-debug '{}' ';'
复制代码


退出chroot环境

  1. logout
复制代码


###########第六章完###########

为最后的设置进入chroot环境

  1. chroot "$LFS" /usr/bin/env -i \
  2.     HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
  3.     PATH=/bin:/usr/bin:/sbin:/usr/sbin \
  4.     /bin/bash --login

  5. cd /sources
复制代码


LFS-Bootscripts-20100627

  1. tar xvf lfs-bootscripts-20100627.tar.bz2
  2. cd lfs-bootscripts-20100627
  3. make install
  4. cd ..
  5. rm -rf lfs-bootscripts-20100627
复制代码


时间设置(Configuring the setclock Script)

  1. cat > /etc/sysconfig/clock << "EOF"
  2. # Begin /etc/sysconfig/clock

  3. UTC=1

  4. # Set this to any options you might need to give to hwclock,
  5. # such as machine hardware clock type for Alphas.
  6. CLOCKPARAMS=

  7. # End /etc/sysconfig/clock
  8. EOF
复制代码


设置bash下的键盘功能键设置

  1. cat > /etc/inputrc << "EOF"
  2. # Begin /etc/inputrc
  3. # Modified by Chris Lynn <roryo@roryo.dynup.net>

  4. # Allow the command prompt to wrap to the next line
  5. set horizontal-scroll-mode Off

  6. # Enable 8bit input
  7. set meta-flag On
  8. set input-meta On

  9. # Turns off 8th bit stripping
  10. set convert-meta Off

  11. # Keep the 8th bit for display
  12. set output-meta On

  13. # none, visible or audible
  14. set bell-style none

  15. # All of the following map the escape sequence of the value
  16. # contained in the 1st argument to the readline specific functions
  17. "\eOd": backward-word
  18. "\eOc": forward-word

  19. # for linux console
  20. "\e[1~": beginning-of-line
  21. "\e[4~": end-of-line
  22. "\e[5~": beginning-of-history
  23. "\e[6~": end-of-history
  24. "\e[3~": delete-char
  25. "\e[2~": quoted-insert

  26. # for xterm
  27. "\eOH": beginning-of-line
  28. "\eOF": end-of-line

  29. # for Konsole
  30. "\e[H": beginning-of-line
  31. "\e[F": end-of-line

  32. # End /etc/inputrc
  33. EOF
复制代码


设置Bash Shell启动文件(The Bash Shell Startup Files)

这 LANG 一行可以是:export LANG=zh_CN.UTF-8 等。

  1. cat > /etc/profile << "EOF"
  2. # Begin /etc/profile
  3. export LANG=en_US.UTF-8
  4. export INPUTRC=/etc/inputrc
  5. alias ls="ls --color"
  6. export PS1='\u:\w\$ '
  7. # End /etc/profile
  8. EOF
复制代码


设置本地网络名

  1. echo "HOSTNAME=mylinux" > /etc/sysconfig/network
复制代码


设置本地网络名

  1. cat > /etc/hosts << "EOF"
  2. # Begin /etc/hosts (no network card version)
  3. 127.0.0.1 mylinux localhost
  4. # End /etc/hosts (no network card version)
  5. EOF
复制代码


设置网络的静态地址

注意:IP、GATEWAY、BROADCAST的地址根据自己的实际情况设置。

  1. cd /etc/sysconfig/network-devices &&
  2. mkdir -v ifconfig.eth0 &&
  3. cat > ifconfig.eth0/ipv4 << "EOF"
  4. ONBOOT=yes
  5. SERVICE=ipv4-static
  6. IP=192.168.1.101
  7. GATEWAY=192.168.1.1
  8. PREFIX=24
  9. BROADCAST=192.168.1.255
  10. EOF
  11. cd /sources
复制代码


设置DNS

根据实际情况

  1. cat > /etc/resolv.conf << "EOF"
  2. # Begin /etc/resolv.conf
  3. nameserver 211.162.61.235
  4. nameserver 211.162.62.1
  5. # End /etc/resolv.conf
  6. EOF
复制代码


建立fstab文件

  1. cat > /etc/fstab << "EOF"
  2. # Begin /etc/fstab

  3. # file system  mount-point  type   options         dump  fsck
  4. #                                                        order
  5. /dev/sda2       /            ext3  defaults        1     1
  6. /dev/sda1       swap         swap   pri=1           0     0
  7. proc              /proc        proc   defaults        0     0
  8. sysfs             /sys         sysfs  defaults        0     0
  9. devpts          /dev/pts     devpts gid=4,mode=620  0     0
  10. shm              /dev/shm     tmpfs  defaults        0     0
  11. # End /etc/fstab
  12. EOF
复制代码


内核、GRUB

根据机器实际情况而配置,我这里将提供一份可能用于virtualbox-3.2_3.2.12-68302的.config

  1. tar xvf linux-2.6.35.4.tar.bz2
  2. cd linux-2.6.35.4
  3. make mrproper
  4. make menuconfig
  5. make
  6. make modules_install
  7. cp -v arch/x86/boot/bzImage /boot/vmlinux-2.6.35.4-lfs-6.7
  8. cp -v System.map /boot/System.map-2.6.35.4
  9. cp -v .config /boot/config-2.6.35.4
  10. cd ..

  11. install -v -m755 -d /etc/modprobe.d
  12. cat > /etc/modprobe.d/usb.conf << "EOF"
  13. # Begin /etc/modprobe.d/usb.conf

  14. install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
  15. install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true

  16. # End /etc/modprobe.d/usb.conf
  17. EOF

  18. grub-install --grub-setup=/bin/true /dev/sda
  19. grub-mkconfig -o /boot/grub/grub.cfg
  20. grub-setup /dev/sda
复制代码




从这里开始就是《LFS 6.7 上安装 xorg 7.5


在前面,我们讨论了如何快速在 VBOX 上构建一个 LFS 6.7 ,但一部电脑没有图形界面,那是怎样一种悲惨,当然,特殊用途的除外。

本文将是讨论如果在我们建立好的 LFS 上安装 xorg 7.5 。


进入 LFS 里启动ssh: /usr/sbin/sshd 。则可以在真机里用
  1. ssh root@192.168.1.101
复制代码
连接虚拟机里的 LFS ,在真机里进行操作。

又或者用LiveCD 进入 chroot 环境进行操作:

  1.   chroot "$LFS" /usr/bin/env -i \
  2.   HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
  3.   PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R7/bin \
  4.   /bin/bash --login
复制代码


chroot 进去进行操作,因为摸黑实在有点那个,你懂的。

又或者可以在创建好的 LFS 里摸黑进行。

如果我们在 LFS 里已经装过 wget ,可以用 wget 来下载源码包了。


在 LFS 里随便找个地方,建立个文件夹,进行以下工作,我选择 /sources/xc

下载包包。
  1. wget -c http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tar.bz2
  2. wget -c http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.6.tar.bz2
  3. wget -c http://xorg.freedesktop.org/releases/individual/lib/libXdmcp-1.0.3.tar.bz2
  4. wget -c http://ftp.gnu.org/pub/gnu/ed/ed-1.5.tar.gz
  5. wget -c http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
  6. wget -c http://www.linuxfromscratch.org/patches/blfs/svn/expat-2.0.1-fixes-3.patch
  7. wget -c http://xmlsoft.org/sources/libxml2-2.7.7.tar.gz
  8. wget -c http://www.w3.org/XML/Test/xmlts20080827.tar.gz
  9. wget -c http://downloads.sourceforge.net/freetype/freetype-2.4.4.tar.bz2
  10. wget -c http://downloads.sourceforge.net/freetype/freetype-doc-2.4.4.tar.bz2
  11. wget -c http://fontconfig.org/release/fontconfig-2.8.0.tar.gz
  12. wget -c http://xcb.freedesktop.org/dist/libpthread-stubs-0.1.tar.bz2
  13. wget -c http://xmlsoft.org/sources/libxslt-1.1.26.tar.gz
  14. wget -c http://xcb.freedesktop.org/dist/xcb-proto-1.5.tar.bz2
  15. wget -c http://xcb.freedesktop.org/dist/libxcb-1.4.tar.bz2
  16. wget -c http://xorg.freedesktop.org/releases/individual/data/xbitmaps-1.1.0.tar.bz2
  17. wget -c http://downloads.sourceforge.net/libpng/libpng-1.2.44.tar.bz2
  18. wget -c http://www.linuxfromscratch.org/patches/blfs/svn/libpng-1.2.44-apng-1.patch
  19. wget -c http://xorg.freedesktop.org/releases/individual/data/xcursor-themes-1.0.2.tar.bz2
  20. wget -c http://www.cpan.org/authors/id/C/CH/CHORNY/XML-Parser-2.40.tar.gz
  21. wget -c http://launchpad.net/intltool/trunk/0.41.1/+download/intltool-0.41.1.tar.gz
  22. wget -c http://xlibs.freedesktop.org/xkbdesc/xkeyboard-c onfig-1.8.tar.bz2
  23. wget -c http://xorg.freedesktop.org/releases/individual/app/luit-1.0.5.tar.bz2
  24. wget -c http://cairographics.org/releases/pixman-0.21.2.tar.gz
  25. wget -c http://www.hpl.hp.com/research/linux/atomic_ops/download/libatomic_ops-1.2.tar.gz
  26. wget -c http://dri.freedesktop.org/libdrm/libdrm-2.4.21.tar.bz2
  27. wget -c ftp://ftp.freedesktop.org/pub/mesa/7.8.2/MesaLib-7.8.2.tar.bz2
  28. wget -c ftp://ftp.freedesktop.org/pub/mesa/7.8.2/MesaDemos-7.8.2.tar.bz2
  29. wget -c http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.8.2.tar.bz2
  30. #proto
  31. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/proto-7.5-3.md5
  32. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/proto-7.5-3.wget
  33. mkdir proto &&
  34. cd proto &&
  35. grep -v '^#' ../proto-7.5-3.wget | wget -i- -c \
  36.     -B http://xorg.freedesktop.org/releases/individual/proto/ &&
  37. md5sum -c ../proto-7.5-3.md5
  38. cd ..
  39. #util
  40. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/util-7.5-3.md5
  41. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/util-7.5-3.wget
  42. mkdir util &&
  43. cd util &&
  44. grep -v '^#' ../util-7.5-3.wget | wget -i- -c \
  45.     -B http://xorg.freedesktop.org/releases/individual/util/ &&
  46. md5sum -c ../util-7.5-3.md5
  47. cd ..
  48. #lib
  49. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/lib-7.5-3.md5
  50. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/lib-7.5-3.wget
  51. mkdir lib &&
  52. cd lib &&
  53. grep -v '^#' ../lib-7.5-3.wget | wget -i- -c \
  54.     -B http://xorg.freedesktop.org/releases/individual/lib/ &&
  55. md5sum -c ../lib-7.5-3.md5
  56. cd ..
  57. #app
  58. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/app-7.5-3.md5
  59. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/app-7.5-3.wget
  60. mkdir app &&
  61. cd app &&
  62. grep -v '^#' ../app-7.5-3.wget | wget -i- -c \
  63.     -B http://xorg.freedesktop.org/releases/individual/app/ &&
  64. md5sum -c ../app-7.5-3.md5
  65. cd ..
  66. #font
  67. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/font-7.5-3.md5
  68. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/font-7.5-3.wget
  69. mkdir font &&
  70. cd font &&
  71. grep -v '^#' ../font-7.5-3.wget | wget -i- -c \
  72.     -B http://xorg.freedesktop.org/releases/individual/font/ &&
  73. md5sum -c ../font-7.5-3.md5
  74. cd ..
  75. #driver
  76. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/driver-7.5-3.md5
  77. wget -c http://anduin.linuxfromscratch.org/files/BLFS/svn/xorg/driver-7.5-3.wget
  78. #编辑 driver-7.5-3.wget 留下你要的,不要的用“#”注释掉
  79. #我这里只是留下四个:
  80. #xf86-input-evdev-2.5.0.tar.bz2
  81. #xf86-input-keyboard-1.4.0.tar.bz2
  82. #xf86-input-mouse-1.6.0.tar.bz2
  83. #xf86-video-vesa-2.3.0.tar.bz2
  84. mkdir driver &&
  85. cd driver &&
  86. grep -v '^#' ../driver-7.5-3.wget | wget -i- -c \
  87.     -B http://xorg.freedesktop.org/releases/individual/driver/ &&
  88. md5sum -c ../driver-7.5-3.md5
  89. cd ..
复制代码


准备工作
  1. export XORG_PREFIX="/usr/X11R7"
  2. export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
  3.     --mandir=$XORG_PREFIX/share/man --localstatedir=/var"
复制代码


增加 "/usr/X11R7/lib" 到 "/etc/ld.so.conf" 文件
  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
复制代码


老一点版本的lfs是没有pkg-config的,不过6.7版本的我们在LFS过程已经装过,这里不用装。

这个环境变量很重要,要不在 lib 那一步卡死过不去就你爸是李钢都没有用。
  1. export PKG_CONFIG_PATH="/usr/X11R7/lib:/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11R7/lib/pkgconfig:/usr/X11R7/share/pkgconfig"
复制代码


下面这条变形用来过xcursor-themes-1.0.2的安装。如果是chroot,PATH一项最好也设成这样。
  1. export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R7/bin
复制代码


我先把python 给装上,这是我的习惯,也可以在需要时候才安装。
  1. tar xvf Python-2.7.1.tar.bz2
  2. cd Python-2.7.1
  3. sed -i "s@/usr/X11R6@${XORG_PREFIX}@g" setup.py &&
  4. ./configure --prefix=/usr --enable-shared &&
  5. make
  6. make install
  7. cd ..
  8. rm -rf Python-2.7.1
复制代码


Xorg Protocol Headers

  1. bash -e #exit on all errors
  2. section=proto
  3. version=7.5-3
  4. cd $section
  5. # build packages
  6. for package in $(grep -v '^#' ../${section}-${version}.wget)
  7. do
  8.   packagedir=$(echo $package | sed 's/.tar.bz2//')
  9.   tar -xf $package
  10.   cd $packagedir
  11.   ./configure $XORG_CONFIG
  12.   make install
  13.   cd ..
  14.   rm -rf $packagedir
  15.   echo $packagedir ======is=====end=====here====
  16. done 2>&1 | tee -a ../xorg-${section}-${version}-compile.log #log the entire loop

  17. cd ..
复制代码


Xorg Utilities

  1. bash -e #exit on all errors
  2. section=util
  3. version=7.5-3
  4. cd $section
  5. # build packages
  6. for package in $(grep -v '^#' ../${section}-${version}.wget)
  7. do
  8.   packagedir=$(echo $package | sed 's/.tar.bz2//')
  9.   tar -xf $package
  10.   cd $packagedir
  11.   ./configure $XORG_CONFIG &&
  12.   make
  13.   make install
  14.   cd ..
  15.   rm -rf $packagedir
  16.   echo $packagedir ======is=====end=====here====
  17. done 2>&1 | tee -a ../xorg-${section}-${version}-compile.log #log the entire loop

  18. cd ..
复制代码



libXau-1.0.6
  1. tar xvf libXau-1.0.6.tar.bz2
  2. cd libXau-1.0.6
  3. ./configure $XORG_CONFIG &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf libXau-1.0.6
复制代码



libXdmcp-1.0.3
  1. tar xvf libXdmcp-1.0.3.tar.bz2
  2. cd libXdmcp-1.0.3
  3. ./configure $XORG_CONFIG &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf libXdmcp-1.0.3
复制代码



Xorg Libraries之前先安装它的依赖条件

Ed-1.5
  1. tar xvf ed-1.5.tar.gz
  2. cd ed-1.5
  3. ./configure --prefix=/usr --bindir=/bin &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf ed-1.5
复制代码


Expat-2.0.1

注意BLFS手册上有错,是expat-2.0.1-fixes-3.patch,而不是expat-2.0.1-fixes-2.patch
  1. tar xvf expat-2.0.1.tar.gz
  2. cd expat-2.0.1
  3. patch -Np1 -i ../expat-2.0.1-fixes-3.patch &&
  4. ./configure --prefix=/usr &&
  5. make
  6. make install
  7. cd ..
  8. rm -rf expat-2.0.1
复制代码


libxml2-2.7.7
  1. tar xvf libxml2-2.7.7.tar.gz
  2. cd libxml2-2.7.7
  3. tar xf ../xmlts20080827.tar.gz
  4. ./configure --prefix=/usr &&
  5. make
  6. make install
  7. cd ..
  8. rm -rf libxml2-2.7.7
复制代码


FreeType-2.4.4
  1. tar xvf freetype-2.4.4.tar.bz2
  2. cd freetype-2.4.4
  3. tar -xf ../freetype-doc-2.4.4.tar.bz2 \
  4.     --strip-components=2 -C docs
  5. sed -i -r 's:.*(#.*SUBPIXEL.*) .*:\1:' \
  6.           include/freetype/config/ftoption.h &&
  7. ./configure --prefix=/usr &&
  8. make
  9. make install
  10. cd ..
  11. rm -rf freetype-2.4.4
复制代码


Fontconfig-2.8.0
  1. tar xvf fontconfig-2.8.0.tar.gz
  2. cd fontconfig-2.8.0
  3. ./configure --prefix=/usr \
  4.             --sysconfdir=/etc \
  5.             --localstatedir=/var \
  6.             --disable-docs \
  7.             --without-add-fonts \
  8.             --docdir=/usr/share/doc/fontconfig-2.8.0 &&
  9. make
  10. make install
  11. cd ..
  12. rm -rf fontconfig-2.8.0
复制代码


libpthread-stubs-0.1
  1. tar xvf libpthread-stubs-0.1.tar.bz2
  2. cd libpthread-stubs-0.1
  3. ./configure --prefix=/usr &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf libpthread-stubs-0.1
复制代码


libxslt-1.1.26
  1. tar xvf libxslt-1.1.26.tar.gz
  2. cd libxslt-1.1.26
  3. ./configure --prefix=/usr &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf libxslt-1.1.26
复制代码


xcb-proto-1.5
  1. tar xvf xcb-proto-1.5.tar.bz2
  2. cd xcb-proto-1.5
  3. ./configure $XORG_CONFIG
  4. make install
  5. cd ..
  6. rm -rf xcb-proto-1.5
复制代码


libxcb-1.4
  1. tar xvf libxcb-1.4.tar.bz2
  2. cd libxcb-1.4
  3. ./configure $XORG_CONFIG &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf libxcb-1.4
复制代码



Xorg Libraries

前面我们解决这么多的依赖问题就是为了装这玩意。

发觉BLFS svn 版本上矛盾,libX11 加上这样的参数来编译--without-xcb。加上它是因为其要依赖libxcb,我们才刚装完,这个参数本身就可以去掉。而Mesa那里又有--enable-xcb 参数,从而导致 Mesa的configur 找不到libX11。我这里去掉了--without-xcb参数,加上--enable-loadable-i18n开启i18n。

  1. bash -e #exit on all errors
  2. section=lib
  3. version=7.5-3
  4. cd $section
  5. # build packages
  6. for package in $(grep -v '^#' ../${section}-${version}.wget)
  7. do
  8.   packagedir=$(echo $package | sed 's/.tar.bz2//')
  9.   tar -xf $package
  10.   cd $packagedir

  11. case $(basename "$PWD") in
  12. libXfont-[0-9]* )
  13.                  ./configure $XORG_CONFIG --disable-devel-docs
  14.                  ;;
  15.   libX11-[0-9]* )
  16.                  ./configure $XORG_CONFIG  --enable-loadable-i18n
  17.                  ;;
  18.    libXt-[0-9]* )
  19.                  ./configure $XORG_CONFIG \
  20.                      --with-appdefaultdir=/etc/X11/app-defaults
  21.                  ;;
  22.               * )
  23.                  ./configure $XORG_CONFIG
  24.                  ;;
  25. esac &&
  26. make
  27. make install
  28. ldconfig

  29.   cd ..
  30.   rm -rf $packagedir
  31.   echo $packagedir ======is=====end=====here====
  32. done 2>&1 | tee -a ../xorg-${section}-${version}-compile.log #log the entire loop

  33. cd ..
复制代码


如果是装在/usr 下面这三条玩意儿就不用,我这里是装在/usr/X11R7,所有要。我加多了一条,第三条。
  1. ln -sv $XORG_PREFIX/lib/X11 /usr/lib/X11 &&
  2. ln -sv $XORG_PREFIX/include/X11 /usr/include/X11 &&
  3. ln -sv ${XORG_PREFIX}/bin /usr/bin/X11 &&
  4. ln -sv $XORG_PREFIX /usr/X11R6
复制代码



Xbitmaps-1.1.0
  1. tar xvf xbitmaps-1.1.0.tar.bz2
  2. cd xbitmaps-1.1.0
  3. ./configure $XORG_CONFIG
  4. make install
  5. cd ..
  6. rm -rf xbitmaps-1.1.0
复制代码


MesaLib-7.8.2
  1. tar xvf libatomic_ops-1.2.tar.gz
  2. cd libatomic_ops-1.2
  3. sed -i \
  4.     's|datadir)/@PACKAGE@|datadir)/doc/@PACKAGE@/@PACKAGE_VERSION@|' \
  5.     doc/Makefile.in &&
  6. ./configure --prefix=/usr &&
  7. make
  8. make install
  9. cd ..
  10. rm -rf libatomic_ops-1.2
  11. tar xvf libdrm-2.4.21.tar.bz2
  12. cd libdrm-2.4.21
  13. ./configure --prefix=$XORG_PREFIX &&
  14. make
  15. make install
  16. cd ..
  17. rm -rf libdrm-2.4.21
  18. tar xvf MesaLib-7.8.2.tar.bz2
  19. tar xvf MesaDemos-7.8.2.tar.bz2
  20. cd Mesa-7.8.2
  21. sed 's@FLAGS="-g@FLAGS="@' -i configure
  22. ./configure $XORG_CONFIG --enable-xcb
  23. make
  24. make install
  25. install -v -m755 progs/xdemos/glx{info,gears} ${XORG_PREFIX}/bin
  26. ln -s -v ${XORG_PREFIX}/include/GL /usr/include
  27. cd ..
  28. rm -rf Mesa-7.8.2
复制代码


Xorg Applications

在这之前先要解决依赖关系

  1. libpng-1.2.44
  2. tar xvf libpng-1.2.44.tar.bz2
  3. cd libpng-1.2.44
  4. patch -Np1 -i ../libpng-1.2.44-apng-1.patch
  5. ./configure --prefix=/usr &&
  6. make
  7. make install
  8. cd ..
  9. rm -rf libpng-1.2.44
复制代码

  1. bash -e #exit on all errors
  2. section=app
  3. version=7.5-3
  4. cd $section
  5. # build packages
  6. for package in $(grep -v '^#' ../${section}-${version}.wget)
  7. do
  8.   packagedir=$(echo $package | sed 's/.tar.bz2//')
  9.   tar -xf $package
  10.   cd $packagedir
  11. case $(basename "$PWD") in
  12.   twm-[0-9]* )
  13.                sed -e '/^rcdir =/s,^\(rcdir = \).*,\1/etc/X11/app-defaults,' \
  14.                    -i src/Makefile.in &&
  15.                ./configure $XORG_CONFIG
  16.                ;;
  17. xinit-[0-9]* )
  18.                ./configure $XORG_CONFIG --with-xinitdir=/etc/X11/app-defaults
  19.                ;;
  20.            * )
  21.                ./configure $XORG_CONFIG
  22.                ;;
  23. esac &&
  24. make
  25.   make install
  26.   cd ..
  27.   rm -rf $packagedir
  28.   echo $packagedir ======is=====end=====here====
  29. done 2>&1 | tee -a ../xorg-${section}-${version}-compile.log #log the entire loop

  30. cd ..
复制代码



xcursor-themes-1.0.2
  1. tar xvf xcursor-themes-1.0.2.tar.bz2
  2. cd xcursor-themes-1.0.2
  3. ./configure $XORG_CONFIG &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf xcursor-themes-1.0.2
复制代码



Xorg Fonts
  1. bash -e #exit on all errors
  2. section=font
  3. version=7.5-3
  4. cd $section
  5. # build packages
  6. for package in $(grep -v '^#' ../${section}-${version}.wget)
  7. do
  8.   packagedir=$(echo $package | sed 's/.tar.bz2//')
  9.   tar -xf $package
  10.   cd $packagedir
  11.   ./configure $XORG_CONFIG
  12.   make
  13.   make install
  14.   cd ..
  15.   rm -rf $packagedir
  16.   echo $packagedir ======is=====end=====here====
  17. done 2>&1 | tee -a ../xorg-${section}-${version}-compile.log #log the entire loop

  18. install -v -d -m755 /usr/share/fonts &&
  19. ln -svn $XORG_PREFIX/share/fonts/X11/fonts/OTF /usr/share/fonts/X11-OTF &&
  20. ln -svn $XORG_PREFIX/share/fonts/X11/fonts/TTF /usr/share/fonts/X11-TTF

  21. cd ..
复制代码


下面为 XKeyboardConfig-1.8 的安装解决依赖关系。

Perl Module XML:arser
  1. tar xvf XML-Parser-2.40.tar.gz
  2. cd XML-Parser-2.40
  3. perl Makefile.PL &&
  4. make &&
  5. make test
  6. make install
  7. cd ..
  8. rm -rf XML-Parser-2.40
复制代码


Intltool-0.41.1
  1. tar xvf intltool-0.41.1.tar.gz
  2. cd intltool-0.41.1
  3. ./configure --prefix=/usr &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf intltool-0.41.1
复制代码


XKeyboardConfig-1.8

上面已把依赖关系给搞掂了。
  1. tar xvf xkeyboard-config-1.8.tar.bz2
  2. cd xkeyboard-config-1.8
  3. ./configure $XORG_CONFIG --with-xkb-rules-symlink=xorg &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf xkeyboard-config-1.8
复制代码


Luit-1.0.5
  1. tar xvf luit-1.0.5.tar.bz2
  2. cd luit-1.0.5
  3. ./configure $XORG_CONFIG &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf luit-1.0.5
复制代码


解决Xorg-Server-1.8.2的依赖关系,openssl之前在LFS那里我已经安装了,这里省略

pixman-0.15.20

这里我换个最新版的,要不装GTK2时过不去。
  1. tar xvf pixman-0.21.2.tar.gz
  2. cd pixman-0.21.2
  3. ./configure --prefix=/usr &&
  4. make
  5. make install
  6. cd ..
  7. rm -rf pixman-0.21.2
复制代码



Xorg-Server-1.8.2
  1. tar xvf xorg-server-1.8.2.tar.bz2
  2. cd xorg-server-1.8.2
  3. ./configure $XORG_CONFIG \
  4.     --with-module-dir=$XORG_PREFIX/lib/X11/modules \
  5.     --with-xkb-output=/var/lib/xkb \
  6.     --enable-install-setuid \
  7.     --disable-config-hal &&
  8. make
  9. make install
  10. cd ..
  11. rm -rf xorg-server-1.8.2
复制代码



Xorg Drivers

编辑driver-7.5-3.wget,留下自己要的就行。
  1. bash -e #exit on all errors
  2. section=driver
  3. version=7.5-3
  4. cd $section
  5. # build packages
  6. for package in $(grep -v '^#' ../${section}-${version}.wget)
  7. do
  8.   packagedir=$(echo $package | sed 's/.tar.bz2//')
  9.   tar -xf $package
  10.   cd $packagedir
  11. case $(basename "$PWD") in
  12. xf86-input-evdev-[0-9]* | xf86-video-ati-[0-9]* | \
  13. xf86-video-fbdev-[0-9]* | xf86-video-glint-[0-9]* | \
  14. xf86-video-newport-[0-9]* )
  15.     sed -i -e "s/\xc3\xb8/\\\\[\/o]/" \
  16.            -e "s/\xc3\xa4/\\\\[:a]/" \
  17.            -e "s/\xc3\x9c/\\\\[:U]/" man/*.man
  18.     ;;
  19. esac &&
  20. case $(basename "$PWD") in
  21. xf86-video-s3-[0-9]* | xf86-video-xgi-[0-9]* )
  22.     for file in `grep -Rl "xf86Version.h" *`
  23.     do
  24.         sed 's@xf86Version.h@xorgVersion.h@g' -i "$file"
  25.     done
  26.     ;;
  27. esac &&
  28. ./configure $XORG_CONFIG \
  29.     --with-xorg-module-dir=$XORG_PREFIX/lib/X11/modules &&
  30. make
  31.   make install
  32.   cd ..
  33.   rm -rf $packagedir
  34.   echo $packagedir ======is=====end=====here====
  35. done 2>&1 | tee -a ../xorg-${section}-${version}-compile.log #log the entire loop

  36. cd ..
复制代码



Configuring The X Window System
  1. cd ~ &&
  2. Xorg -configure
复制代码


对edit xorg.conf.new进行编译,然后测试
  1. X -retro -config ~/xorg.conf.new
复制代码


如果没响应,请查看/var/log/Xorg.0.log

安装xorg.conf文件
  1. install -v -m644 ~/xorg.conf.new /etc/X11/xorg.conf
复制代码



到此,xorg 安装完毕,看个人喜欢用什么窗口管理器、桌面之类的,去装吧。
发表于 2011-1-6 15:05:14 | 显示全部楼层

不错,支持

申请给个精华应该
回复 支持 反对

使用道具 举报

发表于 2011-1-12 14:30:44 | 显示全部楼层

十分赞成加精

Post by Recoilest;2125120
申请给个精华应该

我还没试到安装xorg的那一步,但是,至少,我做到安装xorg之前都顺利走过来了,重启也进到新系统里面来了。相当不错,十分赞成加精!!!
这个过程只有一个小问题,也不知道算不算是问题,就是Strip好像没成功,全是错误,说是无法识别的格式。所有工作完成之后,磁盘用掉951MB,用tar压缩之后还有751MB

这个过程有的地方还是需要人为介入的,要是真有个搞法,一个命令,一步到位的模式,就更牛了
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

今天尝试安装xorg,失败
原因是xcursor-theme那个包过不去,依赖xcursorgen,
我又xcursorgen,编译,又依赖X11......
暂时放弃X,明年再说
回复 支持 反对

使用道具 举报

发表于 2011-1-21 10:35:32 | 显示全部楼层
我正在LFS重,希望一切顺利,哈哈!
回复 支持 反对

使用道具 举报

发表于 2011-3-7 09:10:18 | 显示全部楼层
请问你直接就/usr/sbin/sshd 就把ssh给打开了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-7 23:23:29 | 显示全部楼层
Post by vinous1983;2130162
请问你直接就/usr/sbin/sshd 就把ssh给打开了吗?


见你在我博客那里说解决了,就不回答了。
回复 支持 反对

使用道具 举报

发表于 2011-3-8 23:02:10 | 显示全部楼层
安装xorg,这个包的数量相当的吓人
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-11 17:10:22 | 显示全部楼层
习惯了就好,最怕就是xorg中途出个依赖关系怎么样都解决不了的情况。
回复 支持 反对

使用道具 举报

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

本版积分规则

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