7、准备主机系统:
一、检测主机系统:python
cat > version-check.sh << "EOF"
#!/bin/bash
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
unset MYSH
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -h /usr/bin/yacc ]; then
echo "/usr/bin/yacc -> readlink -f /usr/bin/yacc
";
elif [ -x /usr/bin/yacc ]; then
echo yacc is /usr/bin/yacc --version | head -n1
else
echo "yacc not found"
fi
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -h /usr/bin/awk ]; then
echo "/usr/bin/awk -> readlink -f /usr/bin/awk
";
elif [ -x /usr/bin/awk ]; then
echo awk is /usr/bin/awk --version | head -n1
else
echo "awk not found"
fi
gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl perl -V:version
python3 --version
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1 # texinfo version
xz --version | head -n1
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
then echo "g++ compilation OK";
else echo "g++ compilation failed"; fi
rm -f dummy.c dummy
EOFlinux
输入:
bash version-check.sh
以上命令输出:

能够看到缺乏的软件及连接。下面安装软件及连接。
二、修改连接及安装所需软件:
(1)ln -sf bash /bin/sh //修改bash指向/bin/sh
(2)apt-get install bison //安装bison
(3)apt-get install g++ //安装g++
(4)apt-get install texinfo //安装texinfo
(5)apt-get install gawk //安装gawk
注:上面这些软件只是安装到了live-cd的系统,也就是内存当中,并无安装到硬盘上。
三、再次运行version-check.sh,终端输入:
bash version-check.sh
以下图所示:
与LFS 10.0手册中所须要的软件比较,不要比手册中要求的软件版本低,或高出不少。
若是用的是本教程要求的软件,那么会经过的。
8、建立分区、文件系统下载源代码
一、建立分区:
cfdisk /dev/sda
回车后,选择DOS分区格式。
回车后进入分区。
直接回车,新建分区。输入2048M回车:
选择主分区,回车。而后,按键盘上的T键,会弹出下图:
向上移动光标到下图所示:
回车,这样交换分区就创建成功。
创建完交换分区后,按向下的光标,选择未划分的空间,与交换空间分区差很少,直接回车,而后选择全部的空间,再回车,设置成主分区,回车。而后按那般上的T键,回车。
此时,分区创建完成。以下图所示:
按一下,键盘上的B键,设置启动分区。以下图所示:
注意:/dev/sda2 所面有1个号。表示,它是启动分区。
按右光标键。选择Write回车,输入yes回车,这样分区就保存好了。
而后,再按键盘的Q键,退出分区软件。
二、创建分区系统:
mkfs -v -t ext4 /dev/sda2
将主分区建立成ext4文件系统。
三、格式化交换分区:
mkswap /dev/sda1
四、设置$LFS变量
export LFS=/mnt/lfs
五、建立目录、挂载主分区、交换分区
mkdir -pv $LFSS
mount -v -t ext4 /dev/sda2 $LFS
/sbin/swapon -v /dev/sda1
六、建立源代码目录、更改权限、进入目录
mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources
cd $LFS/sources/
七、下载源代码:
我选择的是国内镜像站点:中国科技大学,网址:http://mirrors.ustc.edu.cn/lfs/lfs-packages/10.0/
(1)先下载wget-list文件(注:下载到本机,不是虚拟机中)
http://mirrors.ustc.edu.cn/lfs/lfs-packages/10.0/wget-list
(2)打开wget-list文件,而后修改。将连接文件名前面的下载网址改为http://mirrors.ustc.edu.cn/lfs/lfs-packages/10.0/ 。
如图:bash
(3)选择全部的下载连接地址,而后复制。
(4)在putty的终端中输入:
nano wget-list
新建一个wget-list文件。在此窗口中点击鼠标中键,将刚才复制的连接粘贴到虚拟机的wget-list文件中。以下图:
而后,接键盘上的Ctrl+O键,回车。再按Ctrl+X退出。
五、下载源代码:
wget --input-file=wget-list --continue --directory-prefix=$LFS/sources
六、进行MDs码验证全部软件包是否可用
pushd $LFS/sources
md5sum -c md5sums
popd
若是有错误的连接,请从新下载。或换一个镜像站点下载。
9、建立目录、lfs用户、搭建环境
(1)建立所需的目录
mkdir -pv $LFS/{bin,etc,lib,sbin,usr,var}
case $(uname -m) in
x86_64) mkdir -pv $LFS/lib64 ;;
esac
(2)建立交叉编译目录
mkdir -pv $LFS/tools
(3)建立lfs用户、组及权限
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd lfs
给lfs用户设置密码,两次密码要输入相同。
chown -v lfs $LFS/{usr,lib,var,etc,bin,sbin,tools}
case $(uname -m) in
x86_64) chown -v lfs $LFS/lib64 ;;
esac
chown -v lfs $LFS/sources
su - lfs
(4)搭建环境
建立.bash_profile文件:
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
建立.bashrc文件:
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/usr/bin
if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
PATH=$LFS/tools/bin:$PATH
export LFS LC_ALL LFS_TGT PATH
EOF
启用刚刚创建的配置文件:
source ~/.bash_profileide