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

799
Parthian Shot

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

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

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

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

  • Почему это не происходит изнутри сеанса экрана? Прежде чем я войду в контейнер, $ TERM является 'screen.linux', но clearработает нормально, и
  • Если это как-то связано с базой данных terminfo, как я могу это исправить, чтобы этого не произошло (и мне не нужно никуда менять TERM)?
0
Вам нужно запустить соответствующую интерактивную оболочку после ввода vzctl, и для этого есть несколько способов: `su -` или`. .bashrc` или `. .bash_profile` Alec Istomin 7 лет назад 0

2 ответа на вопрос

1
Thomas Dickey

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

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

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

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

+1, потому что я не понимал, `vzctl enter` не является" правильным "способом получить корневую оболочку на CT. Parthian Shot 8 лет назад 0
1
wurtel

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