第四章 设置LFS临时系统的环境变量


1.创建LFS的“创作基地”
export LFS=/mnt/lfs
mkdir -pv $LFS
这里创建了整个目标系统的目录,为 /mnt/lfs


2.把空分区挂载到LFS目录上
mount /dev/sda2 $LFS

3.创建源代码编译用的目录
mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources
这个目录用于编译所有的软件,将该目录权限设置为“1777”(rwxrwxrwxt),所有人都可以对其进行读写


4.创建临时系统目录
mkdir -v $LFS/tools
ln -sv $LFS/tools /
上面这两句就建立了神奇的工具链目录(是工具链目录不是工具链),这样的创建方式是为了在创建工具链和使用工具链创建目标系统的时候对于工具链的位置都是/tools,这样可保证工具链的正常使用
注意:
 ln-sv $LFS/tools /(这里有空格)执行后应该会输出
    `/tools' ->`/mnt/lfs/tools'
 表示正确。



5.创建lfs用户
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd lfs
命令“groupadd <用户名>”,用于创建一个用户组,任何用户必须存在于至少一个组中
命令“ useradd -s /bin/bash -g lfs -m -k /dev/null lfs ”用于创建新用户的命令,最后一个的 lfs 则是新用户的用户名
  • “-s” 用于指定该用户使用的shell环境,这里使用最常用的bash
  • “-g” 用于指定该用户所在的用户组,这里使用了刚刚建立的 “lfs” 组
  • “-m” 用于建立这个用户的专用目录,一般建立在 /home 下,目录名同用户名
  • “-k” 用于指定建立该用户后复制指定的配置文件目录,这里指定了 /dev/null ,则不会复制任何配置目录


6.将 tools 和 sources 目录用户改成 lfs,以便后面用 lfs 用户来操作这两个目录
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources

7.切换到 lfs 用户
su - lfs
这时候你会发现命令行提示符已经由#改为了$
相关知识点:
  其实如果不使用lfs用root也是能完成工具链的,不过需要对root的环境变量进行修改,还要防止因为输入错误而导致覆盖主系统下的文件,所以LFS手册中制作工具链部分就是为了解决这种意外的发生而用lfs用户来建立工具链


8.设置 lfs 用户的环境

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
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL PATH
EOF

source ~/.bash_profile

这里在当前用户的 “~” 目录(主目录)下新建了两个配置文件,.bash_profile 和 .bashrc 

  • login shell:此种方式登录时,shell会重新读取/etc/profile和~/.bash_profile来应用新的环境变量。
  • non-login shell:此时shell不会读取/etc/profile和~/.bash_profile,而是读取~/.bashrc来应用新的环境变量。

.bash_profile:

这里使用了一个小技巧:在 “~/.bash_profile” 脚本中再次以非登录方式执行一次 bash , 可以保证用户无论是登陆还是非登录方式都会执行 “~/.bashrc” 文件,保证设置的环境是一致的。

使用 exec 命令调用 bash ,防止 bash 递归调用,使用 env 命令是为了给非登录方式启动的 bash 设置几个环境变量


.bashrc:

set +h设置 bash 不开启 hash 功能

umash 022 表示新建目录默认权限为 “0755” , 新建文件权限为 “0644”

LC_ALL=POSIX设置语言环境为POSIX,使软件信息符合POSIX标准

PATH=/tools/bin:/bin:/usr/bin设置命令的搜索路径 

注:

这里面最重要的就是PATH这个参数,目的是为了能够利用工具链里面的工具制作工具链:首先查找/tools/bin下是否有需要的命令,如果没有再到/bin和/usr/bin下找,然后用/bin或/usr/bin下面的命令来帮助生成需要的命令并放在/tools/bin下,这样此消彼涨,最终可完成一个自给自足的工具链。


source ~/.bash_profile应用用户环境设置


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值