LFS67实录.docx

上传人:b****3 文档编号:5491567 上传时间:2022-12-17 格式:DOCX 页数:27 大小:28.06KB
下载 相关 举报
LFS67实录.docx_第1页
第1页 / 共27页
LFS67实录.docx_第2页
第2页 / 共27页
LFS67实录.docx_第3页
第3页 / 共27页
LFS67实录.docx_第4页
第4页 / 共27页
LFS67实录.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

LFS67实录.docx

《LFS67实录.docx》由会员分享,可在线阅读,更多相关《LFS67实录.docx(27页珍藏版)》请在冰豆网上搜索。

LFS67实录.docx

LFS67实录

前期准备:

机器:

IBMT23(512M内存,别笑我这本子真是好用的很,二手买来都5年了,就是屏坏了);

操作系统:

WINXPSP3;

虚拟机:

VMWARESERVER1.06(用它因为它占用空间和内存都很小)

软件包:

lfslivecd-x86-6.3-r2160-min.iso,用作LFS的宿主系统

ftp:

//anduin.linuxfromscratch.org/LFS-LiveCD/lfslivecd-x86-6.3-r2160-min.iso

  LFSBOOK6.7,这个是说明书,没它做不了LFS

http:

//www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-6.7-HTML.tar.bz2

  LFS6.7的所用到的软件包

ftp:

//anduin.linuxfromscratch.org/LFS/lfs-packages/lfs-packages-6.7.tar

主要是这三个就全活了,对了如果想远程安装还要在本机上安装PUTTY(强烈推荐,用远程安装的话可以复制粘贴BOOK里的命令,这样准确度就提高了,不会有打错字符这种低级错误,但是推荐手动输入命令,这样可以更好的理解LINUX系统.)

开始:

一.新建一个虚拟机

 

GUESTOS为LINUXver为:

OTHERLINUX2.6.XKERNEL,名子就叫LFS67吧,随自己喜欢.内存分大点没坏处,NETWORKCONNECTION用桥接吧(实际上我用的是NAT,因为我把网撤了,成单机了,用桥接两台机器连不上,如果在网络中,桥接是最好的选择,相当于一台独立机器),省事.以后默认就行了(其实以前的也是默认的).

好了,虚拟机建好了,把CD-ROM修改一下:

Connection为UseISOimage.这里就用上面那个ISO.

二.启动虚拟机

现在就从ISO启动了,SYSTEMCLOCK:

ASIA/SHANGHAI;其它默认就行了;因为要远程控制它,所以要给它设置成同一网络里的机器.

#net-setupeth0–>static–>后面按自己的网络设置一下就好了,比如你的机器IP是192.168.1.3,那这个就设置192.168.1.5等,DNS设置成自已当地的就可以,以后可以上网的.

再设置一下root账户,默认是空密码的,这样在远程时会连不上

#passwdroot  设置一下密码

最后启动SSHD

#/etc/rc.d/init.d/sshdstart

三.远程连接虚拟机

现在就可以用PUTTY来连接这个虚拟机了

=============正式开始建立LFS==========

现在就正式开始LFS的建立了,打开手册.现在按手册的章节来进行下面的工作

2.准备建立:

建立一个新分区–>在分区上建立文件系统–>挂载这个分区

2.2

 建立2个分区.一个用于SWAP,一个用作根分区,SWAP分区一般要求是内存的2倍左右,按此要求分下就行了.

#cfdisk

2.3建立文件系统:

 建立一个EXT3文件系统和一个SWAP分区

mke2fs-jv/dev/sda2

mkswap/dev/sda1

2.4挂载分区

建立一个LFS环境变量,把新分区挂载到$LFS上,并打开交换分区

exportLFS=/mnt/lfs

mkdir-pv$LFS

mount-v-text3/dev/sda2$LFS

/sbin/swapon-v/dev/sda1

3.所有包和补丁

这个我们已经准备好了,所有包共286M左右,也可以直接从网上下载,或者用WGET来抓取,这里提供了一个WGET-LIST.不过还是建议下载整合包,列表里有的包已失效或连接不上.建立一个源文件目录

