이 섹션에서는 스포츠 토토의 설치 및 설정과 관련된 추가 플랫폼별 문제를 문서화합니다. 설치 지침을 반드시 읽어보십시오. 특히롤 토토 PostgreSQL : 문서 : 13 : 16.2. 요구 사항또한. 또한 확인하세요PostgreSQL : 문서 : 13 : 32 장 회귀 배트맨 토토회귀 테스트 결과 해석에 관하여.
여기에서 다루지 않은 플랫폼에는 알려진 플랫폼별 설치 문제가 없습니다.
스포츠 토토은 AIX에서 작동하지만 약 6.1 이전의 AIX 버전에는 다양한 문제가 있으므로 권장되지 않습니다. GCC 또는 기본 IBM 컴파일러를 사용할 수 있습니다.xlc.
AIX는 메모리 관리 방식에 있어서 다소 특이할 수 있습니다. 몇 기가바이트에 달하는 RAM 여유 공간이 있는 서버가 있을 수 있지만 응용 프로그램을 실행할 때 여전히 메모리가 부족하거나 주소 공간 오류가 발생할 수 있습니다. 한 가지 예는 비정상적인 오류로 인해 확장 프로그램 로드가 실패하는 것입니다. 예를 들어 스포츠 토토 설치의 소유자로 실행하는 경우:
=# 확장 프로그램 생성 plperl; 오류: "/opt/dbs/pgsql/lib/plperl.so" 라이브러리를 로드할 수 없습니다. 메모리 주소가 프로세스의 주소 공간에 없습니다.
스포츠 토토 설치를 소유한 그룹에서 비소유자로 실행 중:
=# 확장 프로그램 생성 plperl; 오류: "/opt/dbs/pgsql/lib/plperl.so" 라이브러리를 로드할 수 없습니다: 잘못된 주소
또 다른 예는 스포츠 토토 서버 로그의 메모리 부족 오류로, 256MB에 가깝거나 그 이상의 모든 메모리 할당이 실패합니다.
이러한 모든 문제의 전반적인 원인은 서버 프로세스에서 사용하는 기본 비트 수 및 메모리 모델입니다. 기본적으로 AIX에 구축된 모든 바이너리는 32비트입니다. 이는 사용 중인 하드웨어 유형이나 커널에 따라 달라지지 않습니다. 이러한 32비트 프로세스는 몇 가지 모델 중 하나를 사용하여 256MB 세그먼트에 배치된 4GB 메모리로 제한됩니다. 기본값은 스택과 단일 세그먼트를 공유하므로 힙에서 256MB 미만을 허용합니다.
다음의 경우plperl위의 예에서는 스포츠 토토 설치에서 umask와 바이너리의 권한을 확인하세요. 해당 예에 포함된 바이너리는 32비트였으며 755 대신 모드 750으로 설치되었습니다. 이러한 방식으로 설정된 권한으로 인해 소유자 또는 소유 그룹의 구성원만 라이브러리를 로드할 수 있습니다. 누구나 읽을 수 없기 때문에 로더는 객체가 배치되는 공유 라이브러리 세그먼트 대신 프로세스의 힙에 객체를 배치합니다.
그“이상적”이에 대한 해결책은 스포츠 토토의 64비트 빌드를 사용하는 것입니다. 그러나 이것이 항상 실용적인 것은 아닙니다. 32비트 프로세서가 있는 시스템은 64비트 바이너리를 빌드할 수 있지만 실행할 수는 없기 때문입니다.
32비트 바이너리를 원할 경우 설정LDR_CNTRL에MAXDATA=0x, 여기서 1 <= n <= 8, 스포츠 토토 서버를 시작하기 전에 다른 값을 시도하고n0000000스포츠 토토.conf설정을 사용하여 만족스럽게 작동하는 구성을 찾습니다. 이 사용법은LDR_CNTRLAIX에게 서버가 갖기를 원하는 것을 알립니다.MAXDATA힙을 위해 따로 설정된 바이트, 256MB 세그먼트에 할당됨. 실행 가능한 구성을 찾으면,ldedit기본적으로 원하는 힙 크기를 사용하도록 바이너리를 수정하는 데 사용할 수 있습니다. 스포츠 토토도 재구축할 수 있습니다.LDFLAGS="-Wl,-bmaxdata:0x 구성동일한 효과를 얻으려면.n0000000"
64비트 빌드의 경우 설정객체_모드64까지 그리고 통과CC="gcc -maix64"그리고LDFLAGS="-Wl,-bbigtoc"에구성. (다음에 대한 옵션xlc다를 수 있습니다.) 내보내기를 생략하는 경우OBJECT_MODE, 링커 오류로 인해 빌드가 실패할 수 있습니다. 언제OBJECT_MODE이 설정되면 다음과 같은 AIX의 빌드 유틸리티에 알립니다.ar, as및ld기본적으로 처리할 개체 유형.
기본적으로 페이징 공간의 오버커밋이 발생할 수 있습니다. 이런 일이 발생하는 것을 본 적이 없지만 AIX는 메모리가 부족하고 오버커밋에 액세스할 때 프로세스를 종료합니다. 우리가 본 것과 가장 가까운 것은 시스템이 다른 프로세스를 위한 메모리가 충분하지 않다고 결정했기 때문에 포크가 실패하는 것입니다. AIX의 다른 많은 부분과 마찬가지로 페이징 공간 할당 방법 및 메모리 부족 종료는 이것이 문제가 될 경우 시스템 전체 또는 프로세스 전체에서 구성 가능합니다.
스포츠 토토은 Windows용 Linux와 유사한 환경인 Cygwin을 사용하여 구축할 수 있지만 이 방법은 기본 Windows 빌드보다 열등합니다.(참조PostgreSQL : 문서 : 13 : 17 장. 토토 커뮤니티의 소스 코드에서 설치)그리고 Cygwin에서 서버를 실행하는 것은 더 이상 권장되지 않습니다.
소스에서 빌드할 때 Unix 스타일 설치 절차에 따라 진행하십시오(예:./구성; 만들다; 등), 다음과 같은 Cygwin 관련 차이점에 유의하세요.
Windows 유틸리티 이전에 Cygwin bin 디렉토리를 사용하도록 경로를 설정하십시오. 이렇게 하면 컴파일 문제를 방지하는 데 도움이 됩니다.
그adduser명령은 지원되지 않습니다. Windows NT, 2000 또는 XP에서는 적절한 사용자 관리 응용 프로그램을 사용하십시오. 그렇지 않으면 이 단계를 건너뛰세요.
그수명령은 지원되지 않습니다. Windows NT, 2000 또는 XP에서 su를 시뮬레이션하려면 ssh를 사용하십시오. 그렇지 않으면 이 단계를 건너뛰세요.
OpenSSL은 지원되지 않습니다.
시작cygserver공유 메모리 지원용. 이렇게 하려면 다음 명령을 입력하세요./usr/sbin/cygserver &. 이 프로그램은 스포츠 토토 서버를 시작하거나 데이터베이스 클러스터를 초기화할 때마다 실행되어야 합니다. (initdb). 기본값cygserver구성을 변경해야 할 수도 있습니다(예: 증가SEMMNS) 시스템 리소스 부족으로 인해 스포츠 토토이 실패하는 것을 방지합니다.
C 이외의 로케일을 사용하는 일부 시스템에서는 빌드가 실패할 수 있습니다. 이 문제를 해결하려면 다음을 수행하여 로캘을 C로 설정하세요.내보내기 LANG=C.utf8빌드하기 전에, 그리고 스포츠 토토을 설치한 후에 이전 설정으로 다시 설정하세요.
병렬 회귀 테스트(확인하세요)은 오버플로로 인해 허위 회귀 테스트 실패를 생성할 수 있습니다.듣기()연결 거부 오류 또는 중단을 일으키는 백로그 큐입니다. make 변수를 사용하여 연결 수를 제한할 수 있습니다.MAX_CONNECTIONS따라서:
MAX_CONNECTIONS=5 확인을 하세요
(일부 시스템에서는 최대 10개까지 동시 연결이 가능합니다.)
설치가 가능합니다cygserver및 스포츠 토토 서버를 Windows NT 서비스로 사용합니다. 이를 수행하는 방법에 대한 자세한 내용은 다음을 참조하십시오.READMECygwin의 스포츠 토토 바이너리 패키지에 포함된 문서입니다. 디렉토리에 설치됩니다./usr/share/doc/Cygwin.
빌드하려면스포츠 토토소스부터맥OS, Apple의 명령줄 개발자 도구를 설치해야 하며, 이는 다음을 실행하여 수행할 수 있습니다.
xcode-select --install
(이렇게 하면 확인을 위해 GUI 대화 상자 창이 팝업됩니다). Xcode를 설치할 수도 있고 설치하지 않을 수도 있습니다.
최근에맥OS릴리스에서는 다음을 삽입해야 합니다.“sysroot”일부 시스템 헤더 파일을 찾는 데 사용되는 포함 스위치의 경로입니다. 그 결과는 다음과 같습니다.구성중에 사용된 SDK 버전에 따라 달라지는 스크립트구성. 간단한 시나리오에서는 문제가 되지 않지만, 서버 코드가 구축된 것과 다른 컴퓨터에서 확장을 구축하는 등의 작업을 수행하려는 경우 다른 sysroot 경로를 강제로 사용해야 할 수도 있습니다. 그렇게 하려면 다음을 설정하세요.PG_SYSROOT, 예를 들어
PG_SYSROOT를 만드세요=/원하는/경로모두
컴퓨터에서 적절한 경로를 찾으려면 다음을 실행하세요.
xcrun --show-sdk-path
코어 서버를 구축하는 데 사용된 것과 다른 sysroot 버전을 사용하여 확장을 구축하는 것은 실제로 권장되지 않습니다. 최악의 경우 디버깅하기 어려운 ABI 불일치가 발생할 수 있습니다.
구성 시 다음을 지정하여 기본이 아닌 sysroot 경로를 선택할 수도 있습니다.PG_SYSROOT에구성:
./configure ... PG_SYSROOT=/원하는/경로
이것은 주로 다른 macOS 버전에 대한 크로스 컴파일에 유용합니다. 결과 실행 파일이 현재 호스트에서 실행된다는 보장은 없습니다.
억압하려면-isysroot옵션을 모두 사용하려면
./configure ... PG_SYSROOT=없음
(존재하지 않는 경로 이름은 모두 작동합니다). 이는 Apple이 아닌 컴파일러로 빌드하려는 경우 유용할 수 있지만 해당 사례는 스포츠 토토 개발자가 테스트하거나 지원하지 않는다는 점에 유의하세요.
macOS's“시스템 무결성 보호”(SIP) 기능 중단확인하세요, 필요한 설정 전달을 방해하기 때문입니다.DYLD_LIBRARY_PATH테스트 중인 실행 파일까지. 다음을 수행하여 이 문제를 해결할 수 있습니다.설치하기이전확인하세요. 하지만 대부분의 스포츠 토토 개발자는 SIP를 끄기만 합니다.
Windows용 스포츠 토토은 Microsoft 운영 체제용 Unix와 유사한 빌드 환경인 MinGW를 사용하거나 Microsoft의비주얼 C++컴파일러 제품군. MinGW 빌드 절차는 이 장에 설명된 일반 빌드 시스템을 사용합니다. Visual C++ 빌드는 완전히 다르게 작동하며 이에 대한 설명은 다음과 같습니다.PostgreSQL : 문서 : 13 : 17 장. 토토 커뮤니티의 소스 코드에서 설치.
기본 Windows 포트에는 32비트 또는 64비트 버전의 Windows 2000 이상이 필요합니다. 이전 운영 체제에는 인프라가 충분하지 않습니다(그러나 이러한 경우에는 Cygwin을 사용할 수 있습니다). Unix 계열 빌드 도구인 MinGW 및 다음과 같은 셸 스크립트를 실행하는 데 필요한 Unix 도구 모음인 MSYS구성, 다음에서 다운로드할 수 있습니다.http://www.mingw.org/. 결과 바이너리를 실행하는 데도 필요하지 않습니다. 바이너리를 생성하는 데에만 필요합니다.
MinGW를 사용하여 64비트 바이너리를 빌드하려면 다음에서 64비트 도구 세트를 설치하십시오.https://mingw-w64.org/, bin 디렉토리를에 넣습니다.경로그리고 실행구성와 함께--호스트=x86_64-w64-mingw32옵션.
모든 것을 설치한 후 다음을 실행하는 것이 좋습니다.psql아래CMD.EXE, MSYS 콘솔에 버퍼링 문제가 있기 때문입니다.
Windows의 스포츠 토토이 충돌하는 경우 생성할 수 있는 기능이 있습니다.미니 덤프Unix의 코어 덤프와 유사하게 충돌 원인을 추적하는 데 사용할 수 있습니다. 이러한 덤프는 다음을 사용하여 읽을 수 있습니다.Windows 디버거 도구또는 사용 중비주얼 스튜디오. Windows에서 덤프 생성을 활성화하려면라는 하위 디렉터리를 만듭니다.크래시 덤프클러스터 데이터 디렉터리 내부. 그러면 충돌이 발생한 프로세스의 식별자와 현재 충돌 시간을 기반으로 한 고유한 이름으로 덤프가 이 디렉터리에 기록됩니다.
스포츠 토토은 Solaris에서 잘 지원됩니다. 운영 체제가 최신 상태일수록 발생하는 문제가 줄어듭니다.
GCC 또는 Sun의 컴파일러 제품군을 사용하여 빌드할 수 있습니다. 더 나은 코드 최적화를 위해 SPARC 아키텍처에서는 Sun의 컴파일러를 적극 권장합니다. Sun의 컴파일러를 사용하는 경우 선택하지 않도록 주의하세요./usr/ucb/cc; 사용/opt/SUNWspro/bin/cc.
다음에서 Sun Studio를 다운로드할 수 있습니다.https://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/. 많은 GNU 도구가 Solaris 10에 통합되어 있거나 Solaris Companion CD에 있습니다. 이전 버전의 Solaris용 패키지가 필요한 경우 다음 도구를 찾을 수 있습니다.http://www.sunfreeware.com. 소스를 선호한다면 다음을 참조하세요.https://www.gnu.org/prep/ftp.
만약구성실패한 테스트 프로그램에 대해 불평합니다. 이는 아마도 런타임 링커가 libz, libreadline 또는 libssl과 같은 기타 비표준 라이브러리와 같은 일부 라이브러리를 찾을 수 없는 경우일 것입니다. 올바른 위치를 가리키려면LDFLAGS환경 변수구성명령줄, 예:
구성 ... LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib"
참조ld자세한 내용은 매뉴얼 페이지를 참조하세요.
SPARC 아키텍처에서는 컴파일 시 Sun Studio를 적극 권장합니다. 다음을 사용해 보세요.-xO5최적화 플래그를 사용하여 훨씬 더 빠른 바이너리를 생성합니다. 부동 소수점 연산의 동작을 수정하는 플래그를 사용하지 마십시오.errno처리 중(예:-빠름).
SPARC에서 64비트 바이너리를 사용할 이유가 없다면 32비트 버전을 선호하십시오. 64비트 작업은 느리고 64비트 바이너리는 32비트 변형보다 느립니다. 반면 AMD64 CPU 제품군의 32비트 코드는 기본 코드가 아니므로 해당 CPU 제품군에서 32비트 코드는 상당히 느립니다.
예, DTrace를 사용하는 것이 가능합니다. 참조스포츠 토토 PostgreSQL : 문서 : 13 : 27.5. 동적 추적자세한 정보는.
다음의 링크가 보이면포스트그레스다음과 같은 오류 메시지와 함께 실행이 중단되었습니다.
정의되지 않은 첫 번째 참조 파일의 기호 AbortTransaction utils/probes.o CommitTransaction utils/probes.o ld: fatal: 기호 참조 오류입니다. Postgres에 출력이 기록되지 않음 Collect2: ld가 종료 상태 1개를 반환했습니다. make: *** [postgres] 오류 1
DTrace 설치가 너무 오래되어 정적 기능에서 프로브를 처리할 수 없습니다. DTrace를 사용하려면 Solaris 10u4 이상이 필요합니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.