데비안 man페이지 설정파일 어디 있나요?
제가 데비안 테스트 버전을 쓰는데, 최근에 UTF-8로 개종을 했습니다.
eucKR로 불편한건 마찬가지니.. ^^
뭐 두개가 거의 비슷하게 불편한 점이 있지만,
데비안은 다른 패키지에 비해 utf-8로의 전환이 무지 느리더라구요.
아직도 eucKR이 한국어 기본으로 되어 있는듯한 느낌...
마치 페도라 3정도의 패키지에서 eucKR이 기본인데, 약간 선구적인 사용자가 UTF-8로 전환해서 사용하는 그럼 느낌이랄까요.
하여간 개종을 하니 대부분 잘돌아가는 군요. 다행스럽게도...
근데, man페이지 한글이 좀 말썽이군요.
일단, 기본 mapages-ko을 깔면 eucKR의 gz로 압축되어 있더라구요.
man ls 정도로 한글패키지가 있는 man을 호출할경우에 한글로 보여주는데,
진행되는걸 보면 iconv로 eucKR을 utf-8로 변환을 하더라구요. 마지막에는 less로 짤라서 보여주구요.
변환은 하는데, 문제는 UTF-8로 해놓고, 보면 페이지가 다 깨집니다.
틈틈이 검색을 해보니, 페도라에 있는 man페이지가 UTF-8로 되어 있다고 하길래 페키지를 바꾸어 깔아봤습니다.
그랬더니 컹커러등에서 man:ls 한 결과는 잘 보이더라구요.
근데, 터미널에서 하면 아래와 같은 메세지를 보입니다.
freetem@debian:~$ man ls
Reformatting ls(1), please wait...
/tmp/zmanr8aY68:3: warning: can't find special character `uACBD'
/tmp/zmanr8aY68:3: warning: can't find special character `uB85C'
/tmp/zmanr8aY68:3: warning: can't find special character `uC758'
/tmp/zmanr8aY68:3: warning: can't find special character `uB0B4'
/tmp/zmanr8aY68:3: warning: can't find special character `uC6A9'
/tmp/zmanr8aY68:3: warning: can't find special character `uC744'
/tmp/zmanr8aY68:3: warning: can't find special character `uB098'
결과 --- 한글부분이 쏙빼먹었다.
LS(1) LS(1)
NAME
ls, dir, vdir - .
SYNOPSIS
ls [-abcdfgiklmnpqrstuxABCFGLNQRSUX1] [-w cols] [-T cols] [-I pat-
tern] [--all] [--escape] [--directory] [--inode] [--kilobytes]
[--numeric-uid-gid] [--no-group] [--hide-control-chars] [--reverse]
[--size] [--width=cols] [--tabsize=cols] [--almost-all] [--ignore-
backups] [--classify] [--file-type] [--full-time] [--ignore=pattern]
[--dereference] [--literal] [--quote-name] [--recursive]
[--sort={none,time,size
음.. 생각을 해보니.. 데비안에 man페이지가 설정상에 eucKR로 포멧인것으로 설정되어 있는지라... 아마도 /tmp로 보내는 과정중에 참고하는 문자셋이 eucKR이어서 그런것 아닐까 하는 생각도 들더라구요. 하여간 종합해보면 eucKR로 된 gz포멧의 man페이지를 깔면 eucKR환경에서는 그냥 잘보여준다. UTF-8환경에서는 일단, tmp에 압축을 푼후에 iconv로 문자셋을 변환해서 잘라서 less로 보여준다. 문제는 문자셋변환이 잘 안되서 문자가 깨진다. (한글인경우) UTF-8로 된 gz포멧의 man페이지를 깔면 데비안은 설정상 eucKR로 되어 있어서 tmp에 압축을 풀때에 참고하는 문자셋이 eucKR이라서 문자셋을 없는것으로 판단한다. 문자셋을 잃어먹었으니 변환이고 뭐고.. 그냥 공백으로 나온다. 중요한 질문. ---> 도대체 데비안은 man페이지에 대한 환경설정파일이 어디 있는 겁니까. -_- man:man man --help /usr/share/doc/man 구글링.... 해도 못찾겠습니다.
dpkg -L man-db dpkg -L
dpkg -L man-db
dpkg -L groff-base
해보면 대충 설정파일들의 위치를 알 수 있습니다.
인터넷 검색을 해보니 /etc/manpath.config에서
DEFINE nroff /usr/bin/iconv -feuckr -tutf-8 | /usr/bin/groff -Tutf8 -mandoc
정도로 바꿔주면 된다는 말이 있기는 하는데 안해봐서 되는지는 잘 모르겠습니다.
위에것도 제대로 안되면 /usr/share/doc/groff-base/README.Debian 하고, /etc/groff 에도 UTF-8 관련 설정이 나오는 것은 같은데 한번 자세히 보시기 바랍니다.
답변감사합니다. ^^
음.. 여러가지로 꼬였나 이상하네요.
천천히 생각하면서 한번 시간날때마다 한번 해봐야 겠습니다.
답변감사합니다.
설명대로 해봤는데, iconv 에 적절한 --T옵션이 아닙니다.
라는 에러와 함께, 모든 charset을 빼먹어 버려서 텅빈 화면을 보여주더라구요.
환장하죠. -_-
구글링 해봐도 쉽게 찾을수가 없네요.
/etc/manpath.config에 DEFINE를 넣어주더라도,
man-db의 알고리즘에 따라서 man페이지가 실행되는것 같습니다.
일단, zcat으로 던지고, nroff와 groff로 맞게 문서양식 읽어내면서(mandoc),
그 과정중에 charset변환하고, 다시 less로 잘라서 보여주는 것같더라구요.
근데, 이 과정에 대한 설정파일을 아무리 찾아봐도 어디있는지 모르겠습니다. -_-
왜 자꾸 charset을 빼먹는 건지.
댓글 달기