이 문서는 지원되지 않는 버전의 토토을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 꽁 머니 : 문서 : 17 : 17.7. 플랫폼 별 노트버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

16.7. 플랫폼 별 노트

이 섹션에서는 토토의 설치 및 설정에 관한 추가 플랫폼 별 문제를 문서화합니다. 설치 지침을 읽으십시오. 특히섹션 16.2또한 checkPostgreSQL : 문서 : 10 : 32 장 회귀 사설 토토회귀 테스트 결과의 해석과 관련하여

여기에서 다루지 않은 플랫폼은 알려진 플랫폼 별 설치 문제가 없습니다.

16.7.1. AIX

토토은 AIX에서 작동하지만 올바르게 설치하는 것은 어려울 수 있습니다. 4.3.3에서 6.1의 AIX 버전은 지원되는 것으로 간주됩니다.XLC. 일반적으로 최근 버전의 AIX 및 토토을 사용하면 도움이됩니다.

지원되는 AIX 버전의 최소 권장 수정 레벨은 다음과 같습니다.

AIX 4.3.3

유지 보수 레벨 11 + Post ML11 번들

AIX 5.1

유지 보수 레벨 9 + Post ML9 번들

AIX 5.2

기술 레벨 10 서비스 팩 3

AIX 5.3

기술 레벨 7

AIX 6.1

기본 레벨

현재 수정 수준을 확인하려면 사용Oslevel -rAIX 4.3.3에서 AIX 5.2 ML 7, 또는OSLEVEL -S이후 버전에서.

다음을 사용구성readline 또는 libz를 설치 한 경우/usr/local: -with-includes =/usr/local/include-with-libraries =/usr/local/lib.

16.7.1.1. GCC 문제

AIX 5.3에서 GCC를 사용하여 토토을 컴파일하고 실행하는 데 몇 가지 문제가있었습니다.

특히 사전 패키지 버전을 사용하는 경우 3.3.2 이후의 GCC 버전을 사용하려고합니다. 우리는 4.0.1로 좋은 성공을 거두었습니다.

16.7.1.2. 유닉스 도메인 소켓이 깨 졌

aix 5.3은 문제가 있습니다sockaddr_storage는 충분히 큰 것으로 정의되어 있지 않습니다. 버전 5.3에서 IBM은의 크기를 늘 렸습니다.sockaddr_un, Unix-Domain 소켓의 주소 구조는의 크기를 증가시키지 않았습니다.sockaddr_storage. 그 결과 토토과 함께 Unix-Domain 소켓을 사용하려는 시도는 LIBPQ가 데이터 구조를 넘어 뜨린다는 것입니다.

문제는 IBM에보고되었으며 버그 보고서 PMR29657로 기록됩니다. 유지 보수 수준 5300-03 이상으로 업그레이드하면이 수정 사항이 포함됩니다._ss_maxsize~ 1025 in/usr/include/sys/socket.h. 두 경우 모두 수정 된 헤더 파일이 있으면 토토을 다시 컴파일합니다.

16.7.1.3. 인터넷 주소 문제

토토은 시스템에 의존합니다getAddrinfoIP 주소를 구문 분석하는 기능Listen_Addresses, pg_hba.conf등. 이전 버전의 AIX는이 기능에서 버그를 분류했습니다. 이러한 설정과 관련된 문제가있는 경우 위에 표시된 적절한 AIX 수정 레벨로 업데이트하면 처리해야합니다.

한 사용자 보고서 :

AIX 5.3에서 토토 버전 8.1을 구현할 때 통계 수집가가있는 문제에 정기적으로 문제가 발생했습니다.신비하게성공적으로 오지 마십시오. 이것은 IPv6 구현에서 예기치 않은 동작의 결과 인 것으로 보입니다.

다음 조치 중 하나수정문제.

  • LocalHost의 IPv6 주소 삭제 :

    (루트로)
  • 순 서비스에서 IPv6을 제거합니다. 파일/etc/netsvc.confaix는 거의 동일합니다/etc/nsswitch.confSOLARIS/LINUX에서. AIX의 기본값은 다음과 같습니다.

    hosts = local, bind

    이것을 다음과 같이 교체하십시오.

    hosts = local4, bind4

    IPv6 주소 검색을 비활성화하려면

