免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 842 | 回复: 0
打印 上一主题 下一主题

5M大小Apache服务器LFS完整版 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-16 19:16 |只看该作者 |倒序浏览
本文摘自:
http://www.linuxsir.org/bbs/showthread.php?t=234181


前言
  本文为了制作一个功能单一、体积小巧的LFS系统而写,目的就是建立一个小系统来展示Linux的伸缩性,看本文应该具备一定的编译软件和内核的经验,因此对一些编译过程没有做太多说明,如果有什么不清楚的可参考一下LFS文档。
负章 成品下载
  
http://www.zdbr.net.cn/download/miniLFS.rar
  这是一个已经做好的成品文件,可以下载试用一下效果,文件大小在2.8M左右,文件格式为rar压缩文件,下载后解压缩有形成一个完整的VMWare5的目录,直接使用即可。
第一章 说明和约定
  1、磁盘分区名:您使用的分区可能和我在文中使用的分区名不一样,请不要奇怪,为了方便说明,文中使用的是/dev/hda1来做为目标系统的,如果你的和我的不一样,那么使用你自己的分区名,这很重要,所以再没弄清前请不要随意尝试。
  2、源代码存放目录:我将源代码放在$LFS/sources目录下,如果你不是那么就使用你自己的目录,为了说明方便,下面我将使用/mnt/lfs/sources做为存放源代码的目录,在进入第六章后将使用/sources做为源代码的目录,实际二者是一个目录。
  3、测试:在制作过程中所有的包都没有进行测试工作,如果你想进行测试以确定是否正确可以在其中加入测试命令。
第二章 建立分区
  1、选择一个大小的分区
  目标系统虽然只有5M大小,但制作的工具链却比较的大,所以应当分配一个稍大一点的分区,否则可能会在制作过程中出现没有足够空间的错误。
  2、选择一个合适的文件系统
  虽然系统只有5M,但文件系统本身就会占据一定的空间,不同的文件系统占用的空间是不同的,因此文件系统占用的空间没有被算进目标系统的大小中,所以选择什么样的文件系统你可以自己决定。
  3、建立分区和文件系统
   a) 你可以用cfdisk或者fdisk来建立分区,这一步对磁盘具有破坏性,如果你不是很清楚怎么回事,请弄清楚后再进行,否则可能对你机器上的数据造成破坏。
   b) 使用mkfs.xxx来创建文件系统,当然这个文件系统必须让现在的内核以及将来建立的目标系统中的内核都能够进行识别才行,我使用的是xfs,因此我用mkfs.xfs来建立文件系统。
     mkfs.xfs /dev/hda1
  4、加载分区
    mkdir -p /mnt/lfs
    mount /dev/hda1 /mnt/lfs
第三章 软件包和补丁
  1、 软件包
   a) 按照LFS中的软件包准备
     i. GCC使用4.0.2
     ii. Glibc使用2.3.6
  2、 补丁
   a) LFS中相应补丁
   b)
http://www.zdbr.net.cn/download/glib...ix-shy-1.patch
(注意这个补丁很重要,我花了好长时间才做出来的。)
第四章 用户和环境
  1、 建立工具链目录
     export LFS=/mnt/lfs
     mkdir -p $LFS/sources
     mkdir -p $LFS/tools
     ln -s $LFS/tools /
  2、 建立用户
     groupadd lfs
     useradd -s /bin/bash -g lfs -m -k /dev/null lfs
     passwd lfs
     chown -v lfs $LFS/tools
     chown -v lfs $LFS/sources
     su - lfs
  3、 设置用户环境
     cat > ~/.bash_profile  ~/.bashrc  $SPECFILE &&
     sed 's@^/lib/ld-linux.so.2@/tools&@g' $SPECFILE > tempspecfile &&
     mv -vf tempspecfile $SPECFILE &&
     unset SPECFILE
  7. gcc第二遍
     tar xvf gcc-core-4.0.2.tar.bz2
     tar xvf gcc-g++-4.0.2.tar.bz2
     cd gcc-4.0.2
     cp -v gcc/Makefile.in{,.orig} &&
     sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
     cp -v gcc/Makefile.in{,.tmp} &&
     sed 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp > gcc/Makefile.in
    patch -Np1 -i ../gcc-4.0.2-specs-1.patch
    mkdir -v ../gcc-build
    cd ../gcc-build
    ../gcc-4.0.2/configure --prefix=/tools \
     --with-local-prefix=/tools --enable-clocale=gnu \
     --enable-shared --enable-threads=posix \
     --enable-__cxa_atexit --enable-languages=c,c++ \
     --disable-libstdcxx-pch
    make
    make install
  8. binutils-2.16.1第二遍
    tar xvf binutils-2.16.1.tar.bz2
    mkdir binutils-build
    cd binutils-build
    ../binutils-2.16.1/configure --prefix=/tools --disable-nls --enable-shared --with-lib-path=/tools/lib
    make
    make install
    make -C ld clean
    make -C ld LIB_PATH=/usr/lib:/lib
    cd ..
  9. 分支
    到此可出现一个分支,你可以选择其中之一进行下去。
    i. 分支(一):继续按照LFS中的步骤完成工具链中其它软件包的安装,然后进行目标系统的制作。
    ii. 分支(二):不需要继续制作工具链,直接开始目标系统的制作,不需要进行chroot的操作。
    这里我们按照分支(一),继续进行工具链的其它软件包的安装,安装过程参照LFS,这里不再说明。
第六章 制作目标系统
  1. 加载需要的文件系统
    mkdir -pv $LFS/{proc,sys}
    mount -vt proc proc $LFS/proc
    mount -vt sysfs sysfs $LFS/sys
    mount -vft tmpfs tmpfs $LFS/dev
    mount -vft tmpfs tmpfs $LFS/dev/shm
    mount -vft devpts -o gid=4,mode=620 devpts $LFS/dev/pts
  2. 进入工具链系统
    chroot "$LFS" /tools/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h
  3. 设置目录属性
    chown -R 0:0 /tools
  4. 创建目标系统目录
    install -d /{bin,etc,dev,sbin,proc,sys,var/{lib,run},srv/{conf,htdocs,logs},boot/grub,tmp}
  5. 建立临时链接
    ln -sv /tools/bin/{bash,cat,pwd,stty} /bin
    ln -sv bash /bin/sh
  6. 建立目标系统组和用户
    cat > /etc/passwd  /etc/group  /boot/grub/menu.lst > /etc/httpd.conf
    cd ..
    rm -rf apache_1.3.34
    echo “世界,您好!” > /srv/htdocs/index.html
  15. INIT
    cat > /sbin/init


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12766/showart_185725.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP