制作LFS就不说了,网上一找一大堆资料,我是参照下面这篇文档做的。
http://blog.chinaunix.net/uid-20772927-id-579133.html
下面主要说制作BLFS的方法。
blfs虽说是在lfs的基础上安装一些实用性软件,但是一开始是完全没有任何头绪的,从哪里下手都不知道。我是在网上找了好多资料才有点理解的。
一.一开始我以为做好lfs以后就可以在lfs上blfs所需要的软件包进行安装了。但是进入lfs后才发现连wget命令都没有,根本就无法下载软件。所以只能从livecd进入系统装好wget命令。
二.装好wget后以为没问题了,但是紧接着又发现手动输入命令是一个极大问题,本来想用putty,但发现登陆不了了。按照制作lfs前的准备工作改root密码、修改sshd_config文件和启动ssh服务也不行,最后看到网上提到openssh,可能是没装这个软件包,然后就又回到livecd按照官方手册安装。
三.因为lfs是依赖于livecd的,简单地说lfs实际上是安装在livecd中的一个分区里面,所以在livecd必须将这个分区mount进来,下载的软件包就保存在lfs中了,即使从lfs启动软件包也已经存在于其磁盘中了。所以我先在livecd中下载blfs所要的软件包。(其实也可以在livecd中安装blfs的软件包。)
1.做好lfs后重启可能发现无法启动livecd了,这个时候需要在启动的时候更改启动方式为CD-ROM启动。
2.从livecd启动后重新进入lfs的步骤为:
1)加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
2)加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
swapon /dev/hda1
3)加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
4)chroot到目标系统下
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
5)进入编译目录
cd /sources
export LFS=/sources
3.接下来就可以安装wget和openssh了
下载软件包
wget http://www.openssl.org/source/openssl-0.9.8g.tar.gz
wget http://www.linuxfromscratch.org/patches/blfs/6.3/openssl-0.9.8g-fix_manpages-1.patch
wget ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-4.7p1.tar.gz
安装命令
---------------wget-----------------
tar xvf wget-1.10.2.tar.gz
cd wget-1.10.2
./configure --prefix=/usr --sysconfdir=/etc &&
make
make install
cd ..
rm -rf wget-1.10.2
这里可能有读者会有疑惑,前面还没下载wget的安装包,这里怎么安装?
我的做法是在livecd里面讲wget的安装包下载到sources目录,然后进入lfs安装。
wget安装包的下载地址: ftp://ftp.lfs-matrix.net/pub/blfs/6.2.0/w/wget-1.10.2.tar.gz
-------------openssl----------------
tar xvf openssl-0.9.8g.tar.gz
cd openssl-0.9.8g
patch -Np1 -i ../openssl-0.9.8g-fix_manpages-1.patch &&
./config --openssldir=/etc/ssl --prefix=/usr shared &&
make MANDIR=/usr/share/man
make test
make MANDIR=/usr/share/man install &&
cp -v -r certs /etc/ssl &&
install -v -d -m755 /usr/share/doc/openssl-0.9.8g &&
cp -v -r doc/{HOWTO,README,*.{txt,html,gif}} \
/usr/share/doc/openssl-0.9.8g
cd ..
rm -rf openssl-0.9.8g
-------------openssh----------------
tar xvf openssh-4.7p1.tar.gz
cd openssh-4.7p1
install -v -m700 -d /var/lib/sshd &&
chown -v root:sys /var/lib/sshd &&
groupadd -g 50 sshd &&
useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd \
-s /bin/false -u 50 sshd
sed -i 's@-lcrypto@/usr/lib/libcrypto.a -ldl@' configure
sed -i 's@ -ldes@@' configure &&
./configure --prefix=/usr --sysconfdir=/etc/ssh --datadir=/usr/share/sshd \
--libexecdir=/usr/lib/openssh --with-md5-passwords \
--with-privsep-path=/var/lib/sshd \
--with-xauth=/usr/bin/xauth &&
make
if test -f /usr/bin/scp
then
mv /usr/bin/scp /usr/bin/scp-bak
fi &&
cp scp /usr/bin/scp &&
make tests 2>&1 | tee check.log
grep "FATAL" check.log
rm /usr/bin/scp &&
if test -f /usr/bin/scp-bak
then
rm /usr/bin/scp-bak
fi &&
make install &&
install -v -m755 -d /usr/share/doc/openssh-4.7p1 &&
install -v -m644 INSTALL LICENCE OVERVIEW README* WARNING.RNG \
/usr/share/doc/openssh-4.7p1
cd ..
rm -rf openssh-4.7p1
----------------blfs-bootscripts----------------
tar xvf blfs-bootscripts-20060910.tar.bz2
cd blfs-bootscripts-20060910
make install-sshd
cd ..
rm -rf blfs-bootscripts-20060910
在blfs-bootscripts里面make install-sshd后ssh就会自动启动。
还差最后一步:
用vi打开文件/etc/sshd/sshd_config
1.找到#port 22,将前面的注释去掉;
2.找到#PermitRootLogin yes,同样将前面的注释去掉。
这时候就可以复制粘贴命令了。