日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LFS 安装笔记 (二)

發(fā)布時(shí)間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LFS 安装笔记 (二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第三部?? 構(gòu)建LFS系統(tǒng)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

安裝系統(tǒng)基礎(chǔ)軟件

?

掛載虛擬內(nèi)核文件系統(tǒng) ----- 指那些是由內(nèi)核產(chǎn)生但并不存在于硬盤上(存在于內(nèi)存中)的文件系統(tǒng),他們被用來與內(nèi)核進(jìn)行通信

mkdir -v $LFS/{dev,proc,sys}

創(chuàng)建初始設(shè)備節(jié)點(diǎn)

mknod -m 600 /mnt/lfs/dev/console c 5 1

mknod -m 666 /mnt/lfs/dev/null c 1 3

掛載并填充dev目錄

mount -v --bind /dev/ /mnt/lfs/dev/

掛載虛擬內(nèi)核文件系統(tǒng)

mount -vt devpts devpts /mnt/lfs/dev/pts

mount -vt tmpfs shm /mnt/lfs/dev/shm/

mount -vt proc proc /mnt/lfs/proc/

mount -vt sysfs sysfs /mnt/lfs/sys/

?

進(jìn)入chroot環(huán)境

chroot "$LFS" /tools/bin/env -i??? ?HOME=/root TERM="$TERM" PS1='\u:\w\$ '???? PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin???? /tools/bin/bash --login +h

?

(報(bào)錯(cuò):

/bin/bash: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory

chroot: failed to run command `bash': No such file or directory

缺少模塊等等 可以使用 ldd bash 看依賴關(guān)系來解決,然后設(shè)置符號(hào)鏈接就可以)

?

會(huì)提示I have no name! 這是正常的,因?yàn)?span lang="en-us"> /etc/passwd 還沒有創(chuàng)建

?

創(chuàng)建系統(tǒng)目錄結(jié)構(gòu)

mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt}

mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}

install -dv -m 0755 /root

install -dv -m 1777 /tmp /var/tmp?

mkdir –pv /usr/local

mkdir -pv /usr/local/{bin,include,lib,sbin,src}

mkdir -pv /usr/local/share/{doc,info,locale,man}

mkdir -v /usr/local/share/{misc,terminfo,zoneinfo}

mkdir -pv /usr/local/share/man/{1..8}

?

for dir in /usr? /usr/local/ ;do

> ln -sv share/{man,doc,info} $dir

> done

?

mkdir -v /var/{lock,log,mail,run,spool}

mkdir -pv /var/{opt,cache,lib/{misc,locate},local}

?

case $(uname -m ) in

> x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64;;

> esac

?

創(chuàng)建必須的文件和符號(hào)鏈接

ln -sv /tools/bin/{bash,cat,echo,grep,pwd,stty}? /bin/

ln -sv /tools/bin/perl /usr/bin

ln -sv /tools/lib/libgcc_s.so{,.1}? /usr/lib

ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib/

ln -sv bash? /bin/sh

touch /etc/mtab

?

cat > /etc/passwd <<"EOF"

> root:x:0:0:root:/root:/bin/bash

> nobody:x:99:99:unprivileged User:/dev/null:/bin/false

> EOF

?

cat > /etc/group <<"EOF"

> root:x:0:

> bin:x:1:

> sys:x:2:

> kmem:x:3:

> tty:x:4:

> tape:x:5:

> daemon:x:6:

> floppy:x:7:

> disk:x:8:

> lp:x:9:

> uucp:x:10:

> audio:x:11:

> video:x:12:

> utmp:x:13:

> usb:x:14:

> cdrom:x:15:

> mail:x:34:

> nogroup:x:99:

> EOF

?

exec /tools/bin/bash --login +h (因?yàn)?span lang="en-us">passwd 和group文件都已經(jīng)創(chuàng)建,所以目前顯示應(yīng)該是root:/#

?

創(chuàng)建一些程序的所需的日志文件,否則這些程序?qū)o法運(yùn)行:

touch /var/run/utmp? /var/log/{btmp,lastlog,wtmp}

chgrp -v utmp /var/run/utmp? /var/log/lastlog

chmod -v 664 /var/run/utmp /var/log/lastlog

?

安裝linux API headers ---將內(nèi)核的應(yīng)用程序編程接口(API)提供給 Glibc 使用

cd sources/linux-2.6.32.8

make mrproper

make? headers_check

(報(bào)錯(cuò):gcc: error trying to exec 'cc1': execvp: No such file or directory

make[1]: *** [scripts/basic/fixdep] Error 1

make: *** [scripts_basic] Error 2

解決辦法:找到cc1 所在位置,并復(fù)制到對應(yīng)位置,cp /mnt/lfs/tools/libexec/gcc/x86_64-unknown-linux-gnu/4.4.3/cc1?? /mnt/lfs/usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/cc1

(報(bào)錯(cuò):error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory? 使用ldd find 查看所需文件放在在哪里,做符號(hào)鏈接或者copy都可以)

(報(bào)錯(cuò):

/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.3/../../../../x86_64-unknown-linux-gnu/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory 解決方法與上面一樣)

?

make INSTALL_HDR_PATH=dest headers_install

cp -rv dest/include/*? /usr/include/

?

安裝manpages ---- 包含多余1900頁的幫助文檔

tar -jxvf man-pages-3.23.tar.bz2

cd man-pages-3.23

make install

?

安裝glibc ---包含了主要的 C 語言庫

cd?? cd glibc-2.11.1??

DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p')??

?

unset DL

sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in

?

mkdir? ../glibc-build

cd? ../glibc-build

cp -v ../glibc-2.11.1/iconvdata/gconv-modules iconvdata

make

make? install

(報(bào)錯(cuò):

??? 找不到/etc/ld.so.conf文件,這個(gè)文件可以直接創(chuàng)建就可以了)

報(bào)錯(cuò):

/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.3/../../../../x86_64-unknown-linux-gnu/bin/ld: cannot find -lcidn

Execution of gcc failed!

解決辦法: 找到cidm.so相關(guān)的文件并復(fù)制到相應(yīng)的位置即可)

?

mkdir -pv /usr/lib/locale

make localedata/install-locales

?

cat > /etc/nsswitch.conf << "EOF"

# Begin /etc/nsswitch.conf

passwd: files

group: files

shadow: files

hosts: files dns

networks: files

protocols: files

services: files

ethers: files

rpc: files

# End /etc/nsswitch.conf

EOF

?

cp -v --remove-destination /usr/share/zoneinfo/Asia/Chongqing? /etc/localtime????

?

cat > /etc/ld.so.conf << "EOF"

# Begin /etc/ld.so.conf

/usr/local/lib

/opt/lib

# End /etc/ld.so.conf

EOF

?

再次調(diào)整工具鏈

mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}

mv -v /tools/bin/{ld-new,ld}

ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld

?

gcc -dumpspecs|sed -e 's@/tools@@g'-e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}'???? -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > `dirname $(gcc --print-libgcc-file-name)`/specs

?

安裝zlib ---包含 zlib 庫,很多程序中的壓縮或者解壓縮程序都會(huì)用到這個(gè)庫

tar -jxvf zlib-1.2.3.tar.bz2

./configure --prefix=/usr --shared --libdir=/lib

make

make install

(報(bào)錯(cuò):

gcc -O3 -DNO_vsnprintf -DUSE_MMAP -o example example.o -L. libz.a

/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.3/../../../../x86_64-unknown-linux-gnu/bin/ld: crtn.o: No such file: No such file or directory

解決方法: 找到crtn.o 并復(fù)制到相應(yīng)的文件夾)

ln -sfv ../../lib/libz.so.1.2.3 /usr/lib/libz.so

make clean

./configure --prefix=/usr

make install

chmod -v 644 /usr/lib/libz.a

?

安裝binutils ---一組開發(fā)工具,包括連接器、匯編器和其他用于目標(biāo)文件和檔案的工具

cd? binutils-build

../sources/binutils-2.20/configure? --prefix=/usr/?? --enable-shared

make tooldir=/usr

make tooldir=/usr install

cp -v ../binutils-2.20/include/libiberty.h /usr/include

?

安裝gmp ----包含數(shù)學(xué)庫。庫中有用于專門計(jì)算單精度數(shù)值的函數(shù)。

cd gmp-5.0.0

./configure --prefix=/usr --enable-cxx --enable-mpbsd

make

make install

?

安裝mpfr ---包含高精度數(shù)學(xué)函數(shù)

cd mpfr-2.4.2

./configure --prefix=/usr --enable-thread-safe

make

make install

?

安裝file --- 包含判定文件類型的工具

./configure --prefix=/usr

make

make install

?

安裝gcc----包含 GNU 編譯器,其中有 C C++ 編譯器

cd gcc-build

../gcc-4.4.3/configure --prefix=/usr???? --libexecdir=/usr/lib --enable-shared???? --enable-threads=posix --enable-__cxa_atexit???? --enable-clocale=gnu --enable-languages=c,c++???? --disable-multilib --disable-bootstrap? --with-gmp=/gmp/?? --with-mpfr=/mpfr/

?

make

make install

?

安裝sed

./configure --prefix=/usr --bindir=/bin --htmldir=/usr/share/doc/sed-4.2.1

make

make install

?

安裝pkg-config ---configure make 中將include library 路徑傳給編譯工具

tar -zxvf pkg-config-0.23.tar.gz

cd pkg-config-0.23

./configure --prefix=/usr

make

make install

?

安裝ncurses

./configure --prefix=/usr --with-shared --without-debug --enable-widec

make

make install

?

安裝Util-linux-ng

tar -jxvf util-linux-ng-2.17.tar.bz2

sed -e 's@etc/adjtime@var/lib/hwclock/adjtime@g'???? -i $(grep -rl '/etc/adjtime' .)

mkdir -pv /var/lib/hwclock

./configure --enable-arch --enable-partx --enable-write

make

make install

?

安裝E2fsprogs --- 管理ext2ext3ext4文件系統(tǒng)

tar -zxvf e2fsprogs-1.41.10.tar.gz

mkdir -v build

cd build/

../configure --prefix=/usr --with-root-prefix=""???? --enable-elf-shlibs --disable-libblkid --disable-libuuid???? --disable-uuidd --disable-fsck

make install

make install-libs

?

安裝Coreutils ----包括一套顯示、設(shè)置基本系統(tǒng)屬性的工具

cd coreutils-8.4

./configure --prefix=/usr???? --enable-no-install-program=kill,uptime

make

make install

?

安裝Iana-Etc? ---- 軟件包提供了網(wǎng)絡(luò)服務(wù)和協(xié)議的數(shù)據(jù)

tar -jxvf iana-etc-2.30.tar.bz2

cd iana-etc-2.30

make

make install

?

安裝M4 ----包含一個(gè)宏處理器

./configure --prefix=/usr

make

make install

?

轉(zhuǎn)載于:https://blog.51cto.com/linuxlab/315277

總結(jié)

以上是生活随笔為你收集整理的LFS 安装笔记 (二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。