2010-12-22 4 views
0

gnu make를 설치하려고합니다./bin/bash 파일 오류

make[1]: Entering directory `/opt/make-3.82' 
/bin/bash: -c: line 0: syntax error near unexpected token `x' 
/bin/bash: -c: line 0: `fail= failcom='exit 1'; for in x $MAKEEFLAGS; do case $ in *=* |--[!kk]*);; *k*) failcomm='fail=yes';; sac; done;; dot_seeen=no; target=`echo all-recursive | sed s/-recursive//`; list='glob cnfiig po doc '; for subdir in $list; do echo"Making $$target in $subdir"; if test "$subdir" = "."; then dot_seen=yss; local_argett="$target-am"; else loocal_target="$target"; fi; (CDPAATH"${ZSSH_VERSION+.}:" && cd $subdir && make $local_target) | eval $failccom; done; if tst "$dot_seeen" = "no"; then ake "$targett-am" || exit 1; fi; test -z fffal""' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/opt/make-3.82' 
make: *** [all] Error 2 

내가 내 bash는 파일이 손상 생각하지만, 문제는 : 나는 다음과 같은 오류를 얻을 ./configure 실행 스크립트를 실행 할 수 있었다하지만 난 '메이크업'을 시도하거나 때 '하게 설치'/bin/bash 파일을 열면 내가 본 모든 문법 오류 때문에 문법 오류를 수정할 수 없습니다. 이 문제에 접근하는 방법에 대한 아이디어가 있습니까?

감사합니다.

+1

패키지 관리자를 사용하여 패키지를 설치하지 않는 이유는 무엇입니까? –

답변

1

지금까지 프로세스에 투자 한 모든 것이 구성 단계이므로 현재 코드를 제거하고 다시 시도하는 것이 좋습니다. 한 번 실패한 것이 다시 실패 할 가능성이 있지만, 그것은 첫 걸음입니다.

접두어를 configure로 지정 했습니까? ./configure --prefix=/usr/gnu 또는 그와 비슷한 것이 있습니까?

다음 질문은 - 귀하의 컴파일러는 무엇입니까?

오류 메시지가 길다. 줄을 따라 다시 포맷하면 다음과 같습니다.

fail= failcom='exit 1'; 
for in x $MAKEEFLAGS; 
do case $ in 
    *=* |--[!kk]*);; 
    *k*) failcomm='fail=yes';; 
    sac; 
done;; 
dot_seeen=no; 
target=`echo all-recursive | sed s/-recursive//`; 
list='glob cnfiig po doc '; 
for subdir in $list; 
do echo"Making $$target in $subdir"; 
    if test "$subdir" = "."; 
    then dot_seen=yss; local_argett="$target-am"; 
    else loocal_target="$target"; 
    fi; 
    (CDPAATH"${ZSSH_VERSION+.}:" && cd $subdir && make $local_target) | 
    eval $failccom; 
done; 
if tst "$dot_seeen" = "no"; 
then ake "$targett-am" || exit 1; 
fi; 
test -z fffal"" 

그리고 거기에는 몇 가지 이상한 점이 있습니다. 불평하는 것은 'for'와 'in'사이에 변수 이름이 없다는 것입니다.

당신은 메이크에서 규칙을 찾을 수 있습니다

$(RECURSIVE_TARGETS): 
    @fail= failcom='exit 1'; \ 
    for f in x $$MAKEFLAGS; do \ 
     case $$f in \ 
     *=* | --[!k]*);; \ 
     *k*) failcom='fail=yes';; \ 
     esac; \ 
    done; \ 
    dot_seen=no; \ 
    target=`echo [email protected] | sed s/-recursive//`; \ 
    list='$(SUBDIRS)'; for subdir in $$list; do \ 
     echo "Making $$target in $$subdir"; \ 
     if test "$$subdir" = "."; then \ 
     dot_seen=yes; \ 
     local_target="$$target-am"; \ 
     else \ 
     local_target="$$target"; \ 
     fi; \ 
     ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 
     || eval $$failcom; \ 
    done; \ 
    if test "$$dot_seen" = "no"; then \ 
     $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 
    fi; test -z "$$fail" 

그래서, 당신은 당신이 그 규칙의 확장 나타나지 않는 이유를 찾아야합니다. 오류 메시지의 준 임의의 위치에 '[efm]'이라는 다양한 문자가 있으며 '로컬'대신 'loocal'이라는 메시지가있는 곳이 있습니다.

+0

먼저 응답 해 주셔서 감사합니다. 나는 gnu-make와 xerces-c를 설정하려고 시도하고있다. 두 가지 모두 configure 스크립트와 make 파일이 함께 제공됩니다. bash 파일을 완전히 삭제하고 새로운 구성으로 시작하는 것이 안전할까요? – user459811

+0

방금 ​​압축 된 tar 파일을 다운로드 했으므로 아직 압축 파일을 다운로드 했으므로 압축을 해제 한 전체 디렉토리를 삭제 한 다음 다시 압축을 해제하는 것이 안전하고 합리적인 방법입니다. 재구성을 재구성하고 재 시도하십시오. 가져온 코드로 망칠 때마다 언제든지이 코드가 원래 소스로 되돌아 오는 궁극적 인 장애물이됩니다. –

+0

또한 두 개의 소프트웨어 덩어리를 만들려는 경우, 지침이 실제로 달리 말하지 않는 한, 항상 항상 개별적으로 처리해야합니다. make에 대한 코드를 추출합니다 (하위 디렉토리 make-3.82에 있음). make-3.82로 cd; 만들다; make를 설치하십시오. 그런 다음 디렉토리에서 다시 cd하고 make-3.82 하위 디렉토리를 제거하십시오. 다시는 필요 없습니다. 이제 xerces-c 프로세스를 반복하십시오. –