构建 LFS:在图形 shell 上使用 make 时出现分段错误
Building LFS: Segmentation fault with make on a graphical shell
我正在按照书中的步骤构建 LFS 系统(7.6 版,但我认为问题与特定版本无关)。在构建工具链(第 5 章)之后,我现在要构建正确的系统(第 6 章)。
但事情是这样的:当我尝试从图形 shell 构建任何包时(在我的例子中是 Lubuntu 桌面环境中的 LXTerminal),我可以解压源代码并使用 ./configure 配置构建,但是在发出 'make' 命令时,我得到一个 Segmentation fault
。如果我从文本终端发出相同的命令(例如按 Crtl+F2),它会完美运行。
在这两种情况下:
- 作为 root,我按照第 6.2.2 章安装了虚拟内核文件系统
和 6.2.3
- 作为root,我按照书中的说明切换到chroot环境
说明
这让我百思不得其解,因为SSH连接当然也会失败,这才是我真正想做的。
谁能告诉我为什么这两个终端的行为不同?
(作为最后的说明,我尝试使用 su 从我的非 root 用户 ("login shell") 切换到 root 用户 - 并且还以 root 身份完全登录到 GUI)
经过一番认真的谷歌搜索后,我明白了。
图形终端(在图形 shell 上 windows 的终端)和 SSH 会话的共同点是它们使用伪终端 (PTY) 而不是传统终端 ( TTY)。所以我专注于安装实现这些伪终端的虚拟文件系统 devpts。然后我找到 this 答案并尝试绑定挂载 /dev/pts 而不是像书上说的那样做标准挂载:
mount --bind /dev/pts "$CHROOT/dev/pts"
而且成功了!不再出现段错误。
我正在按照书中的步骤构建 LFS 系统(7.6 版,但我认为问题与特定版本无关)。在构建工具链(第 5 章)之后,我现在要构建正确的系统(第 6 章)。
但事情是这样的:当我尝试从图形 shell 构建任何包时(在我的例子中是 Lubuntu 桌面环境中的 LXTerminal),我可以解压源代码并使用 ./configure 配置构建,但是在发出 'make' 命令时,我得到一个 Segmentation fault
。如果我从文本终端发出相同的命令(例如按 Crtl+F2),它会完美运行。
在这两种情况下:
- 作为 root,我按照第 6.2.2 章安装了虚拟内核文件系统 和 6.2.3
- 作为root,我按照书中的说明切换到chroot环境 说明
这让我百思不得其解,因为SSH连接当然也会失败,这才是我真正想做的。
谁能告诉我为什么这两个终端的行为不同?
(作为最后的说明,我尝试使用 su 从我的非 root 用户 ("login shell") 切换到 root 用户 - 并且还以 root 身份完全登录到 GUI)
经过一番认真的谷歌搜索后,我明白了。
图形终端(在图形 shell 上 windows 的终端)和 SSH 会话的共同点是它们使用伪终端 (PTY) 而不是传统终端 ( TTY)。所以我专注于安装实现这些伪终端的虚拟文件系统 devpts。然后我找到 this 答案并尝试绑定挂载 /dev/pts 而不是像书上说的那样做标准挂载:
mount --bind /dev/pts "$CHROOT/dev/pts"
而且成功了!不再出现段错误。