mkdir-v$LFS/sources

chmod-va+wt$LFS/sources

要用整合包的话用下边的命令

cd$LFS

wget ftp:

//anduin.linuxfromscratch.org/LFS/lfs-packages/lfs-packages-6.7.tar

tar-xvflfs-packages-6.7.tar

chmod-va+wt$LFS/sources

4.最后的准备

4.2建立$LFS/tools目录,并建立一个符号连接到/tools

mkdir-v$LFS/tools

ln-sv$LFS/tools/

4.3增加LFS用户

groupaddlfs

useradd-s/bin/bash-glfs-m-k/dev/nulllfs

passwdlfs

chown-vlfs$LFS/tools

chown-vlfs$LFS/sources

su–lfs

4.4设置环境

cat>~/.bash_profile<<“EOF”

execenv-iHOME=$HOMETERM=$TERMPS1=’\u:

\w\$‘/bin/bash

EOF

cat>~/.bashrc<<“EOF”

set+h

umask022

LFS=/mnt/lfs

LC_ALL=POSIX

LFS_TGT=$(uname-m)-lfs-linux-gnu

PATH=/tools/bin:

/bin:

/usr/bin

exportLFSLC_ALLLFS_TGTPATH

EOF

source~/.bash_profile

5.构建一个临时系统

5.3一般编译的说明,这一部分非常重要

[1].把所有包和补丁都放在一个目录/mnt/lfs/sources

[2].改变到源文件目录.进入/mnt/lfs/sources

[3].针对每一个包

A.用TAR解压

B.进入解压后的目录

C.根据手册中的说明编译安装这个包

D.改变到存放包和补丁的目录

E.删除解压后源文件目录和所有建立的<包>-build目录.

5.4.Binutils-2.20.1–Pass1

mkdir-v../binutils-build

cd../binutils-build

../binutils-2.20.1/configure\

   –target=$LFS_TGT–prefix=/tools\

   –disable-nls–disable-werror

make

makeinstall

5.5.GCC-4.5.1–Pass1

tar-jxf../mpfr-3.0.0.tar.bz2

mv-vmpfr-3.0.0mpfr

tar-jxf../gmp-5.0.1.tar.bz2

mv-vgmp-5.0.1gmp

tar-zxf../mpc-0.8.2.tar.gz

mv-vmpc-0.8.2mpc

mkdir-v../gcc-build

cd../gcc-build

../gcc-4.5.1/configure\

   –target=$LFS_TGT–prefix=/tools\

   –disable-nls–disable-shared–disable-multilib\

   –disable-decimal-float–disable-threads\

   –disable-libmudflap–disable-libssp\

   –disable-libgomp–enable-languages=c\

   –with-gmp-include=$(pwd)/gmp–with-gmp-lib=$(pwd)/gmp/.libs\

   –without-ppl–without-cloog

make

makeinstall

ln-vslibgcc.a`$LFS_TGT-gcc-print-libgcc-file-name|\

   sed‘s/libgcc/&_eh/’`

5.6.Linux-2.6.35.4APIHeaders

makemrproper

makeheaders_check

makeINSTALL_HDR_PATH=destheaders_install

