2017-01-20 8 views
0

원래 사용자 홈 디렉토리에 ncurses6이 설치되었으므로 "/ home/test"라고 가정 해 봅니다. 따라서이 ncurses 경로에 테스트 환경이 구축되었으므로 (개발 중) 응용 프로그램은 컴파일되었으며 현재 HOME ENV 변수에만 의존하여 현재 작업 중입니다.컴파일/설치 후 ncurses 6 "terminfo-dirs"변경

그러나 우리가 통제 할 수없는 목적 때문에 사용자 홈 디렉토리를 변경해야합니다. 그리고 이제는 "/ home/test"와 다른 점이 있습니다. 사용자 홈을 변경 한 후,

LD_LIBRARY_PATH=~/bin/ncurses-6.0/lib ~/bin/ncurses-6.0/bin/tic 

하지만를 지금 :

외부 응용 프로그램과의 ncurses 도구는 여전히 우리가 ncurses의 도구에 대해 이전에 사용처럼 우리가 필요로하는 단지 LD_LIBRARY_PATH와 라이브러리를 지적하고보다 구체적인 경로를 사용하여 작업 컴파일 및 ncurses를 다시 설치하지 않고 terminfo 데이터베이스 경로가 영구적으로 어떤 방법이,

TERMINFO=~/bin/ncurses-6.0/share/terminfo LD_LIBRARY_PATH=~/bin/ncurses-6.0/lib ~/bin/ncurses-6.0/bin/tic 

그러나 : DIR, 우리는 또한 terminfo 데이터베이스를 가리 키도록해야합니까? 컴파일하는 동안 ncurses에 어려운 코드가 있습니까?

답변

0

기본값은 컴파일되어 있습니다. 환경 변수를 무시할 수 있습니다 (TERMINFO 표준, TERMINFO_DIRS은 확장입니다). 그것은 ncurses6 (ncurses4, 20 년 전)보다 새로운 것은 아닙니다.

실용적인 "영구적 인"변경은 쉘 초기화에 우선 적용을 설정하는 것입니다.

ELF 바이너리 (체크섬이 없음)를 수정할 수는 있지만 결과 경로는 길어질 수 없습니다. 문자열이 null로 끝나기 때문에 일 수 있습니다. 당신의 예제가 경로에 추가되기 때문에, 그것은 당신을 위해, 어쨌든 작동하지 않을 것입니다.