관리자 권한 없이 zsh 빌드: 터미널 처리 라이브러리를 찾을 수 없습니다.

관리자 권한 없이 zsh 빌드: 터미널 처리 라이브러리를 찾을 수 없습니다.

루트 권한 없이 Linux 시스템에 Zsh를 설치하려고 합니다. 소스 tarball을 다운로드하고 다음을 실행했습니다.

./configure --prefix=<my_installation_path>

하지만 나는 다음과 같은 결과를 얻습니다.

구성: 오류: "시스템에서 터미널 처리 라이브러리를 찾을 수 없습니다. 이것은curses 또는 ncurses라는 라이브러리일 수 있습니다. 시스템 소프트웨어 패키지에 "curses-devel" 또는 "ncurses-devel"이라는 라이브러리를 설치해야 할 수도 있습니다. "

ncurses를 설치합니다:

저는 이 시스템의 루트가 아니기 때문에 ncurses수동으로 다운로드하여 설치했는데(github.com도 사용 ./configure --prefix=<my_installation_path>) 잘 진행되는 것 같았습니다.

그런 다음 다음 경로를 업데이트했습니다.

INSTALLATION_PATH='/path/to/installation'
export PATH=$INSTALLATION_PATH/bin/:$PATH
export LD_LIBRARY_PATH=$INSTALLATION_PATH/lib:$LD_LIBRARY_PATH
export CFLAGS=-I$INSTALLATION_PATH/include

그리고 Zsh를 다시 설치하려고 시도했지만 동일한 ncurses오류가 발생했습니다. 내가 아는 한 위의 경로 변수는 올바른 위치를 가리키고 있으며 이를 쉘에서 확인할 수 있습니다. Zsh가 인식되지 않는 이유는 무엇입니까?ncurses?

답변1

최소한 한 가지가 누락된 것 같습니다. 을 전달하고 있는데 CFLAGS=-I/path/to/installation/include, 이를 통해 컴파일 스크립트가 헤더 파일을 찾을 수 있지만 컴파일 스크립트가 ( )에 대해 링크할 라이브러리를 찾도록 해야 합니다 libncurses.a. 설치 지침 CPPFLAGS에는 CFLAGS.

export CPPFLAGS="-I$INSTALLATION_PATH/include" LDFLAGS="-L$INSTALLATION_PATH/lib"

전체 오류 메시지를 읽고 ./configure더 많은 정보가 포함된 로그를 확인하세요(실행된 명령 및 해당 출력에 대한 자세한 기록이 있음 config.log).configure

답변2

고쳐 쓰다:

Giles의 답변에 따라 업데이트했는데 CPPFLAGSLDFLAGS동안 문제가 사라졌습니다 configure.

그러나 이제 다음 프로세스 중에 오류가 발생합니다 make.

<INSTALLATION_PATH>/lib/libncurses.a: could not read symbols: Bad value
collect2: ld returned 1 exit status

나는 또한 recompile with -fPIC. ​어떻게 해야 하나요?ncursesncurses

업데이트 2:

나는 그것을 다시 다시 컴파일했다 ncurses. 이번에는 다음을 수행했습니다.

  • export CXXFLAGS=" -fPIC"
  • export CFLAGS=" -fPIC"

앞에 가 있고 다음 에 make추가됩니다 . 이것으로 문제가 해결된 것 같습니다!--enable-shared./configurencursesZsh

관련 정보