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

















































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章