chroot 中的 TERM 变量

chroot 中的 TERM 变量

我在 jailkit 的帮助下创建了一个 chroot,现在我正在尝试安装一些其他库和工具。

首先我尝试安装clear库。我已从文件夹复制文件/bin并将依赖项复制到 chroot。然而,当我输入clear命令时,它说:

未设置 TERM 环境变量。

因此,当我以 root 身份登录时, 的TERM值为xterm-256color。但是当我输入时export TERM=xterm-256color,它说未知的终端类型。

我应该怎么办?

答案1

clear取决于 terminfo。 terminfo 使用 的值$TERM作为键在其数据库中查找适合您的终端的转义序列。您需要复制您希望在 chroot 中支持的终端类型的 terminfo 数据库文件。您会在/lib/terminfo或中找到它们/usr/share/terminfo。如果未找到这些文件,terminfo 无法执行任何操作,只能告诉您它无法识别您的终端类型。

答案2

您可能想在 chroot 中安装 shell。

此外,debian 有一个非常有用的工具,用于使用 debian 系统填充 chroot,请参阅 debbootstrap 的手册页了解更多信息。

答案3

来自的一个好建议Gentoo 替代安装文档: 而不是chroot /your/chroot/path /bin/bash运行

chroot /your/chroot/path /bin/env -i TERM=$TERM /bin/bash

env -i将清理环境(chroot 环境可能不同甚至不兼容),同时将使TERM=$TERMedchroot知道bashTERM变量($TERM在执行命令之前由父 shell 扩展)。

相关内容