Final Preparation
最后准备工作
准备工作做了一大半,但还没有完成
接下来便是建立工具文件夹,
mkdir -v $LFS/tools
建立软连接
ln -sv $LFS/tools /
不知道你有没有发现 许多命令之后都要加
-v
的选项, 也就是输出这条命令到底做了些什么。
因此不要图省事,在进行完一个动作时,看看命令是否达到预期效果了,往往比一门心思往下做收获的要多
然后就是建立编译LFS的用户, 按照4.4节的命令做即可
不用root用户是有原因的, 就是担心编译lfs过程中原系统出现问题,并不是说root用户就不能怎么的
groupadd LFS
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
详细解释下每个参数
-s /bin/bash
指定一个shell
-g lfs
指定用户所在组
-m
在home
目录建立自己的家目录
-k /dev/null
在这里的作用,是要防止创建3个文件,
相信大家也有人想得到:
.bash_logout
.bash_profile
.bashrc
我第一次做的时候是不知道的。因为没留心, 第二次才注意到-k /dev/null
的
之后为lfs创建密码了
passwd lfs
别忘了许多文件,和下载的包都是root
用户创建的,普通用户根本没有权限读取, 所以这里要进行一下处理,把文件所有者改为新建的用户lfs
chown -v lfs $LFS/tools`
chown -v lfs $LFS/sources`
而后切到lfs用户
su - lfs
这里要加-
号的意味着你是真正以lfs用户登陆的, man bash
中有详细解释, 百度也有,也有。。
而后编辑.bash_profile 和 .bashrc了, 这是当然了, 因为刚刚没让它生成嘛
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
想知道每句话什么意思吗? 好好看书, 博主也懒, 不翻译了。
就全当提高英语了
- 忍不住说两句 PATH的顺序是首先
/tools/bin
文件夹,
然后是/bin
和/usr/bin
而之前有set +h
选项。
这是为了当一个工具编译安装结束之后(工具会安装道/tools/bin
下),
系统会首先执行/tolls/bin
下的二进制文件, 从一定程度上来说,
这是避免错误的有效方法。
书后面还接受了make -j2
, 我这里不建议开这个选项,
- 这个看个人初衷
我是有亲身体会的, 在我首次编译glibc
的时候出现make错误了,
其它暂时没有遇到, 不过对于新手来说,一次的错误很打击士气的。
多花点时间,顺顺利利的做下来就好了。