경고

이것은 IPv6 지원의 미숙 성과 관련된 문제에 대한 해결 방법으로 AIX 5.3 릴리스 과정에서 눈에 띄게 향상되었습니다. AIX 버전 5.3과 함께 작동했지만 문제에 대한 우아한 솔루션을 나타내지는 않습니다.

16.7.1.4. 메모리 관리

AIX는 메모리 관리 방식과 관련하여 다소 특이 할 수 있습니다. RAM의 많은 기가 바이트가없는 서버를 가질 수 있지만 애플리케이션을 실행할 때 메모리 나 주소 공간 오류가 남아 있습니다.

=# 생성 확장자 plperl;

토토 설치를 보유한 그룹에서 비 소유자로 실행 :

=# Extension Plperl 생성;

다른 예제는 토토 Server 로그의 메모리 오류가 발생하지 않으며 모든 메모리 할당이 256MB 이상 실패합니다.

이러한 모든 문제의 전반적인 원인은 서버 프로세스에서 사용하는 기본 비트 및 메모리 모델입니다. 기본적으로 AIX에 지어진 모든 이진은 32 비트입니다.

의 경우plperl예를 들어, 위의 예, 토토 설치에서 Umask 및 Binaries의 권한을 확인하십시오. 이 예제와 관련된 이진은 32 비트이며 755 대신 모드 750으로 설치되었습니다.이 방식으로 설정된 권한이 있기 때문에 소유자 또는 소유 그룹의 구성원 만 라이브러리를로드 할 수 있습니다.

the이상적인솔루션은 64 비트의 토토 빌드를 사용하는 것이지만, 32 비트 프로세서가있는 시스템이 구축 될 수 있지만 64 비트 바이너리를 구축 할 수 없기 때문에 항상 실용적이지는 않습니다..

32 비트 바이너리가 필요한 경우ldr_cntrltomaxData = 0xn0000000, 여기서 1 <= n <= 8, 토토 서버를 시작하기 전에 다른 값과를 시도하십시오.Postgres만족스럽게 작동하는 구성을 찾도록 설정합니다. 이 사용ldr_cntrlAIX에 서버에 원한다고 말합니다MaxData바이트는 힙에 따로 따로 설정되어 256MB 세그먼트에 할당됩니다. 실행 가능한 구성을 찾으면ldedit원하는 힙 크기를 사용하는 데 기본값을 사용하여 바이너리를 수정하는 데 사용될 수 있습니다. 토토도 재건, 통과 할 수 있습니다LDFLAGS = "-WL, -BMAXDATA : 0X 구성n0000000"동일한 효과를 달성하려면

64 비트 빌드의 경우Object_Mode~ 64 및 패스cc = "gcc -maix64"andldflags = "-wl, -bbigtoc"to구성. (옵션XLC다를 수 있습니다.) 생략하면Object_Mode, 링커 오류로 빌드가 실패 할 수 있습니다. 언제Object_Mode가 설정되어 있으며 AIX의 빌드 유틸리티와 같은에게 알려줍니다.ar, asLD취급에 기본적으로 어떤 유형의 객체를 사용하십시오.

기본적으로 페이징 공간의 과도한 커미트가 발생할 수 있습니다. 우리가 이런 일이 발생하는 것을 보지 못했지만 AIX는 메모리가 부족할 때 프로세스를 죽이고 과도한 커미트에 액세스 할 수 있습니다.

16.7.2. Cygwin

토토은 Windows의 Linux와 같은 환경 인 Cygwin을 사용하여 구축 할 수 있지만 해당 방법은 기본 Windows 빌드보다 열등합니다 (참조PostgreSQL : 문서 : 10 : 17 장. 윈 토토의 소스 코드에서 설치) Cygwin에서 서버를 실행하는 것이 더 이상 권장되지 않습니다.

