나는 ncurses의 terminfo 데이터베이스가 /usr/share/terminfo
약 7MB라는 것을 알았습니다(직접 컴파일했습니다). 64MB의 디스크 공간이 있는 임베디드 Linux에 배포하려는 경우 이는 너무 큽니다.
불필요한 항목을 제거하고 가장 많이 사용되는 항목을 유지하여 크기를 줄이는 방법이 있습니까? 이것이 실제로 무엇을 하는가?
편집하다: 일반 PC나 SSH 클라이언트에서 일반적으로 사용되는 terminfo에 대한 정보나 참고 자료가 있나요?
답변1
ansi, cygwin, linux, vt100, vt220 및 xterm terminfo 정의를 사용하면 실제로 접하게 되는 터미널 에뮬레이션의 98%를 달성할 수 있기를 바랍니다.
다양한 기본 모드를 사용하는 터미널 에뮬레이터라도 일반적으로 사용자 개입 없이 vt100/vt220 모드를 에뮬레이트하기 위해 부팅될 수 있습니다.
답변2
소규모 terminfo 데이터베이스를 구축하는 일반적인 방법은 항목을 삭제하는 것이 아니라 필요한 부분만 구축하는 것입니다.
- ncurses FAQterminfo 데이터베이스는 엄청납니다. 모두 필요합니까?사용된 예제 스크립트 표시
tic
상당한 양의 데이터에서 설명을 추출하기 위한 옵션용어 정보.src문서. - 이 접근 방식은 또한 시행착오 프로세스가 될 수 있는 빌딩 블록 추출에 의존합니다. 또는 다음 출력을 사용할 수 있습니다.
infocmp
, 덜 우아하지만 전체 항목을 얻으십시오. - 일부 응용 프로그램은뒤로 물러나다ncurses에 대한 항목으로 컴파일될 수 있습니다(따라서 별도의 파일이 필요하지 않음). 다시 말하지만, 이것은 ncurses FAQ에서 가져온 것입니다.terminfo 데이터베이스가 정말로 필요합니까?, 사용정보 CMP옵션.
답변3
RTFM 유형의 답변을 제공하고 싶지 않지만 포함되지 않은 정보 중 어떤 정보를 찾고 계십니까 man 5 terminfo
? 서로 다른 섹션에 여러 개의 매뉴얼 페이지가 있는 경우 매뉴얼 페이지를 무시하기 쉬운 경우가 많습니다. 일반적으로 살펴볼 다른 매뉴얼 페이지는 발견된 첫 번째 매뉴얼 페이지의 하단에 나열되어 있지만 매뉴얼 페이지는 (참고자료의 man man
) 섹션으로 나누어져 있다는 점을 기억하는 것도 도움이 됩니다.
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
/usr/share/terminfo에서 삭제할 수 있는 정도 는 man 5 terminfo
터미널 유형에 대한 완전한 제어권이 있는지 여부에 따라 달라집니다(아마도 그렇게 할 것입니다). 하나의 터미널 유형에서만 실행된다는 것을 알고 있는 경우 터미널 설명 중 하나만 제외하고 모두 제거할 수 있습니다. 일부 시스템에서는 이러한 terminfo 파일이 /etc/terminfo/ 또는 /lib/terminfo/에도 있지만 업스트림 tarball에서 직접 컴파일할 때 이것이 맞는지는 확실하지 않습니다.