zl程序教程

您现在的位置是:首页 >  系统

当前栏目

《Linux From Scratch》第二部分:准备构建 第四章:最后的准备- 4.4. 设置环境

Linux 环境 设置 构建 部分 from 准备 最后
2023-09-27 14:28:46 时间

通过为 bash shell 创建两个开机启动的文件设置好工作环境。当以 lfs 用户身份登录时,运行以下命令创建一个新的 .bash_profile 文件:

cat ~/.bash_profile "EOF"

exec env -i HOME=$HOME TERM=$TERM PS1=\u:\w\$  /bin/bash

当以 lfs 用户身份登录时,初始 shell 通常是一个可登录的 shell,它先读取宿主机的 /etc/profile 文件(很可能包括一些设置和环境变量),然后是 .bash_profile 文件。.bash_profile 文件中的 exec env -i.../bin/bash 命令用一个除了 HOME、TERM 和 PS1 变量,完全空环境的 shell 代替运行中的 shell。这可以确保没有不必要的或者有潜在风险的环境变量从宿主机系统中泄露到构建环境。这里使用的技巧是为了有一个干净环境。

新的 shell 实例是一个非登录 shell,不会读取 /etc/profile 或者 .bash_profile 文件,而是读取 .bashrc 文件。 现在创建 .bashrc 文件:

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

set +h 命令关闭了 bash 的哈希功能。 哈希通常是一个有用的功能,bash 用一个哈希表来记录可执行文件的完整路径,以避免搜索 PATH 的时间和又找到一个相同的可执行文件。然而,新工具要一安装后就使用。通过关闭哈希功能,一个程序准备运行时 shell 总是会搜索 PATH 变量。如此,shell 能在新编译的工具可用时马上在文件夹 $LFS/tools 中找到,而不是记录相同程序在其它地方的之前版本。

设置用户文件新建掩码(umask)为 022 ,确保新建的文件和目录只有它们自己的所有者可写,任何人都可读和可执行(假定 open(2) 系统调用使用的默认模式是新文件使用 644 模式,文件夹使用 755 模式)。

LFS 变量应该设置为选定的挂载点。

LC_ALL 变量控制特定程序的本地化,使得它们的消息能遵循特定国家的惯例。设置 LC_ALL 为 “POSIX” 或 “C”(两者是等价的),确保 chroot 环境中一切如期望的那样进行。

当编译我们的交叉编译器和链接器以及交叉编译我们的临时工具链时,LFS_TGT变量设置了一个非默认,但兼容的机器说明。5.2,“工具链技术说明”包含更多的信息。

把 /tools/bin 放在标准的 PATH 变量前面, 第五章中安装的软件一安装完成 shell 就可使用。这和关闭哈希功能一起,降低了在第五章环境中新程序可用时宿主机器使用旧程序的风险。

最后,启用刚才创建的用户配置文件,为编译临时工具完全准备好环境:

source ~/.bash_profile


3、惊奇,竟然可以在ChatGPT的GPT-4模型让它扮演Linux服务器 搭建K8s和docker环境 ChatGPT能帮我们解决的问题已经够多了,这里我就不一一列举了,因为大家都知道,但是今早竟然发现这么一个神奇的功能。可以让它扮演linux服务器,搭建测试环境,那么学习linux这玩意简直太省事了,不过目前好像只有GPT-4模型才支持这种玩法。
【Linux】三、Linux 环境基础及开发工具使用(下篇) 六、Linux 软件包管理器 yum 6.1 前言 6.2 什么是软件包 6.3 查看软件包 6.4 如何安装软件 6.5 如何卸载软件 6.6 yum 源 6.7 一些好玩的命令七、Linux第一个小程序-进度条 7.1 \r&&\n 7.2 行缓冲区概念 7.3 进度条代码 八、Linux 使用 git 命令行 8.1 版本控制 8.2 git 的历史 8.3 git 安装 8.4 克隆远程仓库到本地 8.5 git 三板斧8.51 三板斧第一招: git add 8.52 三板斧第二招: git commit 8.53 三板斧第三招: g
【Linux】三、Linux 环境基础及开发工具使用(上篇) 一、开发工具 二、Linux编辑器 - vim使用 2.1 vim 的基本概念 2.2 vim的基本操作 2.3 vim正常模式命令集 2.4 vim末行模式命令集 2.5 简单vim配置 2.5.1 配置文件的位置