소스에서 빌드 할 때 일반 설치 절차에 따라 진행하십시오 (예 :./configure; 만들다; 등), 다음과 같은 고문 특이 적 차이점 :

  • Windows 유틸리티 전에 Cygwin bin 디렉토리를 사용할 경로를 설정하십시오. 이것은 컴파일 문제를 방지하는 데 도움이됩니다.

  • theAdduser명령은 지원되지 않습니다. Windows NT, 2000 또는 XP에서 적절한 사용자 관리 응용 프로그램을 사용하십시오.

  • theSU명령은 지원되지 않습니다. SSH를 사용하여 Windows NT, 2000 또는 XP에서 SU를 시뮬레이션하십시오.

  • OpenSSL이 지원되지 않습니다.

  • 시작Cygserver공유 메모리 지원. 이렇게하려면 명령을 입력하십시오/usr/sbin/cygserver &. 이 프로그램은 토토 서버를 시작하거나 데이터베이스 클러스터를 초기화 할 때마다 실행해야합니다 (initdb). 기본값Cygserver구성 변경이 필요할 수 있습니다 (예 : 증가SEMMNS) 시스템 리소스 부족으로 인해 토토이 실패하지 않도록합니다.

  • C 이외의 로케일이 사용되는 일부 시스템에서는 건물이 실패 할 수 있습니다. 이것을 고치려면, 로케일을 c로 설정하십시오Export Lang = C.UTF8Building 전후에 토토을 설치 한 후 이전 설정으로 다시 설정하십시오.

  • 병렬 회귀 테스트 (확인 make) 오버플레이션으로 인해 가짜 회귀 테스트 실패를 생성 할 수 있습니다listen ()연결 거부 또는 매달린 연결을 유발하는 백 로그 큐. make variable을 사용하여 연결 수를 제한 할 수 있습니다max_connections따라서 :

    make max_connections = 5 점검

    (일부 시스템에서는 최대 약 10 개의 동시 연결을 가질 수 있습니다).

설치할 수 있습니다Cygserver및 토토 서버는 Windows NT 서비스입니다. 이 작업을 수행하는 방법에 대한 자세한 내용은를 참조하십시오.readmeCygwin의 토토 바이너리 패키지에 포함 된 문서. 디렉토리에 설치되어 있습니다/usr/share/doc/cygwin.

16.7.3. hp-ux

토토 7.3+는 적절한 시스템 패치 수준과 빌드 도구가 주어지면 HP-ux 10.x 또는 11.x를 실행하는 시리즈 700/800 PA-RISC 기계에서 작동해야합니다. 최소한 한 명의 개발자가 HP-UX 10.20에서 정기적으로 테스트하며 HP-UX 11.00 및 11.11에 대한 성공적인 설치에 대한 보고서가 있습니다.

토토 소스 분포를 제외하고 GNU 제작이 필요합니다 (HP의 제조사는 수행하지 않음) 및 GCC 또는 HP의 전체 ANSI C 컴파일러가 필요합니다. 배포 타르볼이 아닌 GIT 소스에서 구축하려는 경우 Flex (GNU LEX) 및 Bison (GNU YACC)도 필요합니다.initdb5 월 교수형 :

PHSS_30966 S700_800 LD (1) 및 링커 도구 누적 패치

일반적인 원칙에서는 HP의 C 컴파일러를 사용하는 경우 Libc 및 LD/DLD 패치와 컴파일러 패치에 최신이어야합니다. hp의 지원 사이트를 참조하십시오ftp://us-ffs.external.hp.com/최신 패치의 무료 사본은

PA-RISC 2.0 기계를 구축하고 GCC를 사용하여 64 비트 이진을 갖고 싶다면 GCC 64 비트 버전을 사용해야합니다..

PA-RISC 2.0 머신을 구축하고 컴파일 된 바이너리가 PA-Risc 1.1 기계에서 실행되기를 원한다면+daportableincflags.

HP-UX Itanium 기계를 작성하는 경우 종속 패치 또는 후속 패치가있는 최신 HP Ansi C 컴파일러가 필요합니다.

PHSS_30848 S700_800 HP C 컴파일러 (A.05.57)
PHSS_30849 S700_800 U2COMP/BE/플러그인 라이브러리 패치

HP의 C 컴파일러와 GCC가 모두 있으면 실행할 때 사용할 컴파일러를 명시 적으로 선택할 수 있습니다구성:

./configure cc = cc

HP의 C 컴파일러 또는

