저는 리눅스 민트 17을 사용하고 있습니다. 소스에서 Python 3.4.2를 컴파일하고 싶습니다. ./configure 명령 중에는 오류가 발생할 때까지 모든 것이 원활하게 진행됩니다.
configure: creating ./config.status
./config.status: line 476: syntax error near unexpected token `)'
./config.status: line 476: ` *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;'
이 문제가 발생한 것은 이번이 처음이 아닙니다. 이 문제는 소스 코드에서 소프트웨어를 컴파일할 때 발생합니다.
편집하다:cat -n config.status sed '463,505!d' 명령의 출력을 추가합니다.
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
$as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
답변1
표준 데비안 기반 패키지 관리자인 Mint를 사용하지 않는 이유가 있나요? 직접 컴파일하는 것은 권장되지 않습니다.
이는 주로 다음과 같은 이유로 발생합니다.
- 일부 종속성이 누락되었습니다. 이는 "./configure" 단계에서 오류로 표시됩니다.
- 오래된 컴파일러가 있거나 컴파일러가 컴파일 중인 패키지의 요구 사항을 충족하지 않을 수 있습니다. 이 경우 컴파일러를
gcc
최신 버전으로 업데이트해야 합니다. 가능하다면 업데이트를 위해 Debian 기반 패키지 관리자를 사용하는 것이 좋습니다gcc
.
또한 패키지 관리자를 사용하여 시스템을 정기적으로 업데이트해야 합니다. 직접 컴파일하고 설치해야 하는 경우 일반 사용자로 발급 ./configure
하고 루트 권한(즉, 소스 디렉터리에서)으로만 사용하세요.make
make install
sudo make install