그래서 저는 현재 ARMv7 프로세서의 소스와 Snapdragon S4의 Krait에서 Perl 버전 5.18.2를 구축하고 있는데 이 아키텍처에 대해 얼마나 많은 지원이 있는지 잘 모르겠습니다. 그런데 저는 LFS 시스템을 구축하려고 합니다. 문제는 제가 이틀 동안 Perl을 사용하지 못했다는 것입니다. CFLAGS를 사용하고 CFLAGS를 사용하지 않고 Debian 소스 버전 5.16 및 5.18을 사용하는 루트와 같은 다른 사용자를 시도했지만 항상 특정 빌드 단계에서 멈췄습니다.
그래서 마지막으로 나는 그 메시지에 주의를 기울이기로 결정했습니다.
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command. <==
또는 그런 것.
그래서 for 루프를 조금 만들었습니다.
RET=$?; for i in `seq 10`; do if [ ! $RET -eq 0 ]; then echo " \
RETURN ${i} == ${RET} \
" && make; RET=$?; fi; done
...시퀀스 3부터 시작했고 각 시퀀스 이후에는 확실히 충분했습니다.~인 것 같다건설에 따른 진행. 즉, 여러 단계에서 실패하고 로그를 확인하면 실패한 마지막 단계가 성공한 것을 볼 수 있으며 동일한 메시지가 표시됩니다.
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command. <==
CPAN의 빌드 지침을 살펴봤지만 이 과정을 거쳐야 한다는 내용이나 참조를 찾을 수 없었기 때문에 질문이 필요합니다.
이것은 일종의 내부 농담인가요, 아니면 제가 뭔가 잘못하고 있는 건가요?
답변1
좋아, 그래서 나는 이 메시지가 나에게 옳은 일을 하라고 말하고 있다고 생각했다. 비록 make를 50번 이상(아마 100번 이상) 입력하라는 메시지가 실행 가능해 보이지는 않았지만, 그래서 잠들기 전에 다음과 같은 작은 while 루프를 작성했다.
RET=$?; while [ ! $RET -eq 0 ]; do echo " \
RETURN == ${RET} \
"; make; RET=$?; done
실행되도록 놔두세요. 저는 Ctrl+z
잠을 잘 때 작동을 멈추고 fg 1
이것이 제 유일한 직업이기 때문에 종종 정오 이후에 다시 시작하도록 이렇게 합니다. 다른 사람들에게는 다를 수 있습니다. jobs
자세한 내용을 알아보고 주문하십시오.fg
bg
나는 이것이 무한 루프일 수 있다는 것을 알고 있지만 그것을 사용하여 그것을 죽일 수도 있었습니다 Ctrl-c
. 항상 2를 반환하는 것 같으므로 테스트하는 것이 while [ $RET -eq 2 ]; do
더 이상적일 수 있습니다.
놀랍게도 다음 메시지와 함께 0이 반환되었습니다.
make[1]: Leaving directory '/home/lfs/sources/perl/perl-5.18.2/x2p'
Everything is up to date. Type 'make test' to run test suite.
이제 계속해서 처음부터 Linux를 배울 것입니다. 빌드를 처음부터 구성할 때 시스템에 있는 모든 메이크파일을 다시 빌드해야 하는 것처럼 보입니다. 따라서 이는 정상적인 동작, 즉 반복 동작 make
이며 모든 것이 "표준" GNU 프로그램처럼 빌드되는 것은 아닙니다.
이것이 미래에 누군가에게 도움이 되기를 바랍니다.
고쳐 쓰다:
테스트 스위트의 결과는 다음과 같습니다.
Failed 10 tests out of 2247, 99.55% okay.
../cpan/CPANPLUS/t/03_CPANPLUS-Internals-Source.t
../cpan/Socket/t/socketpair.t
../cpan/Sys-Syslog/t/syslog.t
../cpan/Time-HiRes/t/alarm.t
../cpan/Time-HiRes/t/clock.t
../cpan/Time-HiRes/t/usleep.t
../dist/ExtUtils-Command/t/cp.t
op/alarm.t
op/sigdispatch.t
op/sleep.t
99.55% 성공, 나쁘지 않습니다.
이것은 "Linux From Scratch" 5장에서 작성된 임시 도구용이고 테스트 스위트가 필요하지 않으며 해당 디렉토리에 일부 라이브러리를 복사하기만 하면 된다고 하므로 /tools
성공적으로 호출하겠습니다.