./configure cc = gcc

GCC 용. 이 설정을 생략하면 구성이 선택됩니다GCC선택이 있다면.

기본 설치 대상 위치는입니다./usr/local/pgsql/opt. 그렇다면를 사용하십시오.-prefix전환구성.

회귀 테스트에서는 지오메트리 테스트에 약간의 저격수 차이가있을 수 있으며, 어떤 컴파일러 및 수학 라이브러리 버전에 따라 다를 수 있습니다. 다른 오류는 의심의 원인입니다.

16.7.4. MacOS

빌드토토소스에서MacOS, 발행하여 수행 할 수있는 Apple의 명령 라인 개발자 도구를 설치해야합니다

Xcode-Select-Install

(확인을 위해 GUI 대화 창이 나타납니다). Xcode를 설치하고 싶거나 원하지 않을 수도 있습니다.

최근MacOS릴리스,이 필요합니다.Sysroot일부 시스템 헤더 파일을 찾는 데 사용되는 스위치의 경로. 이로 인해의 출력이 발생합니다.구성스크립트는 어떤 SDK 버전이 사용되었는지에 따라에 따라 다양합니다.구성. 간단한 시나리오에서는 문제가되지 않아야하지만 서버 코드가 구축 된 것과 다른 시스템에 확장을 구축하는 것과 같은 작업을 수행하려는 경우 다른 Sysroot 경로를 강제로 사용해야 할 수도 있습니다.PG_SYSROOT, 예를 들어

PG_SYSROOT =/원하는/pathall

컴퓨터의 적절한 경로를 찾으려면 run

Xcrun--show-sdk-path

핵심 서버를 빌드하는 데 사용 된 것과 다른 sysroot 버전을 사용하여 확장을 구축하는 것은 실제로 권장되지 않습니다. 최악의 경우에 버그가 어려운 ABI 불일치가 발생할 수 있습니다.

지정하여 구성 할 때 비 디펜트 SYSROOT 경로를 선택할 수도 있습니다PG_SYSROOTto구성:

./configure ... pg_sysroot =/원하는/path

이것은 주로 다른 MACOS 버전의 크로스 컴파일에 유용합니다. 결과 실행 파일이 현재 호스트에서 실행 될 것이라는 보장은 없습니다.

억제하려면-isysroot옵션 모두, 사용

./configure ... pg_sysroot = none

(존재하지 않는 PathName이 작동합니다). 이는 외부 컴파일러를 사용하지 않으려면 유용 할 수 있지만 토토 개발자가 해당 케이스를 테스트하거나 지원하지 않음을주의하십시오..

MacOS's시스템 무결성 보호(SIP) 기능 breaks확인 make, 필요한 설정을 전달하는 것을 방지하기 때문에dyld_library_path테스트중인 실행 파일로 내려갑니다. 당신은 그 일을 할 수 있습니다설치확인 make. 대부분의 Postgres 개발자는 SIP를 꺼냅니다.

16.7.5. Mingw/Native Windows

Windows 용 토토 Microsoft 운영 체제를위한 Unix와 같은 빌드 환경 인 Mingw를 사용하거나 Microsoft 's를 사용하여 구축 할 수 있습니다.Visual C ++컴파일러 스위트. Mingw 빌드 변형은이 장에 설명 된 일반 빌드 시스템을 사용합니다.PostgreSQL : 문서 : 10 : 17 장. 윈 토토의 소스 코드에서 설치. 완전히 기본 빌드이며 Mingw와 같은 추가 소프트웨어를 사용하지 않습니다.

기본 Windows 포트에는 32 또는 64 비트 버전의 Windows 2000 이상이 필요합니다. 초기 운영 체제에는 충분한 인프라가 없지만 Cygwin이 사용될 수 있습니다).구성,에서 다운로드 할 수 있습니다in. 결과 바이너리를 운영 할 필요는 없습니다.

Mingw를 사용하여 64 비트 바이너리를 빌드하려면 64 비트 도구 세트를 설치하십시오.in, 빈 디렉토리를에 넣으십시오.Path, run구성with-host = x86_64-w64-mingw32옵션.

