Я знаю, что этот вопрос задавался уже миллион раз, но ни один из найденных мной ответов не помог мне решить его.
У меня есть root shell, предоставленный sudo bash
. Когда я пытаюсь использовать man
, у меня появляется это сообщение:
WARNING: terminal is not fully functional
- (press RETURN)
и ограниченный контроль над навигацией.
Работает, когда я не root. С root aptitude
работает правильно. Я пробовал export TERM
с: linux
, xterm
, xterm-color
, xterm-256color
, ansi
, screen-256color
, ncurses
, vt100
.
Вывод stty -a
абсолютно одинаков для пользователей root и non-root:
speed 38400 baud; rows 30; columns 271; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
Я застрял.
Есть идеи?
заранее спасибо
решение1
Я решил эту проблему сам, добавив отсутствующий ncurses
пакет, который предоставляет /usr/share/terminfo. Этот пакет, который по какой-то причине ада зависимости пакетов не был установлен, похоже, исправляет это. Хотя в моем случае это произошло как с root
пользователями root, так и с пользователями без прав root, так что это может быть не оно, но я думаю, стоит опубликовать, если кто-то окажется в моей ситуации в будущем и наткнется на этот вопрос в результатах Google.
В CentOS это ncurses-base
.
В Debian 11 (и, вероятно, в Ubuntu) это ncurses-term
.
Если у вас отсутствуют эти пакеты, попробуйте установить их и посмотреть, поможет ли это.
Я обнаружил это, пытаясь сделать это reset
на терминале, и получившийся запрос «Тип терминала?» отклонял все, что я пробовал, например
Terminal type? screen
reset: unknown terminal type screen
Terminal type?
Terminal type? vt100
reset: unknown terminal type vt100
Это заставило меня сравнить его с работающей системой и поискать что-нибудь, включающее имя vt100
. Немного покопавшись в grep -r
результатах, я нашел файлы, /usr/share/terminfo
которых не хватало в «плохой» системе. Вызов rpm -q --whatprovides /usr/share/terminfo/v/vt100
привел меня к имени этого пакета.
решение2
Почти 3 года спустя ChatGPT предоставил мне решение...
# type man
man is aliased to `TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man'
в какой-то момент «man» был привязан к фиктивной строке... это объясняет, почему другие пользователи не пострадали...