cp-rvdest/include/*/tools/include

5.7.Glibc-2.12.1

patch-Np1-i../glibc-2.12.1-gcc_fix-1.patch

patch-Np1-i../glibc-2.12.1-makefile_fix-1.patch

mkdir-v../glibc-build

cd../glibc-build

case`uname-m`in

 i?

86)echo“CFLAGS+=-march=i486-mtune=native”>configparms;;

esac

../glibc-2.12.1/configure–prefix=/tools\

   –host=$LFS_TGT–build=$(../glibc-2.12.1/scripts/config.guess)\

   –disable-profile–enable-add-ons\

   –enable-kernel=2.6.22.5–with-headers=/tools/include\

   libc_cv_forced_unwind=yeslibc_cv_c_cleanup=yes

make

makeinstall

5.8.调整工具链

SPECS=`dirname$($LFS_TGT-gcc-print-libgcc-file-name)`/specs

$LFS_TGT-gcc-dumpspecs|sed\

 -e ‘s@/lib\(64\)\?

/ld@/tools&@g’ \

 -e“/^\*cpp:

$/{n;s,$,-isystem/tools/include,}”>$SPECS

echo“Newspecsfileis:

$SPECS”

unsetSPECS

echo‘main(){}’>dummy.c

$LFS_TGT-gcc-B/tools/libdummy.c

readelf-la.out|grep‘:

/tools’

OK出现[Requestingprograminterpreter:

/tools/lib/ld-linux.so.2]

rm-vdummy.ca.out

5.9.Binutils-2.20.1–Pass2

mkdir-v../binutils-build

cd../binutils-build

CC=”$LFS_TGT-gcc-B/tools/lib/”\

  AR=$LFS_TGT-arRANLIB=$LFS_TGT-ranlib\

  ../binutils-2.20.1/configure–prefix=/tools\

  –disable-nls–with-lib-path=/tools/lib

make

makeinstall

make-Cldclean

make-CldLIB_PATH=/usr/lib:

/lib

cp-vld/ld-new/tools/bin

5.10.GCC-4.5.1–Pass2

patch-Np1-i../gcc-4.5.1-startfiles_fix-1.patch

cp-vgcc/Makefile.in{,.orig}

sed ‘s@\./fixinc\.sh@-c true@’ gcc/Makefile.in.orig>gcc/Makefile.in

cp-vgcc/Makefile.in{,.tmp}

sed‘s/^T_CFLAGS=$/&-fomit-frame-pointer/’gcc/Makefile.in.tmp\

 >gcc/Makefile.in

forfilein\

 $(findgcc/config-namelinux64.h-o-namelinux.h-o-namesysv4.h)

do

 cp-uv$file{,.orig}

 sed-e ‘s@/lib\(64\)\?

\(32\)\?

/ld@/tools&@g’ \

 -e ‘s@/usr@/tools@g’ $file.orig>$file

 echo‘

#undefSTANDARD_INCLUDE_DIR

#defineSTANDARD_INCLUDE_DIR0

#defineSTANDARD_STARTFILE_PREFIX_1“”

#defineSTANDARD_STARTFILE_PREFIX_2“”‘>>$file

 touch$file.orig

done

tar-jxf../mpfr-3.0.0.tar.bz2

mv-vmpfr-3.0.0mpfr

tar-jxf../gmp-5.0.1.tar.bz2

mv-vgmp-5.0.1gmp

tar-zxf../mpc-0.8.2.tar.gz

mv-vmpc-0.8.2mpc

mkdir-v../gcc-build

cd../gcc-build

CC=”$LFS_TGT-gcc-B/tools/lib/”\

   AR=$LFS_TGT-arRANLIB=$LFS_TGT-ranlib\

   ../gcc-4.5.1/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–disable-multilib\

   –disable-bootstrap–disable-libgomp\

   –with-gmp-include=$(pwd)/gmp–with-gmp-lib=$(pwd)/gmp/.libs\

   –without-ppl–without-cloog

make

makeinstall

ln-vsgcc/tools/bin/cc

echo‘main(){}’>dummy.c

ccdummy.c

readelf-la.out|grep‘:

/tools’

OK显示[Requestingprograminterpreter:

/tools/lib/ld-linux.so.2]

rm-vdummy.ca.out

5.11.Tcl-8.5.8

cdunix

./configure–prefix=/tools

make

maketest

makeinstall

chmod-vu+w/tools/lib/libtcl8.5.so

makeinstall-private-headers

ln-svtclsh8.5/tools/bin/tclsh

5.12.Expect-5.44.1.15

patch-Np1-i../expect-5.44.1.15-no_tk-1.patch

cp-vconfigure{,.orig}

sed‘s:

/usr/local/bin:

/bin:

’configure.orig>configure

./configure–prefix=/tools–with-tcl=/tools/lib\

 –with-tclinclude=/tools/include–with-tk=no

make

maketest

makeSCRIPTS=”"install

5.13.DejaGNU-1.4.4

patch-Np1-i../dejagnu-1.4.4-consolidated-1.patch

./configure–prefix=/tools

makeinstall

makecheck

5.14.Ncurses-5.7

./configure–prefix=/tools–with-shared\

   –without-debug–without-ada–enable-overwrite

make

makeinstall

5.15.Bash-4.1

patch-Np1-i../bash-4.1-fixes-2.patch

./configure–prefix=/tools–without-bash-malloc

make

maketests

makeinstall

ln-vsbash/tools/bin/sh

5.16.Bzip2-1.0.5

make

makePREFIX=/toolsinstall

5.17.Coreutils-8.5

./configure–prefix=/tools–enable-install-program=hostname

make

makeRUN_EXPENSIVE_TESTS=yescheck

makeinstall

cp-vsrc/su/tools/bin/su-tools

5.18.Diffutils-3.0

./co

nfigure–prefix=/tools

make

makecheck

makeinstall

5.19.File-5.04

./configure–prefix=/tools

make

makecheck

makeinstall

5.20.Findutils-4.4.2

./configure–prefix=/tools

make

makecheck

makeinstall

5.21.Gawk-3.1.8

./configure–prefix=/tools

make

makecheck

makeinstall

5.22.Gettext-0.18.1.1

cdgettext-tools

./configure–prefix=/tools–disable-shared

make-Cgnulib-lib

make-Csrcmsgfmt

cp-vsrc/msgfmt/tools/bin

5.23.Grep-2.6.3

./configure–prefix=/tools\

   –disable-perl-regexp

make

makecheck

makeinstll

5.24.Gzip-1.4

./configure–prefix=/tools

make

makecheck

makeinstall

5.25.M4-1.4.14

sed-i-e‘/”m4.h”/a\

#include’src/path.c

./configure–prefix=/tools

make

makecheck

makeinstall

5.26.Make-3.82

./configure–prefix=/tools

make

makecheck

makeinstall

5.27.Patch-2.6.1

./configure–prefix=/tools

make

makecheck

makeinstall

5.28.Perl-5.12.1

patch-Np1-i../perl-5.12.1-libc-1.patch

shConfigure-des-Dprefix=/tools\

                 -Dstatic_ext=’Data/DumperFcntlIO’

makeperlutilitiesext/Errno/pm_to_blib

cp-vperlpod/pod2man/tools/bin

mkdir-pv/tools/lib/perl5/5.12.1

cp-Rvlib/*/tools/lib/perl5/5.12.1

