포트를 만드는데 오류가 있어서 makefile을 확인해보니 문제가 있는 라인을 발견했습니다.
문제는 Python_Rel 변수를 변경하는 방법을 모르기 때문에 어떻게 고쳐야 할지 모르겠다는 것입니다.
위치는 어디이며 변경하는 방법은 무엇입니까?
답변1
이는 make 프로그램이 읽은 포함 파일에 정의됩니다. 예를 들어 포트 makefile 끝에 다음 줄이 있습니다.
.include <bsd.port.mk>
내 FreeBSD 10 시스템에서 포함 파일은 다음 위치에 있으며 /usr/ports/Mk
다음 grep
과 일치하는 항목이 있습니다.
$ fgrep -n PYTHON_REL *
bsd.python.mk:70:# PYTHON_REL - Version number in numerical format, to ease
bsd.python.mk:353:PYTHON_REL= 341
bsd.python.mk:364:PYTHON_REL= 335
bsd.python.mk:375:PYTHON_REL= 325
bsd.python.mk:386:PYTHON_REL= 278
bsd.python.mk:394:PYTHON_REL!= ${PYTHON_CMD} -c 'import sys; h = "%x" % sys.hexversion; \
bsd.python.mk:505: defined(PYTHON_REL)
bsd.python.mk:553:.if ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)
bsd.python.mk:569:.endif # ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)
조건부로 포함 됩니다 bsd.python.mk
( grep
당신의 친구입니다):
$ fgrep -n bsd.python.mk *
bsd.port.mk:398:# Implies inclusion of bsd.python.mk. (Also see
bsd.port.mk:1446:.include "${PORTSDIR}/Mk/bsd.python.mk"
bsd.port.mk:1893:.include "${PORTSDIR}/Mk/bsd.python.mk"
bsd.python.mk:4:# $FreeBSD: head/Mk/bsd.python.mk 362364 2014-07-20 19:47:45Z antoine $
bsd.python.mk:9:Python_Pre_Include= bsd.python.mk
bsd.python.mk:630:Python_Post_Include= bsd.python.mk
bsd.wx.mk:11:# variables (e.g. USE_PYTHON) are defined before it (this is a bsd.python.mk
파일의 코멘트는 다음과 같습니다
# USE_PYTHON - If set, this port relies on the Python language.
# Implies inclusion of bsd.python.mk. (Also see
# that file for more information on USE_PYTHON_*
# and USE_PYDISTUTILS).
그리고 그것사용다음과 같은 설정:
.if defined(USE_PYTHON) || defined(USE_PYTHON_BUILD) || defined(USE_PYTHON_RUN)
.include "${PORTSDIR}/Mk/bsd.python.mk"
.endif
따라서 짧은 대답은 포트 makefile에 정의가 포함된 파일에 필요한 설정 중 하나가 누락되어 있다는 것입니다 PYTHON_REL
.
USE_PYTHON = yes
README
포트 트리 상단에는 세부 정보를 찾을 수 있는 위치를 보여주는 멋진 문서가 있습니다.
포트 작업을 할 때 변경 사항을 추적하고 싶을 수도 있습니다. 예를 들어,bsd.python.mk
추후 업데이트 내용을 바탕으로FreeBSD 포트-위키:
bsd.python.mk를 소비자 포트 사용 및 포트 트리별 .mk 파일로 분할합니다(20140809: r364450 커밋)
변수 PYTHON_REL
는 해당 커밋 이후 더 이상 정의되지 않으므로 더 이상 사용되지 않는 것으로 간주됩니다(참조문서).
포트에 중요한 경우 다음과 같이 변수를 구성할 수 있습니다.
PYTHON_REL = ${PYTHON3_DEFAULT:S/.//}