모든 것을 설치 한 후에는 실행하는 것이 좋습니다PSQLunderCMD.EXE, MSYS 콘솔에 버퍼링 문제가 발생함에 따라

16.7.5.1. Windows에서 충돌 덤프 수집

Windows의 토토이 충돌하면 생성 할 수 있습니다MinidumpsUNIX의 코어 덤프와 유사한 충돌 원인을 추적하는 데 사용할 수 있습니다. 이 덤프는를 사용하여 읽을 수 있습니다.Windows 디버거 도구또는 사용Visual Studio. Windows에서 덤프 생성을 활성화하려면라는 하위 디렉토리를 만듭니다.Crashdumps클러스터 데이터 디렉토리 내부. 그런 다음 덤프는 충돌 프로세스의 식별자와 현재 충돌 시간을 기반으로 고유 한 이름 으로이 디렉토리에 기록됩니다.

16.7.6. Solaris

토토은 Solaris에 잘 지원됩니다. 운영 체제를 최신 상태로 만들수록 경험이 적은 문제가 적습니다.

16.7.6.1. 필수 도구

GCC 또는 Sun의 컴파일러 제품군으로 빌드 할 수 있습니다. 더 나은 코드 최적화를 위해 SPARC 아키텍처에서 Sun의 컴파일러가 강력히 권장됩니다./usr/ucb/cc; 사용/opt/sunwspro/bin/cc.

당신은에서 Sun Studio를 다운로드 할 수 있습니다to. 많은 GNU 도구가 Solaris 10에 통합되거나 Solaris Companion CD에 존재합니다.ar. 출처를 선호하는 경우http://www.gnu.org/order/ftp.html.

16.7.6.2. 실패한 테스트 프로그램에 대한 불만 구성

if구성실패한 테스트 프로그램에 대해 불만을 제기 할 수 있습니다. 아마도 런타임 링커가 Libz, Libreadline 또는 LibSSL과 같은 다른 비표준 비표준 라이브러리를 찾을 수없는 경우 일 것입니다. 올바른 위치를 가리려면를 설정하십시오.ldflags환경 변수구성명령 줄 (예 :

구성 ... ldflags = "-r/usr/sfw/lib :/opt/sfw/lib :/usr/local/lib"

참조LD자세한 내용은 맨 페이지입니다.

16.7.6.3. 64 비트 빌드가 때때로 충돌합니다

Solaris 7 이상에서 LIBC의 64 비트 버전에는 버그가 있습니다vsnprintf루틴은 토토에서 불규칙한 코어 덤프로 이어집니다. 가장 간단한 알려진 해결 방법은 토토이 자체 버전의를 사용하도록 강제하는 것입니다.vsnprintf라이브러리 사본 대신. 이렇게하려면 실행 한 후구성생성 된 파일 편집구성: insrc/makefile.global, 줄 변경

libobjs =

읽기

libobjs = snprintf.o

(이 변수에 이미 나열된 다른 파일이있을 수 있습니다. 주문은 중요하지 않습니다.) 평소와 같이 빌드.

16.7.6.4. 최적의 성능을위한 컴파일

SPARC 아키텍처에서 Sun Studio는 컴파일에 강력히 권장됩니다. 사용해보십시오.-xo5최적화 플래그가 훨씬 빠른 바이너리를 생성합니다. 부동 소수점 작업의 동작을 수정하는 플래그를 사용하지 마십시오.errno처리 (예 :-fast). 이 플래그는 예를 들어 날짜/시간 컴퓨팅에서 비표준 토토 동작을 제기 할 수 있습니다.

SPARC에서 64 비트 바이너리를 사용할 이유가 없다면 32 비트 버전을 선호합니다. 64 비트 작업은 느리고 64 비트 바이너리는 32 비트 변형보다 느립니다.

16.7.6.5. Postgresql 추적에 dtrace 사용

예, dtrace를 사용하는 것이 가능합니다. 보다섹션 28.5자세한 내용은

링크가 표시되면Postgres실행 가능 오류 메시지와 같은 실행 중단 :

정의되지 않은 첫 번째 참조

DTRACE 설치가 너무 오래되어 정적 기능에서 프로브를 처리 할 수 ​​없습니다. Solaris 10U4 또는 최신이 필요합니다.