우분투 captoinfo 완벽 가이드: termcap을 terminfo로 변환하는 법

개요

리눅스 환경에서 구형 터미널 설정인 termcap을 최신 terminfo 형식으로 변환할 때 captoinfo 명령어를 활용합니다. 본 글에서는 Ubuntu에서 captoinfo를 설치하고 샘플 파일을 통해 직접 변환해 보며 출력 결과를 정확하게 읽는 방법을 알아봅니다. 터미널 데이터베이스의 구조와 출력 옵션 분석을 통해 터미널 호환성 문제를 깔끔하게 해결할 수 있습니다.

1. captoinfo 패키지 설치 및 현재 터미널 환경 확인

captoinfo 도구 실습을 위해 관련 유틸리티가 포함된 ncurses-bin 패키지를 설치합니다.

sudo apt-get update -qq && sudo apt-get install -y ncurses-bin

현재 시스템에 설정된 터미널 유형 변수를 확인하기 위해 echo $TERM 명령어를 실행합니다.
출력된 dumb는 고급 화면 제어 기능이 없는 기본 터미널 환경을 의미합니다.

echo $TERM

which captoinfo 명령어를 실행하여 captoinfo 실행 파일이 시스템에 정상적으로 설치되었는지 확인하고 해당 경로를 출력합니다.
captoinfo는 과거에 사용되던 termcap 터미널 설정 파일을 현대적인 terminfo 형식으로 변환해 주는 도구입니다.
⚙️ [주요 옵션]

-v : 변환 진행 상황과 세부 정보를 자세히 출력합니다.
-V : 프로그램의 버전 정보를 출력합니다.
-1 : 한 줄에 하나의 항목(capability)만 출력하도록 서식을 정리합니다.
-w : 출력 결과물의 한 줄 최대 너비(컬럼 수)를 지정합니다.
-f : 복잡한 조건부 매크로 문자열을 읽기 쉽게 정렬하여 서식화합니다.

which captoinfo

2. 샘플 termcap 파일 생성 및 기본 변환 실행

captoinfo 변환 실습을 진행하기 위해 테스트용 레거시 termcap 파일인 sample.termcap을 생성하는 명령어를 실행합니다.

![printf ‘sampleterm|Custom test terminal:\n\t:co#80:li#24:am:cl=\E[H\EJ:\n’ > ~/sample.termcap

생성된 샘플 파일의 구성을 확인하기 위해 cat ~/sample.termcap 명령어를 실행합니다.
출력 결과에서 콜론(:) 구분자와 함께 화면 크기(co#80, li#24), 자동 줄바꿈(am), 화면 지우기 제어 코드(cl) 등 레거시 termcap 문법의 속성들이 정상적으로 입력된 것을 확인할 수 있습니다.

cat ~/sample.termcap

captoinfo ~/sample.termcap 명령어를 실행하여 레거시 termcap 설정을 최신 terminfo 형식으로 변환합니다.
항목 구분자가 콜론(:)에서 쉼표(,)로 바뀌고, co와 li 같은 2글자 축약 코드가 cols#80, lines#24처럼 표준 terminfo 명칭으로 매핑되어 출력된 것을 확인할 수 있습니다.

captoinfo ~/sample.termcap

3. 상세 디버그 옵션과 출력 너비 조절(-v, -w)

captoinfo -v ~/sample.termcap 명령어를 실행하여 변환 과정의 상세 정보와 함께 terminfo 형식으로 변환합니다.
-v 옵션을 사용하면 변환 진행 상황과 함께 처리된 터미널 기능(capability) 항목들의 상세 내역을 확인할 수 있습니다.

captoinfo -v ~/sample.termcap

captoinfo -w 60 ~/sample.termcap 명령어를 실행하여 변환 결과물의 한 줄 최대 출력 너비를 60컬럼으로 제한합니다.
-w 옵션을 지정하면 긴 속성 목록이 설정한 너비에 맞춰 줄바꿈 처리되어 좁은 화면에서도 가독성 있게 결과를 확인할 수 있습니다.

captoinfo -w 60 ~/sample.termcap

4. 변환 결과 저장 및 terminfo 컴파일 검증(tic 연계)

captoinfo ~/sample.termcap > ~/sample.terminfo 명령어를 실행하여 termcap을 변환한 terminfo 결과물을 파일로 저장합니다.
표준 출력을 리다이렉션(>)하여 파일로 저장하면 이후 컴파일 작업이나 터미널 설정 파일 관리에 손쉽게 활용할 수 있습니다.

captoinfo ~/sample.termcap > ~/sample.terminfo

변환된 terminfo 파일의 문법 오류 여부를 검증하기 위해 tic -c ~/sample.terminfo 명령어를 실행합니다.
-c 옵션은 실제 터미널 데이터베이스에 기록하지 않고 구문 유효성만 확인하며, 아무런 오류 메시지가 출력되지 않는다면 정상 규격으로 변환되었음을 의미합니다.

tic -c ~/sample.terminfo

변환 결과의 형식과 기존 시스템 터미널 정의를 비교해 보기 위해 infocmp -1 xterm-256color | head -n 15 명령어를 실행합니다.
infocmp 도구를 통해 확인한 xterm-256color 터미널 설정 역시 앞서 captoinfo로 변환한 파일과 동일한 표준 terminfo 속성 구조로 이루어져 있음을 확인할 수 있습니다.

infocmp -1 xterm-256color | head -n 15

지금까지 우분투 환경에서 captoinfo 명령어를 활용해 구형 termcap 설정을 terminfo 형식으로 변환하는 방법을 자세히 살펴보았습니다.
레거시 터미널 정의 파일을 최신 시스템에 맞춰 손쉽게 마이그레이션하고 터미널 호환성을 원활하게 유지해 보시기 바랍니다.