당신이 배포에 대해 생각하고 있다면포스트그레SQL와이즈 토토 모듈을 위한 휴대용 빌드 시스템을 설정하는 것은 상당히 어려울 수 있습니다. 그러므로포스트그레SQL설치는 와이즈 토토을 위한 빌드 인프라를 제공합니다.PGXS, 이미 설치된 서버에 대해 간단한 와이즈 토토 모듈을 간단히 구축할 수 있습니다.PGXS은 순수 SQL 와이즈 토토에도 사용할 수 있지만 주로 C 코드를 포함하는 와이즈 토토을 위한 것입니다. 참고하세요PGXS인터페이스하는 소프트웨어를 빌드하는 데 사용할 수 있는 범용 빌드 시스템 프레임워크가 아닙니다.포스트그레SQL; 단순한 서버 와이즈 토토 모듈에 대한 공통 빌드 규칙을 자동화할 뿐입니다. 더 복잡한 패키지의 경우 자체 빌드 시스템을 작성해야 할 수도 있습니다.
다음을 사용하려면PGXS와이즈 토토을 위한 인프라를 구축하려면 간단한 makefile을 작성해야 합니다. makefile에서 일부 변수를 설정하고 전역 변수를 포함해야 합니다.PGXSmakefile. 다음은라는 와이즈 토토 모듈을 빌드하는 예입니다.isbn_issn, 일부 C 코드, 와이즈 토토 제어 파일, SQL 스크립트, 포함 파일(다른 모듈이 SQL을 통하지 않고 와이즈 토토 기능에 액세스해야 하는 경우에만 필요함) 및 문서 텍스트 파일을 포함하는 공유 라이브러리로 구성됩니다.
모듈 = isbn_issn 와이즈 토토 = isbn_issn 데이터 = isbn_issn--1.0.sql DOCS = README.isbn_issn HEADERS_isbn_issn = isbn_issn.h PG_CONFIG = pg_config PGXS := $(쉘 $(PG_CONFIG) --pgxs) $(PGXS) 포함
마지막 세 줄은 항상 동일해야 합니다. 파일 앞부분에서 변수를 할당하거나 사용자 정의를 추가합니다.만들다규칙.
빌드되는 항목을 지정하려면 다음 세 가지 변수 중 하나를 설정하십시오.
다음 변수도 설정할 수 있습니다:
와이즈 토토 #와이즈 토토자 이름; 각 이름에 대해 다음을 제공해야 합니다.다음에 설치될 파일와이즈 토토.control접두사/공유/와이즈 토토
MODULEDIR #하위 디렉토리DATA 및 DOCS 파일을 설치해야 하는 위치(설정되지 않은 경우 기본값은접두사/공유와이즈 토토if와이즈 토토설정되었거나기여그렇지 않은 경우)
데이터 #설치할 임의의 파일접두사/share/$MODULEDIR
DATA_build #설치할 임의의 파일, 먼저 빌드해야 함접두사/share/$MODULEDIR
DATA_TSEARCH #아래에 설치할 임의 파일접두사/share/tsearch_data
문서 #아래에 설치할 임의 파일접두사/doc/$MODULEDIR
헤더HEADERS_build #(선택적으로 빌드 및 설치할) 파일.접두사/include/서버/$MODULEDIR/$MODULE_big
달리DATA_build, 파일HEADERS_build다음에 의해 제거되지 않습니다.깨끗함목표; 제거하려면 다음에도 추가하세요.EXTRA_CLEAN또는 이를 수행하려면 자신만의 규칙을 추가하세요.
HEADERS_$MODULEHEADERS_build_$MODULE #설치할 파일(지정된 경우 빌드 후), 여기서접두사/include/서버/$MODULEDIR/$MODULE$MODULE다음에서 사용되는 모듈 이름이어야 합니다.모듈또는MODULE_big.
달리DATA_build, 파일HEADERS_build_$MODULE다음에 의해 제거되지 않습니다.깨끗함목표; 제거하려면 다음에도 추가하세요.EXTRA_CLEAN또는 이를 수행하려면 자신만의 규칙을 추가하세요.
동일한 모듈에 두 변수를 모두 사용하거나 어떤 조합으로든 사용할 수 있습니다. 단, 모듈 이름이 두 개 있는 경우는 제외됩니다.모듈접두사의 존재 여부만 다른 목록build_, 이는 모호함을 야기합니다. 그런 경우에는(아마도 그럴 가능성이 낮지만), 다음과 같은 경우에만 사용해야 합니다.HEADERS_build_$MODULE변수.
스크립트 #설치할 스크립트 파일(바이너리 아님)접두사/bin
SCRIPTS_build #설치할 스크립트 파일(바이너리 아님), 먼저 빌드해야 함접두사/빈
회귀 #회귀 테스트 사례 목록(접미사 없음), 아래 참조
REGRESS_OPTS #전달할 추가 스위치pg_regress
격리 #격리 테스트 사례 목록, 자세한 내용은 아래 참조
ISOLATION_OPTS #전달할 추가 스위치pg_isolation_regress
TAP_TESTS #TAP 테스트를 실행해야 하는지 정의하는 스위치, 아래 참조
NO_INSTALL #정의하지 마세요설치대상, 빌드 제품을 설치할 필요가 없는 테스트 모듈에 유용함
NO_INSTALLCHECK #정의하지 마세요설치확인대상, 예를 들어 테스트에 특별한 구성이 필요하거나 사용하지 않는 경우 유용함pg_regress
EXTRA_CLEAN #제거할 추가 파일깨끗하게 만드세요
PG_CPPFLAGS #앞에 추가됩니다CPPFLAGS
PG_CFLAGS #다음에 추가됩니다CFLAGS
PG_CXXFLAGS #다음에 추가됩니다CXXFLAGS
PG_LDFLAGS #앞에 추가됩니다LDFLAGS
PG_LIBS #다음에 추가됩니다프로그램링크 라인
SHLIB_LINK #다음에 추가됩니다MODULE_big링크 라인
PG_CONFIG #경로pg_config다음을 위한 프로그램포스트그레SQL빌드 대상 설치(일반적으로 그냥pg_config첫 번째 것을 사용하려면경로)
이 메이크파일을 다음과 같이 넣으세요메이크파일당신의 와이즈 토토 기능이 있는 디렉토리에. 그럼 할 수 있어만들다컴파일한 다음설치하기모듈을 설치합니다. 기본적으로 와이즈 토토은 다음을 위해 컴파일되고 설치됩니다.PostgreSQL첫 번째에 해당하는 설치pg_config귀하의 프로그램에서 발견됨PATH. 설정하여 다른 설치를 사용할 수 있습니다.PG_CONFIG그것을 가리킨다pg_config프로그램, 메이크파일 내에서 또는만들다명령줄.
다음을 설정하여 와이즈 토토 프로그램의 파일을 설치할 별도의 디렉토리 접두어를 선택할 수 있습니다.만들다변수접두사실행할 때설치하기그렇습니다:
make install prefix=/usr/local/postgresql
이렇게 하면 와이즈 토토 제어 및 SQL 파일이 다음에 설치됩니다./usr/local/postgresql/share및 공유 모듈/usr/local/postgresql/lib. 접두사에 문자열이 포함되지 않은 경우포스트그레스또는pgsql, 예를 들어
make install prefix=/usr/local/extras
그런 다음postgresql디렉토리 이름에 추가되어 제어 및 SQL 파일을 설치합니다./usr/local/extras/share/postgresql/extension및 공유 모듈/usr/local/extras/lib/postgresql. 어느 쪽이든 설정해야 합니다.extension_control_path그리고dynamic_library_path활성화하려면포스트그레SQL파일을 찾는 서버:
extension_control_path = '/usr/local/extras/share/postgresql:$system' Dynamic_library_path = '/usr/local/extras/lib/postgresql:$libdir'
달릴 수도 있습니다만들다빌드 디렉토리를 별도로 유지하려는 경우 와이즈 토토의 소스 트리 외부 디렉토리에 있습니다. 이 절차는 a라고도 합니다.VPATH빌드. 방법은 다음과 같습니다.
mkdir build_dir CD 빌드_디렉터리 make -f /path/to/extension/source/tree/Makefile make -f /path/to/extension/source/tree/Makefile 설치
또는 핵심 코드에 대해 수행되는 방법과 유사한 방식으로 VPATH 빌드에 대한 디렉토리를 설정할 수 있습니다. 이를 수행하는 한 가지 방법은 핵심 스크립트를 사용하는 것입니다.config/prep_buildtree. 이 작업이 완료되면 다음을 설정하여 빌드할 수 있습니다.만들다변수VPATH이렇게:
VPATH=/path/to/extension/source/tree 만들기 VPATH=/path/to/extension/source/tree install을 만드세요.
이 절차는 다양한 디렉토리 레이아웃에서 작동할 수 있습니다.
다음에 나열된 스크립트는회귀변수는 다음으로 호출할 수 있는 모듈의 회귀 테스트에 사용됩니다.설치 확인 수행하고 난 후설치하기. 이것이 작동하려면 실행이 필요합니다.포스트그레SQL서버. 에 나열된 스크립트 파일회귀다음 이름의 하위 디렉토리에 나타나야 합니다.sql/와이즈 토토 프로그램 디렉토리에 있습니다. 이 파일에는 와이즈 토토자가 있어야 합니다..sql, 이는에 포함되어서는 안 됩니다.회귀메이크파일에 나열하세요. 각 테스트마다 이름이 지정된 하위 디렉터리에 예상 출력이 포함된 파일도 있어야 합니다.예상됨/, 줄기와 와이즈 토토자가 동일함.out. 설치 확인 수행다음을 사용하여 각 테스트 스크립트를 실행합니다.psql, 결과 출력을 일치하는 예상 파일과 비교합니다. 차이점이 있으면 파일에 기록됩니다.regression.diffs에diff -c형식. 예상 파일이 누락된 테스트를 실행하려고 하면 다음과 같이 보고됩니다.“문제”, 예상되는 파일이 모두 있는지 확인하세요.
다음에 나열된 스크립트는격리변수는 다음으로 호출할 수 있는 모듈과의 동시 세션 동작을 강조하는 테스트에 사용됩니다.설치 확인 수행하고 난 후설치하기. 이것이 작동하려면 실행이 필요합니다.PostgreSQL서버. 에 나열된 스크립트 파일격리다음 이름의 하위 디렉토리에 나타나야 합니다.사양/와이즈 토토 프로그램 디렉토리에 있습니다. 이 파일에는 와이즈 토토자가 있어야 합니다..spec, 이는에 포함되어서는 안 됩니다.격리메이크파일에 나열하세요. 각 테스트마다 이름이 지정된 하위 디렉터리에 예상 출력이 포함된 파일도 있어야 합니다.예상됨/, 줄기와 와이즈 토토자가 동일함.out. 설치 확인 수행각 테스트 스크립트를 실행하고 결과 출력을 일치하는 예상 파일과 비교합니다. 차이점이 있으면 파일에 기록됩니다.output_iso/regression.diffsindiff -c형식. 예상 파일이 누락된 테스트를 실행하려고 하면 다음과 같이 보고됩니다.“문제”, 예상되는 파일이 모두 있는지 확인하세요.
TAP_TESTSTAP 테스트 사용을 활성화합니다. 각 실행의 데이터는라는 하위 디렉터리에 있습니다.tmp_check/. 또한 참조하세요PostgreSQL : 문서 : 18 : 31.4. 탭 사설 토토 사이트자세한 내용은.
예상 파일을 생성하는 가장 쉬운 방법은 빈 파일을 생성한 다음 테스트 실행을 수행하는 것입니다(물론 차이점이 보고됩니다). 에서 발견된 실제 결과 파일을 검사합니다.결과/디렉토리(테스트용회귀) 또는output_iso/결과/디렉토리(테스트용격리), 그런 다음 복사하여예상/테스트에서 기대한 것과 일치하는 경우.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.