-
$ tar xvf $LFS/db-4.5.20.tar.gz
-
$ cd db-4.5.20
-
$ patch -Np1 -i $LFS/db-4.5.20-fixes-1.patch
-
$ cd build_unix
-
$ ../dist/configure --prefix=/usr --enable-compat185 --enable-cxx
-
$ make
-
$ make docdir=/usr/share/doc/db-4.5.20 install
-
$ chown -Rv root:root /usr/share/doc/db-4.5.20
-
$ cd ../..
-
$ rm -rf db-4.5.20
一步一步打造自己的Linux--LFS6.3安装过程(五)
一步一步打造自己的Linux--LFS6.3安装过程(六)
恢复MBR,用boot.ini启动Linux
目录:
Berkeley DB
Sed
E2fsprogs
Coreutils
Iana-Etc
M4
Bison
Ncurses
Procps
Libtool
Perl
Readline
Zlib
Autoconf
Automake
Bash
运行新的bash
Berkeley DB (10分钟)
Sed (5分钟)
-
$ tar xvf $LFS/sed-4.1.5.tar.gz
-
$ cd sed-4.1.5
-
$ ./configure --prefix=/usr --bindir=/bin --enable-html
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf sed-4.1.5
e2fsprogs (5分钟)
-
$ tar xvf $LFS/e2fsprogs-1.40.2.tar.gz
-
$ cd e2fsprogs-1.40.2
-
$ sed -i -e 's@/bin/rm@/tools&@' lib/blkid/test_probe.in
-
$ mkdir -v build
-
$ cd build
-
$ ../configure --prefix=/usr --with-root-prefix="" \
--enable-elf-shlibs -
$ make
-
$ make install
-
$ make install-libs
-
$ cd ../..
-
$ rm -rf e2fsprogs-1.40.2
coreutils (10分钟)
-
$ tar xvf $LFS/coreutils-6.9.tar.bz2
-
$ cd coreutils-6.9
-
$ patch -Np1 -i $LFS/coreutils-6.9-uname-1.patch
-
$ patch -Np1 -i $LFS/coreutils-6.9-suppress_uptime_kill_su-1.patch
-
$ patch -Np1 -i $LFS/coreutils-6.9-i18n-1.patch
-
$ chmod +x tests/sort/sort-mb-tests
-
$ ./configure --prefix=/usr
-
$ make
-
$ make NON_ROOT_USERNAME=nobody check-root
-
$ echo "dummy:x:1000:nobody" >> /etc/group
-
$ su-tools nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check"
-
$ sed -i '/dummy/d' /etc/group
-
$ make install
-
$ mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
-
$ mv -v /usr/bin/{false,hostname,ln,ls,mkdir,mknod,mv,pwd,readlink,rm} /bin
-
$ mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
-
$ mv -v /usr/bin/chroot /usr/sbin
-
$ mv -v /usr/bin/{head,sleep,nice} /bin
-
$ cd ..
-
$ rm -rf coreutils-6.9
iana-etc (1分钟)
-
$ tar xvf $LFS/iana-etc-2.20.tar.bz2
-
$ cd iana-etc-2.20
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf iana-etc-2.20
m4 (5分钟)
-
$ tar xvf $LFS/m4-1.4.10.tar.bz2
-
$ cd m4-1.4.10
-
$ ./configure --prefix=/usr
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf m4-1.4.10
bison (5分钟)
-
$ tar xvf $LFS/bison-2.3.tar.bz2
-
$ cd bison-2.3
-
$ ./configure --prefix=/usr
-
$ echo '#define YYENABLE_NLS 1' >> config.h
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf bison-2.3
ncurses (10分钟)
-
$ tar xvf $LFS/ncurses-5.6.tar.gz
-
$ cd ncurses-5.6
-
$ patch -Np1 -i $LFS/ncurses-5.6-coverity_fixes-1.patch
-
$ ./configure --prefix=/usr --with-shared --without-debug --enable-widec
-
$ make
-
$ make install
-
$ chmod -v 644 /usr/lib/libncurses++w.a
-
$ mv -v /usr/lib/libncursesw.so.5* /lib
-
$ ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so
-
-
$ for lib in curses ncurses form panel menu ; do \
rm -vf /usr/lib/lib${lib}.so ; \
echo "INPUT(-l${lib}w)" >/usr/lib/lib${lib}.so ; \
ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \
done -
$ ln -sfv libncurses++w.a /usr/lib/libncurses++.a
-
-
$ rm -vf /usr/lib/libcursesw.so
-
$ echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so
-
$ ln -sfv libncurses.so /usr/lib/libcurses.so
-
$ ln -sfv libncursesw.a /usr/lib/libcursesw.a
-
$ ln -sfv libncurses.a /usr/lib/libcurses.a
-
-
$ make distclean
-
$ ./configure --prefix=/usr --with-shared --without-normal \
--without-debug --without-cxx-binding -
$ make sources libs
-
$ cp -av lib/lib*.so.5* /usr/lib
-
-
$ cd ..
-
$ rm -rf ncurses-5.6
procps (5分钟)
-
$ tar xvf $LFS/procps-3.2.7.tar.gz
-
$ cd procps-3.2.7
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf procps-3.2.7
libtool (5分钟)
-
$ tar xvf $LFS/libtool-1.5.24.tar.gz
-
$ cd libtool-1.5.24
-
$ ./configure --prefix=/usr
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf libtool-1.5.24
perl (10分钟)
-
$ tar xvf $LFS/perl-5.8.8.tar.bz2
-
$ cd perl-5.8.8
-
$ echo "127.0.0.1 localhost $(hostname)" > /etc/hosts
-
$ ./configure.gnu --prefix=/usr \
-Dman1dir=/usr/share/man/man1 \
-Dman3dir=/usr/share/man/man3 \
-Dpager="/usr/bin/less -isR" -
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf perl-5.8.8
readline (5分钟)
-
$ tar xvf $LFS/readline-5.2.tar.gz
-
$ cd readline-5.2
-
$ sed -i '/MV.*old/d' Makefile.in
-
$ sed -i '/{OLDSUFF}/c:' support/shlib-install
-
$ patch -Np1 -i $LFS/readline-5.2-fixes-3.patch
-
$ ./configure --prefix=/usr --libdir=/lib
-
$ make SHLIB_LIBS=-lncurses
-
$ make install
-
$ mv -v /lib/lib{readline,history}.a /usr/lib
-
$ rm -v /lib/lib{readline,history}.so
-
$ ln -sfv ../../lib/libreadline.so.5 /usr/lib/libreadline.so
-
$ ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so
-
$ cd ..
-
$ rm -rf readline-5.2
zlib (5分钟)
-
$ tar xvf $LFS/zlib-1.2.3.tar.gz
-
$ cd zlib-1.2.3
-
$ ./configure --prefix=/usr --shared --libdir=/lib
-
$ make
-
$ make install
-
$ rm -v /lib/libz.so
-
$ ln -sfv ../../lib/libz.so.1.2.3 /usr/lib/libz.so
-
$ make clean
-
$ ./configure --prefix=/usr
-
$ make
-
$ make install
-
$ chmod -v 644 /usr/lib/libz.a
-
$ cd ..
-
$ rm -rf zlib-1.2.3
autoconf (5分钟)
-
$ tar xvf $LFS/autoconf-2.61.tar.bz2
-
$ cd autoconf-2.61
-
$ ./configure --prefix=/usr
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf autoconf-2.61
automake (5分钟)
-
$ tar xvf $LFS/automake-1.10.tar.bz2
-
$ cd automake-1.10
-
$ ./configure --prefix=/usr
-
$ make
-
$ make install
-
$ cd ..
-
$ rm -rf automake-1.10
bash (10分钟)
-
$ tar xvf $LFS/bash-3.2.tar.gz
-
$ cd bash-3.2
-
$ tar -xvf $LFS/bash-doc-3.2.tar.gz
-
$ sed -i "s|htmldir = @htmldir@|htmldir = /usr/share/doc/bash-3.2|" \
Makefile.in -
$ patch -Np1 -i $LFS/bash-3.2-fixes-5.patch
-
$ ./configure --prefix=/usr --bindir=/bin \
--without-bash-malloc --with-installed-readline -
$ make
-
$ sed -i 's/LANG/LC_ALL/' tests/intl.tests
-
$ sed -i 's@tests@& </dev/tty@' tests/run-test
-
$ chown -Rv nobody ./
-
$ su-tools nobody -s /bin/bash -c "make tests"
-
$ make install
-
$ cd ..
-
$ rm -rf bash-3.2
运行新编译的 bash 程序来替换正在执行的这一个:
-
$ exec /bin/bash --login +h
(未完待续--我有误上贼船的感觉 ^_^)
- 版权所有,转载请遵循“署名-非商业用途-保持一致”创作共用协议。
