^ Linux From Scratch - Version 12.1-systemd ^^^
^ Chapter 8. Installing Basic System Software ^^^
|[[.:085-tcl-8.6.13|이전]] | [[.:08-installing_basic_system_software|위로]] / [[.:12.1|처음으로]] | [[.:087-dejagnu-1.6.3|다음]]|
|Tcl-8.6.3 | DejaGNU-1.6.3|
----
===== 8.16. Expect-5.45.4 =====
Expect 패키지에는 스크립트 대화문를 통해 **telnet**, **ftp**, **passwd**, **fsck**, **rlogin**, **tip**과 같은 대화형 애플리케이션을 자동화하기 위한 도구가 포함되어 있습니다. Expect는 이러한 애플리케이션을 테스트하는 데도 유용하며, 다른 어떤 것으로도 엄청나게 어려운 모든 종류의 작업을 쉽게 처리할 수 있습니다. DejaGnu 프레임워크는 Expect로 작성되었습니다.
* **빌드 시간:** 0.2 SBU
* **디스크 공간:** 3.9 MB
----
==== 8.16.1. Expect 설치 ====
Expect가 작동하려면 PTY가 필요합니다. 간단한 테스트를 수행하여 PTY가 chroot 환경 내에서 제대로 작동하는지 확인합니다.
python3 -c 'from pty import spawn; spawn(["echo", "ok"])'
이 명령은 ''ok''가 출력되어야 합니다. 만약 출력에 ''OSError: out of pty devices''가 포함된다면 PTY 작동을 위한 환경이 설정되지 않은 것입니다. 루트 환경을 종료하고 [[.:060-preparing_virtual_kernel_file_systems#7.3. 가상 커널 파일 시스템 준비하기|섹션 7.3, "가상 커널 파일 시스템 준비하기"]]를 다시 읽고 devpts 파일 시스템(및 기타 가상 커널 파일 시스템)이 올바르게 마운트되었는지 확인해야 합니다. 그런 다음 [[.:061-entering_the_chroot_environment#7.4. 루트 환경으로 들어가기|섹션 7.4, "루트 환경으로 들어가기"]]에 따라 chroot 환경으로 다시 들어갑니다. 계속하기 전에 이 문제를 해결하지 않으면 Expect가 필요한 테스트 스위트(예: Bash, Binutils, GCC, GDBM은 물론 Expect 자체의 테스트 스위트)가 치명적으로 실패하고 다른 미묘한 손상도 발생할 수 있습니다.
Expect 컴파일를 준비합니다.
./configure --prefix=/usr \
--with-tcl=/usr/lib \
--enable-shared \
--mandir=/usr/share/man \
--with-tclinclude=/usr/include
=== configure 옵션의 의미: ===
* //--with-tcl=/usr/lib// \\ tclConfig.sh 스크립트의 위치를 알려주는 데 필요합니다.
* //--with-tclinclude=/usr/include// \\ 명시적으로 Expect에 Tcl의 내부 헤더를 찾을 위치를 알려줍니다.
패키지를 빌드합니다.
make
결과를 테스트하려면
make test
패키지를 설치합니다.
make install
ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
----
==== 8.16.2. Expect 패키지 구성 ====
* **설치한 프로그램** \\ expect
* **설치한 라이브러리** \\ libexpect5.45.4.so
=== 간략한 설명===
* **expect** \\ 스크립트에 따라 다른 대화형 프로그램과 통신합니다.
* libexpect-5.45.4.so \\ Expect를 Tcl의 확장으로 사용하거나 C 또는 C++에서 Tcl없이 직접 사용할 수 있도록 하는 함수를 포함합니다.