土豆不好吃

Linux From Scratch 7.7 systemd 勘误、国内软件源

文章目录[显示]

最近心头一热,开始搞起了LFS,我使用的手册是由linux中国翻译的LFS-BOOK-7.7-systemd,发现其中略有错误,顺便把一路过来自己纠结的地方都记下来备忘。

Linux中国LFS页面:https://linux.cn/article-5865-1.html

顺便说下,那三四百兆的源码挺难下的,我中转回来了。下载点这里
或者使用中科大的镜像,看这里

 

勘误

 

100页 跨页复制的时候会导致多出左侧目录的内容(有些会有这个问题,有些则没有)

for file in \
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g' $file.orig > $file
echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
touch $file.orig
done

113页 include-fixed少了个-(pdf中有,但是复制的时候就没了)

cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h

113页 跨页复制的时候会导致多出左侧目录的内容

for file in \
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g' $file.orig > $file
echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
touch $file.orig
done

141页 跨页复制的时候会导致多出左侧目录的内容

make -C gnulib-lib
make -C intl pluralx.c
make -C src msgfmt
make -C src msgmerge
make -C src xgettext

 

195页 应该为一行,或者行尾添加\

install -v -Dm644 ../glibc-2.21/nscd/nscd.tmpfiles \
/usr/lib/tmpfiles.d/nscd.conf
install -v -Dm644 ../glibc-2.21/nscd/nscd.service \
/lib/systemd/system/nscd.service

223页 应该为一行,或者行尾添加\

ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/4.9.2/liblto_plugin.so \
/usr/lib/bfd-plugins/

234页 应该为一行,或者行尾添加\

ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) \
/usr/lib/libncursesw.so

255页 跨页复制的时候会导致多出左侧目录的内容

LIBS=-L/tools/lib \
CFLAGS=-I/tools/include \
PKG_CONFIG_PATH=/tools/lib/pkgconfig \
../configure --prefix=/usr \
--bindir=/bin \
--with-root-prefix="" \
--enable-elf-shlibs \
--disable-libblkid \
--disable-libuuid \
--disable-uuidd \
--disable-fsck

257页 应该为一行,或者行尾添加\

install-info --dir-file=/usr/share/info/dir \
/usr/share/info/libext2fs.info

278页 应该为一行,或者行尾添加\

mv -v /usr/lib/lib{readline,history}.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) \
/usr/lib/libreadline.so
ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) \
/usr/lib/libhistory.so

321页 全角括号

ln -svf ../../lib/$(readlink /usr/lib/liblzma.so) /usr/lib/liblzma.so

334页 全角括号

sed -i 's/\(RESIZECONS_PROGS=\)yes/\1no/g' configure
sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in

334页 复制的时候disable-vlock就变成disablevlock了

PKG_CONFIG_PATH=/tools/lib/pkgconfig ./configure --prefix=/usr --disable-vlock

347页 全角括号

sed -i "s:blkid/::" $(grep -rl "blkid/blkid.h")

355页 全角括号

mv -v /usr/lib/libdbus-1.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so

415页 跨页复制的时候会导致多出左侧目录的内容

cat > /etc/fstab << "EOF"
# Begin /etc/fstab
/dev/sda5 / ext4 defaults 1 1
# End /etc/fstab
EOF

421页 跨页复制的时候会导致多出左侧目录的内容

install -v -m755 -d /etc/modprobe.d
cat > /etc/modprobe.d/usb.conf << "EOF"
# Begin /etc/modprobe.d/usb.conf
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; 
true
# End /etc/modprobe.d/usb.conf
EOF

经验

VMWare

如果使用VMWare做实验,建议配置的时候使用SATA硬盘(默认是SCSI),如果使用SCSI在配置Kernel的时候要记得编译进VMWare的SCSI与和SCSI有关的驱动

配置Kernel

在选择Device Drivers的时候,可以按M选择编译成模块或者Y编译进内核。

区别是模块是后加载的。

Grub

为了防止挂掉,可以修改"宿主机"的grub.cfg添加lfs的启动项,要不万一启动失败,还得回退快照


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/lfs.html
退出移动版