16.7. ÐамеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ оÑделÑнÑм плаÑÑоÑмам
Ð ÑÑом Ñазделе пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе замеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ оÑделÑнÑм плаÑÑоÑмам, ÑвÑзаннÑе Ñ ÑÑÑановкой и подгоÑовкой к ÑабоÑе PostgreSQL. ÐбÑзаÑелÑно изÑÑиÑе еÑÑ Ð¸Ð½ÑÑÑÑкÑии по ÑÑÑановке, в ÑаÑÑноÑÑи Раздел 16.2. Также обÑаÑиÑеÑÑ Ðº Ðлаве 32, где ÑаÑÑказÑваеÑÑÑ, как пÑоÑиÑаÑÑ ÑезÑлÑÑаÑÑ ÑегÑеÑÑионнÑÑ ÑеÑÑов.
ÐÑли какие-Ñо плаÑÑоÑÐ¼Ñ Ð·Ð´ÐµÑÑ Ð½Ðµ ÑпоминаÑÑÑÑ, знаÑÐ¸Ñ ÐºÐ°ÐºÐ¸Ñ -либо извеÑÑнÑÑ Ð¾ÑобенноÑÑей ÑÑÑановки в Ð½Ð¸Ñ Ð½ÐµÑ.
16.7.1. AIX
PostgreSQL ÑабоÑÐ°ÐµÑ Ð² AIX, но ÑÑÑановиÑÑ ÐµÐ³Ð¾ пÑавилÑно Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÐ¿ÑоÑÑой задаÑей. ÐоддеÑживаемÑми ÑÑиÑаÑÑÑÑ Ð²ÐµÑÑии AIX Ñ 4.3.3 до 6.1. ÐÐ»Ñ ÑбоÑки Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пÑимениÑÑ GCC или ÑобÑÑвеннÑй компилÑÑÐ¾Ñ IBM xlc. ÐообÑе говоÑÑ, полезно иÑполÑзоваÑÑ Ð¿Ð¾Ñледние веÑÑии AIX и PostgreSQL. ÐолÑÑиÑÑ Ð°ÐºÑÑалÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ веÑÑиÑÑ
AIX, ÑабоÑа в коÑоÑÑÑ
пÑовеÑена на даннÑй моменÑ, можно на ÑайÑе ÑеÑÐ¼Ñ ÑбоÑки.
ÐинималÑнÑе ÑекомендÑемÑе ÑÑовни иÑпÑавлений Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаемÑÑ Ð²ÐµÑÑий AIX:
- AIX 4.3.3
ÐкÑплÑаÑаÑионнÑй ÑÑÐ¾Ð²ÐµÐ½Ñ (ML) 11 + Ð¿Ð°ÐºÐµÑ Ð¸ÑпÑавлений поÑле ML11
- AIX 5.1
ÐкÑплÑаÑаÑионнÑй ÑÑÐ¾Ð²ÐµÐ½Ñ (ML) 9 + Ð¿Ð°ÐºÐµÑ Ð¸ÑпÑавлений поÑле ML9
- AIX 5.2
Ð¢ÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸ÑеÑкий ÑÑÐ¾Ð²ÐµÐ½Ñ (TL) 10, ÐÐ°ÐºÐµÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ð¹ (SP) 3
- AIX 5.3
Ð¢ÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸ÑеÑкий ÑÑÐ¾Ð²ÐµÐ½Ñ (TL) 7
- AIX 6.1
ÐазовÑй ÑÑовенÑ
ЧÑÐ¾Ð±Ñ Ð¿ÑовеÑиÑÑ Ð²Ð°Ñ ÑекÑÑий ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¸ÑпÑавлений, вÑполниÑе oslevel -r в AIX веÑÑии Ñ 4.3.3 по 5.2 ML 7, либо oslevel -s в более поздниÑ
веÑÑиÑÑ
.
ÐÑли Readline или libz Ñ Ð²Ð°Ñ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð½Ðµ в /usr/local, пеÑедайÑе configure ÑледÑÑÑие клÑÑи в дополнение к ваÑим: --with-includes=/usr/local/include --with-libraries=/usr/local/lib.
16.7.1.1. ÐÑобенноÑÑи иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ GCC
Ð AIX 5.3 наблÑдалиÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑией и запÑÑком PostgreSQL Ñ Ð¸ÑполÑзованием GCC.
ÐÐ»Ñ ÑÑпеÑной ÑбоÑки вам поÑÑебÑеÑÑÑ GCC веÑÑии новее 3.3.2, оÑобенно, еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе веÑÑÐ¸Ñ Ð¸Ð· ÑиÑÑемного пакеÑа. ÐÑ Ð´Ð¾Ð±Ð¸Ð²Ð°Ð»Ð¸ÑÑ ÑÑÐ¿ÐµÑ Ð° Ñ 4.0.1. ÐÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð¿ÑедÑдÑÑими веÑÑиÑми, ÑÑÐ´Ñ Ð¿Ð¾ вÑемÑ, бÑли ÑвÑÐ·Ð°Ð½Ñ Ð±Ð¾Ð»ÑÑе Ñ Ñем, как IBM Ñпаковала GCC, а не ÑобÑÑвенно Ñ GCC, поÑÑÐ¾Ð¼Ñ ÐµÑли Ð²Ñ ÑкомпилиÑÑеÑе GCC ÑамоÑÑоÑÑелÑно, положиÑелÑнÑй иÑÑ Ð¾Ð´ возможен и Ñ Ñанней веÑÑией GCC.
16.7.1.2. ÐеÑабоÑаÑÑие Unix-ÑокеÑÑ
Ð AIX 5.3 бÑла пÑоблема Ñ ÑазмеÑом ÑÑÑÑкÑÑÑÑ sockaddr_storage. РвеÑÑии 5.3 IBM ÑвелиÑила ÑÐ°Ð·Ð¼ÐµÑ sockaddr_un, ÑÑÑÑкÑÑÑÑ Ð°Ð´ÑеÑа Ð´Ð»Ñ Unix-ÑокеÑов, но не ÑвелиÑила ÑооÑвеÑÑÑвенно ÑÐ°Ð·Ð¼ÐµÑ sockaddr_storage. РиÑоге пÑи попÑÑке PostgreSQL иÑполÑзоваÑÑ Unix-ÑокеÑÑ Ð¿ÑоиÑÑ
одило пеÑеполнение ÑÑой ÑÑÑÑкÑÑÑÑ Ð² libpq. ÐодклÑÑение ÑеÑез TCP/IP ÑÑÑанавливаеÑÑÑ ÐºÐ¾ÑÑекÑно, а ÑеÑез Unix-ÑокеÑÑ â неÑ, и в ÑезÑлÑÑаÑе ÑегÑеÑÑионнÑе ÑеÑÑÑ Ð½Ðµ пÑоÑ
одÑÑ.
Ðб ÑÑой пÑоблеме бÑло ÑообÑено IBM, она заÑикÑиÑована в оÑÑÑÑе об оÑибке PMR29657. ÐÑли Ð²Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñе ÑиÑÑÐµÐ¼Ñ Ð´Ð¾ ÑкÑплÑаÑаÑионного ÑÑÐ¾Ð²Ð½Ñ 5300-03 или новее, она полÑÑÐ¸Ñ ÑооÑвеÑÑÑвÑÑÑее иÑпÑавление. РкаÑеÑÑве вÑеменного ÑеÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑиÑвоиÑÑ _SS_MAXSIZE знаÑение 1025 в /usr/include/sys/socket.h. РлÑбом ÑлÑÑае поÑле иÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑого заголовоÑного Ñайла пеÑекомпилиÑÑйÑе PostgreSQL.
16.7.1.3. ÐÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ ÑеÑевÑми адÑеÑами
PostgreSQL полÑзÑеÑÑÑ ÑиÑÑемной ÑÑнкÑией getaddrinfo Ð´Ð»Ñ ÑазбоÑа IP-адÑеÑов, ÑказаннÑÑ
в паÑамеÑÑе listen_addresses, Ñайле pg_hba.conf и Ñ. д. Ð ÑÑаÑÑÑ
веÑÑиÑÑ
AIX ÑÑа ÑÑнкÑÐ¸Ñ ÑабоÑала некоÑÑекÑно. ÐÑли Ð²Ñ ÑÑолкнÑлиÑÑ Ñ Ð¿Ñоблемами в ÑÑой облаÑÑи, обновление до ÑÑÐ¾Ð²Ð½Ñ Ð¸ÑпÑавлений AIX, обознаÑенного вÑÑе, должно ÑеÑиÑÑ Ð¸Ñ
.
Ðдин полÑзоваÑÐµÐ»Ñ ÑообÑаеÑ:
ÐÑполÑзÑÑ PostgreSQL веÑÑии 8.1 в AIX 5.3, Ð¼Ñ Ð¿ÐµÑиодиÑеÑки ÑÑалкивалиÑÑ Ñ Ñем, ÑÑо ÑбоÑÑик ÑÑаÑиÑÑики «загадоÑнÑм обÑазом» не запÑÑкаеÑÑÑ. ÐажеÑÑÑ, ÑÑо ÑезÑлÑÑÐ°Ñ Ð½ÐµÐ·Ð°Ð¿Ð»Ð°Ð½Ð¸Ñованного Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÑеализаÑии IPv6. ÐÐ¾Ñ Ð¾Ð¶Ðµ, ÑÑо PostgreSQL и IPv6 не дÑÑÐ¶Ð°Ñ Ð² AIX 5.3.
ÐÐ»Ñ Â«ÑеÑениÑ» пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ вÑполниÑÑ Ð¾Ð´Ð½Ð¾ из ÑледÑÑÑÐ¸Ñ Ð´ÐµÐ¹ÑÑвий.
УдалиÑе адÑÐµÑ IPv6 Ð´Ð»Ñ localhost:
(Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ root) # ifconfig lo0 inet6 ::1/0 delete
УдалиÑе IPv6 из ÑеÑевÑÑ ÑеÑвиÑов. Файл
/etc/netsvc.confв AIX пÑимеÑно ÑооÑвеÑÑÑвÑÐµÑ ÑайлÑ/etc/nsswitch.confв Solaris/Linux. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð² AIX он вÑглÑÐ´Ð¸Ñ Ñак:hosts=local,bind
ЧÑÐ¾Ð±Ñ Ð¾ÑклÑÑиÑÑ Ð¿Ð¾Ð¸Ñк адÑеÑов IPv6, замениÑе его ÑодеÑжимое ÑледÑÑÑим:
hosts=local4,bind4
ÐÑедÑпÑеждение
Ð ÑÑим вÑеменнÑм ÑеÑениÑм пÑÐ¸Ñ Ð¾Ð´Ð¸Ð»Ð¾ÑÑ Ð¿ÑибегаÑÑ Ð¸Ð·-за пÑоблем, ÑвÑзаннÑÑ Ñ ÑÑÑой ÑеализаÑией IPv6, коÑоÑÐ°Ñ Ð·Ð°Ð¼ÐµÑно ÑлÑÑÑилаÑÑ Ð² поÑледÑÑÑÐ¸Ñ Ð²ÑпÑÑÐºÐ°Ñ AIX 5.3. ÐÑи ÑеÑÐµÐ½Ð¸Ñ ÑабоÑали в AIX веÑÑии 5.3, но они конеÑно далеки Ð¾Ñ Ð¸Ð´ÐµÐ°Ð»ÑнÑÑ . ÐÑоме Ñого, ÑообÑалоÑÑ, ÑÑо они не ÑолÑко не ÑÑебÑÑÑÑÑ, но и пÑиводÑÑ Ðº дÑÑгим пÑоблемам в AIX 6.1, где поддеÑжка IPv6 ÑÑала более зÑелой.
16.7.1.4. УпÑавление памÑÑÑÑ
Ðногда ÑпÑавление памÑÑÑÑ Ð² AIX Ð¼Ð¾Ð¶ÐµÑ ÑабоÑаÑÑ Ð½ÐµÑколÑко ÑÑÑанно. Ð ÑиÑÑеме Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñвободно неÑколÑко Ð³Ð¸Ð³Ð°Ð±Ð°Ð¹Ñ ÐÐУ, но пÑи запÑÑке пÑиложений вÑÑ Ñавно Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð¾Ñибки, ÑвÑзаннÑе Ñ Ð°Ð´ÑеÑнÑм пÑоÑÑÑанÑÑвом или Ð½ÐµÑ Ð²Ð°Ñкой памÑÑи. Ð ÑаÑÑноÑÑи, необÑÑнÑе оÑибки могÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑÑ Ð¿Ñи загÑÑзке ÑаÑÑиÑений. ÐапÑимеÑ, пÑи вÑполнении Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ владелÑÑа инÑÑаллÑÑии PostgreSQL:
=# CREATE EXTENSION plperl; ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": A memory address is not in the address space for the process.
(ÐШÐÐÐÐ: не ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ "/opt/dbs/pgsql/lib/plperl.so": ÐдÑÐµÑ Ð¿Ð°Ð¼ÑÑи Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð½Ðµ в адÑеÑном пÑоÑÑÑанÑÑве пÑоÑеÑÑа.) ÐÑи вÑполнении Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ не владелÑÑа, а Ñлена гÑÑппÑ-владелÑÑа инÑÑаллÑÑии PostgreSQL:
=# CREATE EXTENSION plperl; ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": Bad address
(ÐШÐÐÐÐ: не ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ "/opt/dbs/pgsql/lib/plperl.so": ÐевеÑнÑй адÑеÑ) Также ÑообÑÐµÐ½Ð¸Ñ Ð¾ Ð½ÐµÑ Ð²Ð°Ñке могÑÑ Ð¿Ð¾ÑвлÑÑÑÑÑ Ð² жÑÑнале PostgreSQL пÑи попÑÑке вÑделиÑÑ Ð±Ð»Ð¾Ðº памÑÑи ÑазмеÑом около 256 ÐиРили болÑÑе.
ÐбÑÐ°Ñ Ð¿ÑиÑина вÑÐµÑ ÑÑÐ¸Ñ Ð¿Ñоблем ÑвÑзана Ñ Ð±Ð¸ÑноÑÑÑÑ Ð¸ моделÑÑ Ð¿Ð°Ð¼ÑÑи ÑеÑвеÑного пÑоÑеÑÑа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ñе иÑполнÑемÑе ÑÐ°Ð¹Ð»Ñ Ð´Ð»Ñ AIX ÑобиÑаÑÑÑÑ ÐºÐ°Ðº 32-биÑнÑе, вне завиÑимоÑÑи Ð¾Ñ Ñого, какой Ñип обоÑÑÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑдÑа иÑполÑзÑеÑÑÑ. Такие 32-биÑнÑе пÑоÑеÑÑÑ Ð¾Ð³ÑаниÑиваÑÑÑÑ Ð¾Ð±Ñим пÑоÑÑÑанÑÑвом в 4 ÐиÐ, ÑазделÑннÑм на ÑегменÑÑ Ð¿Ð¾ 256 ÐиÐ, по одной из неÑколÑÐºÐ¸Ñ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð² кÑÑе можно вÑделиÑÑ Ð¼ÐµÐ½ÑÑе 256 ÐиÐ, Ñак как она ÑазделÑÐµÑ Ð¾Ð´Ð¸Ð½ ÑÐµÐ³Ð¼ÐµÐ½Ñ Ñо ÑÑеком.
Ð ÑиÑÑаÑии Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ñм вÑÑе пÑимеÑом plperl пÑовеÑÑÑе umask и ÑазÑеÑениÑ, назнаÑеннÑе Ð´Ð»Ñ Ð´Ð²Ð¾Ð¸ÑнÑÑ
Ñайлов в ваÑей инÑÑаллÑÑии PostgreSQL. ÐадейÑÑвованнÑе в данном пÑимеÑе двоиÑнÑе ÑÐ°Ð¹Ð»Ñ Ð±Ñли 32-биÑнÑми и ÑÑÑановилиÑÑ Ñ Ñежимом 750 вмеÑÑо 755. Ðз-за ÑакиÑ
ÑазÑеÑений ÑолÑко Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¸Ð»Ð¸ Ñлен гÑÑппÑ-владелÑÑа могли загÑÑзиÑÑ ÑÑебÑемÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑекÑ. Так как она недоÑÑÑпна Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð²Ñем, загÑÑзÑик помеÑал ÑÑÐ¾Ñ Ð¾Ð±ÑÐµÐºÑ Ð² облаÑÑÑ ÐºÑÑи пÑоÑеÑÑа, а не в ÑегменÑÑ ÑазделÑемÑÑ
библиоÑек, где он должен наÑ
одиÑÑÑÑ.
Р«идеале» ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑеÑиÑÑ, еÑли иÑполÑзоваÑÑ 64-биÑнÑÑ ÑбоÑÐºÑ PostgreSQL, но ÑÑо не вÑегда пÑакÑиÑно, Ñак как Ñ 32-биÑнÑм пÑоÑеÑÑоÑом нелÑÐ·Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑÑиÑÑ 64-биÑнÑй код (можно ÑолÑко ÑобÑаÑÑ).
ÐÑи желании иÑполÑзоваÑÑ 32-биÑнÑÑ Ð²ÐµÑÑÐ¸Ñ ÑеÑвеÑа ÑÑÑановиÑе в LDR_CNTRL знаÑение MAXDATA=0x, где 1 <= n <= 8, до запÑÑка PostgreSQL, и попÑобÑйÑе подобÑаÑÑ Ð¿Ð¾Ð´Ñ
одÑÑее знаÑение и паÑамеÑÑÑ n0000000postgresql.conf. ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ LDR_CNTRL говоÑÐ¸Ñ AIX, ÑÑо Ð²Ñ Ñ
оÑиÑе, ÑÑÐ¾Ð±Ñ ÑеÑÐ²ÐµÑ Ð¿Ð¾Ð»ÑÑил MAXDATA Ð±Ð°Ð¹Ñ Ð´Ð»Ñ Ð¾Ð±Ð»Ð°ÑÑи кÑÑи, в ÑегменÑаÑ
по 256 ÐиÐ. ÐодобÑав ÑабоÑее знаÑение, можно воÑполÑзоваÑÑÑÑ ldedit и модиÑиÑиÑоваÑÑ Ð´Ð²Ð¾Ð¸ÑнÑе ÑайлÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ иÑполÑзовали Ñакой ÑÐ°Ð·Ð¼ÐµÑ ÐºÑÑи по ÑмолÑаниÑ. Ð¢Ð¾Ñ Ð¶Ðµ ÑÑÑÐµÐºÑ Ð¼Ð¾Ð¶Ð½Ð¾ полÑÑиÑÑ, пеÑеÑобÑав PostgreSQL Ñ Ñказанием configure LDFLAGS="-Wl,-bmaxdata:0x.n0000000"
ÐÐ»Ñ 64-биÑной ÑбоÑки опÑеделиÑе пеÑеменнÑÑ OBJECT_MODE Ñо знаÑением 64 и пеÑедайÑе configure ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ CC="gcc -maix64" и LDFLAGS="-Wl,-bbigtoc". (ÐÐ»Ñ xlc паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð´ÑÑгими.) ÐÑли нÑжное знаÑение OBJECT_MODE не бÑÐ´ÐµÑ ÑкÑпоÑÑиÑовано, пÑи ÑбоÑке могÑÑ Ð¿ÑоизойÑи оÑибки на ÑÑадии компоновки. Ðогда пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ OBJECT_MODE ÑÑÑановлена, она говоÑÐ¸Ñ ÑбоÑоÑнÑм ÑÑилиÑам AIX, Ñаким как ar, as и ld, какие ÑÐ¸Ð¿Ñ Ð¾Ð±ÑекÑов обÑабаÑÑваÑÑ Ð¿Ð¾ ÑмолÑаниÑ.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑиÑÑема Ð¼Ð¾Ð¶ÐµÑ ÑÑезмеÑно вÑделÑÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð² пÑоÑÑÑанÑÑве подкаÑки. ХоÑÑ Ð½Ð°Ð¼ не пÑÐ¸Ñ Ð¾Ð´Ð¸Ð»Ð¾ÑÑ Ñ ÑÑим ÑÑалкиваÑÑÑÑ, AIX ÑниÑÑÐ¾Ð¶Ð°ÐµÑ Ð¿ÑоÑеÑÑÑ Ð¿Ñи попÑÑке обÑаÑÐµÐ½Ð¸Ñ Ðº ÑÑезмеÑно вÑделенной памÑÑи, когда ÐµÑ ÑакÑиÑеÑки не Ñ Ð²Ð°ÑаеÑ. Ðаиболее близкое, ÑÑо Ð¼Ñ Ð½Ð°Ð±Ð»Ñдали, бÑла оÑибка поÑÐ¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑа из-за Ñого, ÑÑо ÑиÑÑема ÑеÑала, ÑÑо Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ не Ñ Ð²Ð°ÑÐ°ÐµÑ Ð¿Ð°Ð¼ÑÑи. Ðак и многие дÑÑгие компоненÑÑ AIX, Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ñ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÑоÑÑÑанÑÑва подкаÑки и ÑниÑÑÐ¾Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑов пÑи Ð½ÐµÑ Ð²Ð°Ñке памÑÑи можно наÑÑÑоиÑÑ Ð½Ð° ÑÑовне ÑиÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ пÑоÑеÑÑа, еÑли возникаÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñе пÑоблемÑ.
16.7.2. Cygwin
PostgreSQL можно ÑобÑаÑÑ Ñ Ð¿Ñименением Cygwin, Linux-подобной ÑÑÐµÐ´Ñ Ð´Ð»Ñ Windows, но ÑейÑÐ°Ñ ÑÑÐ¾Ð¼Ñ Ð¼ÐµÑÐ¾Ð´Ñ Ð¿ÑедпоÑиÑаеÑÑÑ Ð¾Ð±ÑÑÐ½Ð°Ñ ÑбоÑка в Windows (Ñм. ÐлавÑ 17), и запÑÑкаÑÑ ÑеÑÐ²ÐµÑ Ð² ÑÑеде Cygwin более не ÑекомендÑеÑÑÑ.
ÐÑполнÑÑ ÑбоÑкÑ, ÑледÑйÑе обÑÑной пÑоÑедÑÑе ÑÑÑановки (Ñ. е., ./configure; make; и Ñ. д.), Ñ ÑÑÑÑом ÑледÑÑÑиÑ
оÑобенноÑÑей Cygwin:
ÐаÑÑÑойÑе пÑÑÑ Ð¿Ð¾Ð¸Ñка Ñак, ÑÑÐ¾Ð±Ñ ÐºÐ°Ñалог bin в Cygwin ÑÑоÑл пеÑед каÑалогами ÑÑÐ¸Ð»Ð¸Ñ Windows. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð±Ð°Ð²Ð¸ÑÑÑÑ Ð¾Ñ Ð¿Ñоблем пÑи компилÑÑии.
Ðоманда
adduserне поддеÑживаеÑÑÑ; воÑполÑзÑйÑеÑÑ ÑооÑвеÑÑÑвÑÑÑим ÑÑедÑÑвом ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑми Ð´Ð»Ñ Windows NT, 2000 или XP. Ðибо пÑоÑÑо пÑопÑÑÑиÑе ÑÑÐ¾Ñ Ñаг.Ðоманда
suне поддеÑживаеÑÑÑ; Ð´Ð»Ñ ÑмÑлÑÑии su в Windows NT, 2000 или XP воÑполÑзÑйÑеÑÑ ssh. Ðибо пÑопÑÑÑиÑе ÑÑÐ¾Ñ Ñаг.OpenSSL не поддеÑживаеÑÑÑ.
ÐапÑÑÑиÑе
cygserverÐ´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки ÑазделÑемой памÑÑи. ÐÐ»Ñ ÑÑого введиÑе командÑ/usr/sbin/cygserver &. ÐÑа пÑогÑамма должна ÑабоÑаÑÑ Ð²Ñегда пÑи запÑÑке ÑеÑвеÑа PostgreSQL или иниÑиализаÑии клаÑÑеÑа баз даннÑÑ (initdb). Ðозможно, вам пÑидÑÑÑÑ Ð½Ð°ÑÑÑоиÑÑ ÐºÐ¾Ð½ÑигÑÑаÑиÑcygserver(напÑимеÑ, ÑвелиÑиÑÑSEMMNS), ÑÑÐ¾Ð±Ñ PostgreSQL мог полÑÑиÑÑ ÑÑебÑемÑе ÑиÑÑемнÑе ÑеÑÑÑÑÑ.СбоÑка Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑÑ Ð¾Ñибкой в некоÑоÑÑÑ ÑиÑÑÐµÐ¼Ð°Ñ , где иÑполÑзÑеÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ñ, оÑлиÑÐ½Ð°Ñ Ð¾Ñ C. ЧÑÐ¾Ð±Ñ Ð¸ÑпÑавиÑÑ ÑÑо, вÑбеÑиÑе Ð»Ð¾ÐºÐ°Ð»Ñ C, вÑполнив
export LANG=C.utf8до ÑбоÑки, а заÑем воÑÑÑановиÑе пÑедÑдÑÑее знаÑение поÑле ÑÑÑановки PostgreSQL.ÐаÑаллелÑнÑе ÑегÑеÑÑионнÑе ÑеÑÑÑ (
make check) могÑÑ Ð²ÑдаваÑÑ Ð»Ð¾Ð¶Ð½Ñе оÑибки ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи пеÑеполнении оÑеÑедиlisten(), из-за Ñего подклÑÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ð½Ðµ ÑÑÑанавливаÑÑÑÑ Ð¸Ð»Ð¸ завиÑаÑÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе огÑаниÑиÑÑ ÑиÑло подклÑÑений, опÑеделив пеÑеменнÑÑ makeMAX_CONNECTIONSÑак:make MAX_CONNECTIONS=5 check
(РнекоÑоÑÑÑ ÑиÑÑÐµÐ¼Ð°Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ Ð´Ð¾ 10 одновÑеменнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений).
СеÑÐ²ÐµÑ PostgreSQL и cygserver можно запÑÑÑиÑÑ Ð² виде ÑлÑжб Windows NT. Ðак ÑÑо ÑделаÑÑ, ÑаÑÑказÑваеÑÑÑ Ð² опиÑании README, вклÑÑÑнном в двоиÑнÑй Ð¿Ð°ÐºÐµÑ PostgreSQL Ð´Ð»Ñ Cygwin. Ðно ÑÑÑанавливаеÑÑÑ Ð² каÑалог /usr/share/doc/Cygwin.
16.7.3. HP-UX
PostgreSQL 7.3+ должен ÑабоÑаÑÑ Ð½Ð° маÑÐ¸Ð½Ð°Ñ Series 700/800 PA-RISC под ÑпÑавлением HP-UX 10.X или 11.X, Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑими ÑÑовнÑми ÑиÑÑемнÑÑ Ð¸ÑпÑавлений и ÑÑедÑÑвами ÑбоÑки. Ðак минимÑм один ÑазÑабоÑÑик ÑегÑлÑÑно ÑеÑÑиÑÑÐµÑ ÑбоÑÐºÑ Ð² HP-UX 10.20, и Ð¼Ñ Ð¿Ð¾Ð»ÑÑали ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± ÑÑпеÑнÑÑ ÑÑÑÐ°Ð½Ð¾Ð²ÐºÐ°Ñ Ð² HP-UX 11.00 и 11.11.
Ðомимо пакеÑа иÑÑ
одного кода PostgreSQL, вам поÑÑебÑеÑÑÑ GNU make (HP make не подойдÑÑ) и GCC или полнÑй компилÑÑÐ¾Ñ ANSI C Ð¾Ñ HP. ÐÑли Ð²Ñ Ð½Ð°Ð¼ÐµÑÐµÐ½Ñ Ð²ÑполниÑÑ ÑбоÑÐºÑ Ð½Ðµ из диÑÑÑибÑÑивного пакеÑа иÑÑ
одного кода, а из Git, вам Ñакже поÑÑебÑеÑÑÑ Flex (GNU lex) и Bison (GNU yacc). ÐÑ Ñакже ÑекомендÑем ÑбедиÑÑÑÑ, ÑÑо Ñ Ð²Ð°Ñ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð´Ð¾Ð²Ð¾Ð»Ñно Ñвежие иÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ HP. ÐÐ»Ñ ÑбоÑки 64-биÑного кода в HP-UX 11.11 вам поÑÑебÑеÑÑÑ PHSS_30966 (11.11) или более новое иÑпÑавление, без него initdb Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²Ð¸ÑаÑÑ. Ðак пÑавило, Ð´Ð»Ñ ÑбоÑки нÑжно имеÑÑ ÑекÑÑие иÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ libc и ld/dld, а Ñакже компилÑÑоÑа (еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе компилÑÑÐ¾Ñ HP). ÐолÑÑиÑÑ ÑÑи иÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÑплаÑно можно на ÑайÑаÑ
поддеÑжки HP (напÑÐ¸Ð¼ÐµÑ Ð·Ð´ÐµÑÑ: ftp://us-ffs.external.hp.com/).
ÐÑли Ð²Ñ Ð¿ÑоводиÑе ÑбоÑÐºÑ Ð½Ð° маÑине PA-RISC 2.0 и Ñ Ð¾ÑиÑе полÑÑиÑÑ 64-биÑнÑй иÑполнÑемÑй код, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ 64-биÑнÑÑ Ð²ÐµÑÑÐ¸Ñ GCC.
ÐÑли Ð²Ñ Ð¿ÑоводиÑе ÑбоÑÐºÑ Ð½Ð° маÑине PA-RISC 2.0 и Ñ
оÑиÑе, ÑÑÐ¾Ð±Ñ ÑкомпилиÑованнÑй код запÑÑкалÑÑ Ð½Ð° маÑинаÑ
PA-RISC 1.1, Ñакже поÑÑебÑеÑÑÑ ÑказаÑÑ +DAportable в CFLAGS.
ÐÑли Ð²Ñ Ð¿ÑоводиÑе ÑбоÑÐºÑ Ð½Ð° маÑине HP-UX Itanium, вам поÑÑебÑеÑÑÑ Ð¿Ð¾Ñледний компилÑÑÐ¾Ñ ANSI C Ð¾Ñ HP Ñ ÑооÑвеÑÑÑвÑÑÑим иÑпÑавлением или более новÑми:
PHSS_30848  s700_800 HP C Compiler (A.05.57)
PHSS_30849  s700_800 u2comp/be/plugin library Patch
ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе компилÑÑÐ¾Ñ HP C и GCC, Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ñвно вÑбÑаÑÑ Ð¿ÑедпоÑиÑаемÑй компилÑÑÐ¾Ñ Ð¿Ñи запÑÑке configure:
./configure CC=cc
Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑоÑа C Ð¾Ñ HP, либо
./configure CC=gcc
Ð´Ð»Ñ Ð²ÑбоÑа GCC. ÐÑи оÑÑÑÑÑÑвии Ñвного ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ configure вÑбеÑÐµÑ gcc, еÑли еÑÑÑ ÑÐ°ÐºÐ°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñелевой каÑалог ÑÑÑановки â /usr/local/pgsql, но вÑ, возможно, заÑ
оÑиÑе его измениÑÑ Ð½Ð° дÑÑгой, внÑÑÑи /opt. Ð ÑÑом ÑлÑÑае пеÑедайÑе его configure Ñ ÐºÐ»ÑÑом --prefix.
Ð ÑегÑеÑÑионнÑÑ ÑеÑÑÐ°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð¾ÑÐºÐ»Ð¾Ð½ÐµÐ½Ð¸Ñ Ð¿Ñи геомеÑÑиÑеÑÐºÐ¸Ñ Ð¿ÑовеÑÐºÐ°Ñ , в наименее знаÑаÑÐ¸Ñ ÑиÑÑÐ°Ñ , в завиÑимоÑÑи Ð¾Ñ Ð¿ÑименÑемого компилÑÑоÑа и маÑемаÑиÑеÑкой библиоÑеки. ÐÑбÑе дÑÑгие оÑибки заÑлÑживаÑÑ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ.
16.7.4. macOS
ЧÑÐ¾Ð±Ñ ÑобÑаÑÑ PostgreSQL из иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ кода в macOS, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑÑановиÑÑ Ð¿ÑедоÑÑавлÑемÑе Apple инÑÑÑÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки Ð´Ð»Ñ ÑазÑабоÑки, ÑÑо можно ÑделаÑÑ, вÑполнив:
xcode-select --install
(замеÑÑÑе, ÑÑо пÑи ÑÑом в гÑаÑиÑеÑком инÑеÑÑейÑе поÑвиÑÑÑ Ð¾ÐºÐ½Ð¾ подÑвеÑждениÑ). Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ Xcode, Ñ Ð¾ÑÑ ÑÑо не ÑÑебÑеÑÑÑ.
РпоÑледниÑ
веÑÑиÑÑ
macOS необÑ
одимо вклÑÑаÑÑ Ð¿ÑÑÑ Â«sysroot» во Ñлаги include, позволÑÑÑие найÑи некоÑоÑÑе ÑиÑÑемнÑе заголовоÑнÑе ÑайлÑ. Ðак ÑезÑлÑÑаÑ, вÑвод ÑкÑипÑа configure Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ñого, ÐºÐ°ÐºÐ°Ñ Ð²ÐµÑÑÐ¸Ñ SDK иÑполÑзовалаÑÑ Ð² пÑоÑеÑÑе configure. ÐÑо не должно ÑоздаваÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ
пÑоблем в пÑоÑÑÑÑ
ÑÑенаÑиÑÑ
, но еÑли Ð²Ñ Ð¿Ð¾Ð¿ÑÑаеÑеÑÑ, напÑимеÑ, ÑобÑаÑÑ ÑаÑÑиÑение не на Ñой маÑине, где бÑл ÑобÑан ÑеÑвеÑнÑй код, Ñо Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ñвно ÑказаÑÑ Ð´ÑÑгой пÑÑÑ sysroot. Ð ÑÑом ÑлÑÑае ÑÑÑановиÑе PG_SYSROOT, напÑимеÑ, Ñак:
make PG_SYSROOT=/ÑÑебÑемÑй/пÑÑÑ allЧÑÐ¾Ð±Ñ ÑзнаÑÑ Ð¿ÑавилÑнÑй пÑÑÑ Ð½Ð° ваÑей маÑине, вÑполниÑе:
xcrun --show-sdk-path
ÐамеÑÑÑе, ÑÑо ÑобиÑаÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ñ Ð²ÐµÑÑией sysroot, оÑлиÑной Ð¾Ñ Ñой, Ñ ÐºÐ¾ÑоÑой ÑобиÑалоÑÑ ÑдÑо ÑеÑвеÑа, не ÑекомендÑеÑÑÑ; в Ñ ÑдÑем ÑлÑÑае ÑÑо пÑиведÑÑ Ðº ÑÑÑднодиагноÑÑиÑÑемÑм неÑоглаÑованноÑÑÑм ABI.
Также пÑи конÑигÑÑиÑовании Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ sysroot, оÑлиÑнÑй Ð¾Ñ Ð¿Ð¾Ð´ÑазÑмеваемого по ÑмолÑаниÑ, пеÑедав PG_SYSROOT ÑкÑипÑÑ configure:
./configure ... PG_SYSROOT=/ÑÑебÑемÑй/пÑÑÑÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ пÑежде вÑего пÑи кÑоÑÑ-компилÑÑии Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð¹-либо дÑÑгой веÑÑии macOS. ÐÑи ÑÑом не гаÑанÑиÑÑеÑÑÑ, ÑÑо полÑÑеннÑе иÑполнÑемÑе ÑÐ°Ð¹Ð»Ñ Ð±ÑдÑÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ Ð² ÑекÑÑей ÑиÑÑеме.
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¿Ð¾Ð´Ð°Ð²Ð¸ÑÑ Ð¿Ð°ÑамеÑÑÑ -isysroot, вÑполниÑе:
./configure ... PG_SYSROOT=none
(ÑказаÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ лÑбой неÑÑÑеÑÑвÑÑÑий пÑÑÑ). ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾, еÑли Ð²Ñ Ñ Ð¾ÑиÑе воÑполÑзоваÑÑÑÑ ÑÑоÑонним компилÑÑоÑом, не Apple, но ÑÑÑиÑе, ÑÑо ÑÐ°ÐºÐ°Ñ ÑбоÑка не ÑеÑÑиÑÑеÑÑÑ Ð¸ не поддеÑживаеÑÑÑ ÑазÑабоÑÑиками PostgreSQL.
ФÑнкÑионалÑноÑÑÑ Â«ÐаÑиÑа ÑелоÑÑноÑÑи ÑиÑÑемÑ» (System Integrity Protection, SIP) в macOS наÑÑÑÐ°ÐµÑ ÑабоÑÑ make check, Ñак как она не позволÑÐµÑ Ð¿ÐµÑедаваÑÑ Ð½Ñжное знаÑение DYLD_LIBRARY_PATH ÑеÑÑиÑÑемÑм иÑполнÑемÑм Ñайлам. ÐбойÑи ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾, вÑполнив make install пеÑед make check. Ðднако болÑÑинÑÑво ÑазÑабоÑÑиков Postgres пÑоÑÑо оÑклÑÑаÑÑ SIP.
16.7.5. MinGW/СобÑÑÐ²ÐµÐ½Ð½Ð°Ñ ÑбоÑка Windows
PostgreSQL Ð´Ð»Ñ Windows можно ÑобÑаÑÑ Ñ Ð¸ÑполÑзованием MinGW, Unix-подобной ÑÑÐµÐ´Ñ ÑбоÑки Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑионнÑÑ ÑиÑÑем Microsoft, либо иÑполÑзÑÑ Ð½Ð°Ð±Ð¾Ñ ÑÑедÑÑв ÑазÑабоÑки Microsoft Visual C++. ÐÑи иÑполÑзовании MinGW пÑименÑеÑÑÑ Ð¾Ð±ÑÑÐ½Ð°Ñ ÑиÑÑема ÑбоÑки, опиÑÐ°Ð½Ð½Ð°Ñ Ð² ÑÑой главе; ÑбоÑка Ñ Visual C++ вÑполнÑеÑÑÑ Ð¿Ð¾-дÑÑгомÑ, как опиÑано в Ðлаве 17. ÐÑо полноÑÑÑÑ ÐµÑÑеÑÑÐ²ÐµÐ½Ð½Ð°Ñ ÑбоÑка Ð´Ð»Ñ Windows, Ð´Ð»Ñ ÐºÐ¾ÑоÑой не ÑÑебÑеÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑное ÐРвÑоде MinGW. ÐоÑовÑй инÑÑаллÑÑÐ¾Ñ Ð´Ð»Ñ Windows можно найÑи на ÑайÑе PostgreSQL.
PostgreSQL, поÑÑиÑованнÑй в Windows, бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð² 32- или 64-биÑной веÑÑии Windows 2000 или новее. РпÑедÑдÑÑиÑ
опеÑаÑионнÑÑ
ÑиÑÑемаÑ
Ð½ÐµÑ Ð´Ð¾ÑÑаÑоÑной инÑÑаÑÑÑÑкÑÑÑÑ (но Ñам можно иÑполÑзоваÑÑ Cygwin). MinGW, Unix-подобнÑе ÑÑедÑÑва ÑбоÑки, и MSYS, Ð½Ð°Ð±Ð¾Ñ ÑÑÐ¸Ð»Ð¸Ñ Unix, ÑÑебÑемÑÑ
Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑкÑипÑов Ñипа configure, можно загÑÑзиÑÑ Ñ ÑайÑа http://www.mingw.org/. ÐÑи дополниÑелÑнÑе пÑогÑÐ°Ð¼Ð¼Ñ Ð½ÑÐ¶Ð½Ñ ÑолÑко Ð´Ð»Ñ ÑбоÑки, Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка полÑÑеннÑÑ
иÑполнÑемÑÑ
Ñайлов они не ÑÑебÑÑÑÑÑ.
ЧÑÐ¾Ð±Ñ ÑобÑаÑÑ 64-биÑнÑÑ Ð²ÐµÑÑÐ¸Ñ Ñ Ð¸ÑполÑзованием MinGW, ÑÑÑановиÑе Ð½Ð°Ð±Ð¾Ñ 64-биÑнÑÑ
ÑÑÐ¸Ð»Ð¸Ñ Ñ http://mingw-w64.sourceforge.net/, добавÑÑе пÑÑÑ Ðº его каÑÐ°Ð»Ð¾Ð³Ñ bin в PATH и запÑÑÑиÑе configure Ñ Ð¿Ð°ÑамеÑÑом --host=x86_64-w64-mingw32.
Ðогда Ð²Ñ Ð²ÑÑ ÑÑÑановиÑе, запÑÑкаÑÑ psql пÑедлагаеÑÑÑ Ð¸Ð· CMD.EXE, Ñак как в конÑоли MSYS еÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð±ÑÑеÑизаÑией.
16.7.5.1. Ð¡Ð±Ð¾Ñ Ð°Ð²Ð°ÑийнÑÑ Ð´Ð°Ð¼Ð¿Ð¾Ð² в Windows
Ð ÑлÑÑае аваÑии PostgreSQL в Windows он Ð¼Ð¾Ð¶ÐµÑ ÑгенеÑиÑоваÑÑ Ð¼Ð¸Ð½Ð¸Ð´Ð°Ð¼Ð¿ памÑÑи, коÑоÑÑй Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð²ÑÑÑниÑÑ Ð¿ÑиÑÐ¸Ð½Ñ Ð°Ð²Ð°Ñии, подобно дампам памÑÑи в Unix. ÐÑоанализиÑоваÑÑ ÑÑи Ð´Ð°Ð¼Ð¿Ñ Ð¼Ð¾Ð¶Ð½Ð¾, иÑполÑзÑÑ Windows Debugger Tools (СÑедÑÑва оÑладки Windows) или Visual Studio. ЧÑÐ¾Ð±Ñ Ð² Windows полÑÑиÑÑ Ð´Ð°Ð¼Ð¿ в ÑлÑÑае аваÑии, ÑоздайÑе подкаÑалог crashdumps в каÑалоге даннÑÑ
клаÑÑеÑа. ÐÐ°Ð¼Ð¿Ñ Ð±ÑдÑÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑÑÑ Ð² ÑÑÐ¾Ñ ÐºÐ°Ñалог Ñ ÑникалÑнÑм именем, ÑоÑÑавленнÑм из иденÑиÑикаÑоÑа пÑоÑеÑÑа, давÑего Ñбой, и вÑемени ÑбоÑ.
16.7.6. Solaris
PostgreSQL Ñ Ð¾ÑоÑо поддеÑживаеÑÑÑ Ð² Solaris. Чем новее опеÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема, Ñем менÑÑе заÑÑÑднений бÑдеÑ; подÑобнее об ÑÑом ниже.
16.7.6.1. ТÑебÑемÑе инÑÑÑÑменÑÑ
ÐÑ Ð¼Ð¾Ð¶ÐµÑе вÑполниÑÑ ÑбоÑÐºÑ Ñ GCC или Ñ Ð½Ð°Ð±Ð¾Ñом компилÑÑоÑов Sun. ÐÐ»Ñ Ð»ÑÑÑей опÑимизаÑии кода на аÑÑ
иÑекÑÑÑе SPARC наÑÑоÑÑелÑно ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑÐ¾Ñ Sun. ÐÑ ÑлÑÑали о пÑоблемаÑ
Ñ GCC 2.95.1, поÑÑÐ¾Ð¼Ñ ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ GCC 2.95.3 или новее. ÐÑли Ð²Ñ ÑеÑили пÑимениÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑÐ¾Ñ Sun, не вÑбеÑиÑе по оÑибке /usr/ucb/cc; пÑавилÑнÑй пÑÑÑ â /opt/SUNWspro/bin/cc.
Sun Studio Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе загÑÑзиÑÑ Ñ ÑайÑа http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/. СÑедÑÑва GNU по болÑÑей ÑаÑÑи инÑегÑиÑÐ¾Ð²Ð°Ð½Ñ Ð² Solaris 10, либо пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð½Ð° ÑопÑÑÑÑвÑÑÑем CD. ÐÑли вам нÑÐ¶Ð½Ñ Ð¿Ð°ÐºÐµÑÑ Ð´Ð»Ñ ÑÑаÑÑÑ Ð²ÐµÑÑий Solaris, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе найÑи Ð¸Ñ Ð½Ð° ÑайÑе http://www.sunfreeware.com. ÐÑли Ð²Ñ Ð¿ÑедпоÑиÑаеÑе иÑÑ Ð¾Ð´Ð½Ñй код, обÑаÑиÑеÑÑ Ðº http://www.gnu.org/order/ftp.html.
16.7.6.2. ÐÑоÑедÑÑа configure ÑообÑÐ°ÐµÑ Ð¾ Ñбое ÑеÑÑовой пÑогÑаммÑ
ÐÑли configure ÑообÑÐ°ÐµÑ Ð¾ Ñбое ÑеÑÑовой пÑогÑаммÑ, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñзвано Ñем, ÑÑо пÑи ÑвÑзÑвании во вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑдаÑÑÑÑ Ð½Ð°Ð¹Ñи некоÑоÑÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑекÑ, веÑоÑÑно, libz, libreadline или какÑÑ-Ñо дÑÑгÑÑ Ð½ÐµÑÑандаÑÑнÑÑ, напÑимеÑ, libssl. ЧÑÐ¾Ð±Ñ ÑказаÑÑ Ð¿ÑавилÑное ÑазмеÑение библиоÑеки, задайÑе пеÑеменнÑÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ LDFLAGS в командной ÑÑÑоке configure, напÑÐ¸Ð¼ÐµÑ Ñак:
configure ... LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib"
Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÑÑÑаниÑе man ld.
16.7.6.3. ÐеÑиодиÑеÑкие Ñбои 64-биÑной ÑбоÑки
Ð Solaris 7 и ÑÑаÑее 64-биÑÐ½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ libc ÑодеÑжала бÑакованнÑÑ ÑÑнкÑÐ¸Ñ vsnprintf, коÑоÑÐ°Ñ Ð¼Ð¾Ð³Ð»Ð° вÑзÑваÑÑ Ð½ÐµÐ¿ÑедÑказÑемÑе Ñбои PostgreSQL. Самое пÑоÑÑое извеÑÑное ÑеÑение â ÑделаÑÑ, ÑÑÐ¾Ð±Ñ PostgreSQL иÑполÑзовал ÑобÑÑвеннÑÑ Ð²ÐµÑÑÐ¸Ñ vsnprintf вмеÑÑо библиоÑеÑной веÑÑии. ÐÐ»Ñ ÑÑого, вÑполнив configure, оÑÑедакÑиÑÑйÑе полÑÑеннÑй в ÑезÑлÑÑаÑе configure Ñайл. Ð src/Makefile.global поменÑйÑе ÑÑÑокÑ
LIBOBJS =
на ÑакÑÑ
LIBOBJS = snprintf.o
(Ð ÑÑой пеÑеменной Ñже Ñакже могÑÑ Ð±ÑÑÑ Ð¿ÐµÑеÑиÑÐ»ÐµÐ½Ñ Ð¸ дÑÑгие ÑайлÑ.) ÐаÑем пÑодолжиÑе ÑбоÑÐºÑ ÐºÐ°Ðº обÑÑно.
16.7.6.4. ÐомпилÑÑÐ¸Ñ Ð´Ð»Ñ Ð¼Ð°ÐºÑималÑной пÑоизводиÑелÑноÑÑи
ÐÐ»Ñ Ð°ÑÑ
иÑекÑÑÑÑ SPARC наÑÑоÑÑелÑно ÑекомендÑеÑÑÑ Ð¿ÑоводиÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑÐ¸Ñ Ñ Ð¸ÑполÑзованием Sun Studio. Ðобавив Ñлаг -xO5, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑÑиÑÑ Ð¸ÑполнÑемÑй код, коÑоÑÑй бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð·Ð½Ð°ÑиÑелÑно бÑÑÑÑее. Ðо не добавлÑйÑе никакие Ñлаги, влиÑÑÑие на вÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой или обÑабоÑÐºÑ errno (напÑимеÑ, -fast). С Ñакими Ñлагами PostgreSQL Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑÑи ÑÐµÐ±Ñ Ð½ÐµÑÑандаÑÑно, напÑимеÑ, вÑполнÑÑ Ð¾Ð¿ÐµÑаÑии Ñ Ð´Ð°Ñами/вÑеменем.
ÐÑли Ñ Ð²Ð°Ñ Ð½ÐµÑ Ð¿ÑиÑÐ¸Ð½Ñ Ð¸ÑполÑзоваÑÑ 64-биÑнÑе пÑогÑÐ°Ð¼Ð¼Ñ Ð² аÑÑ Ð¸ÑекÑÑÑе SPARC, ÑобиÑайÑе 32-биÑнÑÑ Ð²ÐµÑÑиÑ, Ñак как 64-биÑнÑе опеÑаÑии, а знаÑÐ¸Ñ Ð¸ 64-биÑнÑе пÑогÑаммÑ, вÑполнÑÑÑÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÐµÐµ 32-биÑнÑÑ . С дÑÑгой ÑÑоÑонÑ, 32-биÑнÑй код Ð´Ð»Ñ Ð¿ÑоÑеÑÑоÑов ÑемейÑÑва AMD64 не ÑвлÑеÑÑÑ Â«ÑоднÑм», поÑÑÐ¾Ð¼Ñ Ð½Ð° ÑÐ°ÐºÐ¸Ñ Ð¿ÑоÑеÑÑоÑÐ°Ñ Ð·Ð½Ð°ÑиÑелÑно медленнее ÑабоÑÐ°ÐµÑ 32-биÑнÑй код.
16.7.6.5. ÐÑименение DTrace Ð´Ð»Ñ ÑÑаÑÑиÑовки PostgreSQL
Ðа, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ DTrace. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº РазделÑ 28.5.
ÐÑли компоновка иÑполнÑемого Ñайла postgres пÑеÑÑваеÑÑÑ Ñ Ñаким ÑообÑением об оÑибке:
Undefined first referenced symbol in file AbortTransaction utils/probes.o CommitTransaction utils/probes.o ld: fatal: Symbol referencing errors. No output written to postgres collect2: ld returned 1 exit status make: *** [postgres] Error 1
ÐÑо ознаÑаеÑ, ÑÑо ваÑа инÑÑаллÑÑÐ¸Ñ DTrace ÑлиÑком ÑÑаÑа и неÑпоÑобна ÑабоÑаÑÑ Ñ Ð¿Ñобами в ÑÑаÑиÑеÑÐºÐ¸Ñ ÑÑнкÑиÑÑ . Ð ÑÑом ÑлÑÑае вам нÑжна веÑÑÐ¸Ñ Solaris 10u4 или новее.