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