LFS 10.0 超详细搭建过程(二)

七、准备主机系统:
1、检测主机系统:

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
EOF

输入:
bash version-check.sh
LFS 10.0 超详细搭建过程(二)
以上命令输出:
![](https://s4.51cto.com/images/blog/202101/root@debian:~# chmod -v a+wt $LFS/sources15/8421e58bb4aa620fa134e6c5f0a0e698.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
可以看到缺少的软件及链接。下面安装软件及链接。
2、修改链接及安装所需软件:
(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的系统,也就是内存当中,并没有安装到硬盘上。
3、再次运行version-check.sh,终端输入:
bash version-check.sh
如下图所示:
LFS 10.0 超详细搭建过程(二)
与LFS 10.0手册中所需要的软件比较,不要比手册中要求的软件版本低,或高出很多。
LFS 10.0 超详细搭建过程(二)
如果用的是本教程要求的软件,那么会通过的。
八、创建分区、文件系统下载源代码
1、创建分区:
cfdisk /dev/sda
回车后,选择DOS分区格式。
LFS 10.0 超详细搭建过程(二)
回车后进入分区。
LFS 10.0 超详细搭建过程(二)
直接回车,新建分区。输入2048M回车:
LFS 10.0 超详细搭建过程(二)
选择主分区,回车。然后,按键盘上的T键,会弹出下图:
LFS 10.0 超详细搭建过程(二)
向上移动光标到下图所示:
LFS 10.0 超详细搭建过程(二)
回车,这样交换分区就建立成功。
建立完交换分区后,按向下的光标,选择未划分的空间,与交换空间分区差不多,直接回车,然后选择所有的空间,再回车,设置成主分区,回车。然后按那般上的T键,回车。
此时,分区建立完成。如下图所示:
LFS 10.0 超详细搭建过程(二)
按一下,键盘上的B键,设置启动分区。如下图所示:
LFS 10.0 超详细搭建过程(二)
注意:/dev/sda2 所面有1个号。表示,它是启动分区。
按右光标键。选择Write回车,输入yes回车,这样分区就保存好了。
然后,再按键盘的Q键,退出分区软件。
2、建立分区系统:
mkfs -v -t ext4 /dev/sda2
将主分区创建成ext4文件系统。
3、格式化交换分区:
mkswap /dev/sda1
4、设置$LFS变量
export LFS=/mnt/lfs
5、创建目录、挂载主分区、交换分区
mkdir -pv $LFSS
mount -v -t ext4 /dev/sda2 $LFS
/sbin/swapon -v /dev/sda1
6、创建源代码目录、更改权限、进入目录
mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources
cd $LFS/sources/
7、下载源代码:
我选择的是国内镜像站点:中国科技大学,网址: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/ 。
如图:

LFS 10.0 超详细搭建过程(二)

(3)选择所有的下载链接地址,然后复制。
(4)在putty的终端中输入:
nano wget-list
新建一个wget-list文件。在此窗口中点击鼠标中键,将刚才复制的链接粘贴到虚拟机的wget-list文件中。如下图:
LFS 10.0 超详细搭建过程(二)
然后,接键盘上的Ctrl+O键,回车。再按Ctrl+X退出。
5、下载源代码:
wget --input-file=wget-list --continue --directory-prefix=$LFS/sources
6、进行MDs码验证所有软件包是否可用
pushd $LFS/sources
md5sum -c md5sums
popd
如果有错误的链接,请重新下载。或换一个镜像站点下载。
九、创建目录、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_profile

猜你喜欢

转载自blog.51cto.com/9828355/2592695