Когда я бегу clear , что я получаю:

'screen.linux': неизвестный тип терминала

Я получаю это сообщение об ошибке, когда на компьютере Debian 7, на котором запущено ядро OpenVZ, из экранной сессии я vzctl enter в контейнер Debian 8.

Теперь я знаю, что могу просто исправить это, изменив $ TERM с 'screen.linux' на 'linux'. Это не мой вопрос. Мой вопрос двоякий:

  • Почему это не происходит изнутри сеанса экрана? Прежде чем я войду в контейнер, $ TERM это 'screen.linux', но clear работает нормально, и
  • Если это как-то связано с базой данных terminfo, как я могу это исправить, чтобы этого не произошло (и мне не нужно никуда менять TERM)?

2 ответа2

1

Чтение руководства vzctl в контексте вашего вопроса:

enter CTID [ --exec команда [аргумент ...]]

Входит в контейнер (давая корневую оболочку контейнера). Эта опция является задним ходом только для корневого узла. Правильный способ получить корневую оболочку CT - использовать ssh (1).

звучит так, как будто речь идет о chroot, который заставит оболочку видеть только предоставленные файлы. Скорее всего, контейнер не имеет полной базы данных терминала. У него может быть утилита infocmp , которая сначала печатает путь к записи в комментарии (что делает ее полезной для проверки отсутствия в базе данных терминала таких вещей, как screen.linux).

1

Вы можете установить пакет ncurses-term , который добавляет множество дополнительных типов терминалов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .