최근 업그레이드 후 사람이 작동을 멈췄는데 그 이유를 모르겠습니다. 이것은 내 시스템입니다.
# cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
man - 빈 매뉴얼 페이지를 실행하면 다음과 같은 내용이 표시됩니다.
# man ksh
Manual page ksh(1) byte 0/0 (END) (press h for help or q to quit)
누른 후 q
:
man: command exited with status 1: (cd /usr/share/man && /usr/lib/man-db/zsoelim) | (cd /usr/share/man && /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /usr/share/man && preconv -e UTF-8) | (cd /usr/share/man && tbl) | (cd /usr/share/man && nroff -mandoc -rLL=156n -rLT=156n -Tutf8)
strace
stderr에 대한 일부 출력 외에는 아무것도 찾지 못했습니다.
# grep 'write(2' man.trc
10614 write(2, "troff: can't find 'DESC' file\n", 30) = 30
10614 write(2, "troff: fatal error: sorry, I can"..., 44) = 44
10599 write(2, "man: ", 5) = 5
10599 write(2, "command exited with status 1: (c"..., 299) = 299
10599 write(2, "\n", 1) = 1
#
# grep DESC man.trc
10613 openat(AT_FDCWD, "/usr/share/groff/site-font/devutf8/DESC", O_RDONLY) = -1 ENOENT (No such file or directory)
10613 openat(AT_FDCWD, "/usr/share/groff/1.22.4/font/devutf8/DESC", O_RDONLY) = 3
10614 openat(AT_FDCWD, "/usr/share/groff/site-font/devutf8/DESC", O_RDONLY) = -1 ENOENT (No such file or directory)
10614 openat(AT_FDCWD, "/usr/share/groff/1.22.4/font/devutf8/DESC", O_RDONLY) = -1 EACCES (Permission denied)
10614 openat(AT_FDCWD, "/usr/lib/font/devutf8/DESC", O_RDONLY) = -1 ENOENT (No such file or directory)
10614 write(2, "troff: can't find 'DESC' file\n", 30) = 30
/usr/share/groff/1.22.4/font/devutf8/DESC
누구나 읽을 수 있도록 권한을 변경했지만 아무런 차이가 없었습니다.
어떤 아이디어가 있나요?
댓글에 대한 편집자의 답변:
오류 메시지는 파이프라인이 실패하는 것으로 나타남을 보여줍니다.
# man zip
man: command exited with status 1: (cd /usr/share/man && /usr/lib/man-db/zsoelim) |
(cd /usr/share/man && /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) |
(cd /usr/share/man && preconv -e UTF-8) | (cd /usr/share/man && tbl) |
(cd /usr/share/man && nroff -mandoc -rLL=156n -rLT=156n -Tutf8)
수동으로 실행해 보았습니다.
# gunzip -c /usr/share/man/man1/zip.1.gz | /usr/lib/man-db/zsoelim | /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE | preconv -e UTF-8 | tbl | nroff -mandoc -rLL=156n -rLT=156n -Tutf8
올바른 출력을 생성하므로 어떤 문제가 발생하더라도 해당 부분 이전에 발생해야 합니다. 아마도 어딘가에 맨페이지의 압축을 풀고 파이프로 연결해야 할 것 같지만 찾을 수 없습니다.
편집 2:
나는 좀 더 흥미롭게도 조사했습니다.
# grep DESC man.trc
666097 openat(AT_FDCWD, "/usr/share/groff/site-font/devutf8/DESC", O_RDONLY) = -1 ENOENT (No such file or directory)
666097 openat(AT_FDCWD, "/usr/share/groff/1.22.4/font/devutf8/DESC", O_RDONLY) = 3
666098 openat(AT_FDCWD, "/usr/share/groff/site-font/devutf8/DESC", O_RDONLY) = -1 ENOENT (No such file or directory)
666098 openat(AT_FDCWD, "/usr/share/groff/1.22.4/font/devutf8/DESC", O_RDONLY) = -1 EACCES (Permission denied)
666098 openat(AT_FDCWD, "/usr/lib/font/devutf8/DESC", O_RDONLY) = -1 ENOENT (No such file or directory)
666098 write(2, "troff: can't find 'DESC' file\n", 30) = 30
그래서 pid 666097이 그것을 찾아서 /usr/share/groff/1.22.4/font/devutf8/DESC
성공적으로 열었습니다. 그런 다음 pid 666098에서 찾았지만 권한 얻기가 거부되었습니다.
어떻게 이럴 수있어?
답변1
분명히 groff
찾을 수 없었습니다 /usr/share/groff/site-font/devutf8/DESC
. 내가 이해한 바로는 이것이 답변의 일부여야 하므로 groff-base
귀하의 의견이 sudo apt reinstall groff-base
타당한 것 같습니다.
디렉토리가 /usr/share/groff/site-font/devutf8
존재하지 않는 경우 다음과 같을 수 있습니다.
ln -s /usr/share/groff/current/font/devutf8 /usr/share/groff/site-font/devutf8
man
파일 을 찾는 데 도움이 될 것입니다 DESC
.
디렉토리가 존재하지만 포함되지 않은 경우 DESC
디렉토리에서 복사하는 것이 도움이 될 수 있습니다.DESC
/usr/share/groff/current/font/devutf8
있는 경우 DESC
읽을 수 있는지 확인하십시오( 644
).