5.29.Sed-4.2.1

./configure–prefix=/tools

make

makecheck

makeinstall

5.30.Tar-1.23

sed-i/SIGPIPE/dsrc/tar.c

./configure–prefix=/tools

make

makecheck

makeinstall

5.31.Texinfo-4.13a

./configure–prefix=/tools

make

makecheck

makeinstall

5.32.Stripping清理无用的部分

strip–strip-debug/tools/lib/*

strip–strip-unneeded/tools/{,s}bin/*

rm-rf/tools/{,share}/{info,man}

5.33.ChangingOwnership

exit

chown-Rroot:

root$LFS/tools

III.BuildingtheLFSSystem建立LFS系统

6.2.PreparingVirtualKernelFileSystems虚拟的内核文件系统的准备

mkdir-v$LFS/{dev,proc,sys}

mknod-m600$LFS/dev/consolec51

mknod-m666$LFS/dev/nullc13

mount-v–bind/dev$LFS/dev

mount-vtdevptsdevpts$LFS/dev/pts

mount-vttmpfsshm$LFS/dev/shm

mount-vtprocproc$LFS/proc

mount-vtsysfssysfs$LFS/sys

6.4.EnteringtheChrootEnvironment

chroot“$LFS”/tools/bin/env-i\

   HOME=/rootTERM=”$TERM”PS1=’\u:

\w\$‘\

   PATH=/bin:

/usr/bin:

/sbin:

/usr/sbin:

/tools/bin\

   /tools/bin/bash–login+h

6.5.CreatingDirectories

mkdir-pv/{b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1