2009-08-28 14 views
11

पर $ libdir के साथ समस्याएं संक्षेप में, मेरा प्रश्न है "मेरे PSQL स्थापना पर $ libdir क्यों काम नहीं करता है।"PostgreSQL

CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d 
    AS '$libdir/liblwgeom', 'BOX2DFLOAT4_in' 
    LANGUAGE c IMMUTABLE STRICT; 

एक त्रुटि पैदावार

could not access file "$libdir/liblwgeom": No such file or directory 

जबकि

CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d 
    AS '/usr/local/pgsql/lib/liblwgeom', 'BOX2DFLOAT4_in' 
    LANGUAGE c IMMUTABLE STRICT; 

सही ढंग से काम करता है।

% pg_config --pkglibdir 
/usr/local/pgsql/lib 

के उत्पादन में सही प्रतीत होता है।

+0

यह काम करना चाहिए। शायद आप विभिन्न प्रतिष्ठानों को मिला रहे हैं? –

उत्तर

1

मूल जबाब बाहर संपादित करने के लिए यह गलत था

अब जब कि मुझे लगता है मैं स्वीकार करने के लिए है कि इस स्ट्रिंग 2001 के बाद से ;-) विस्तारित किया जा माना जाता है है PostgreSQL कोड को देखा है। हालांकि विस्तार बहुत सीमित है। यह केवल $libdir का विस्तार करता है जिसके बाद निर्देशिका विभाजक होता है। फिर भी, आपका आउटपुट इंगित करता है कि स्ट्रिंग का विस्तार नहीं किया गया था, क्योंकि यहां रिपोर्ट की गई स्ट्रिंग वास्तव में लाइब्रेरी लोड करने के लिए उपयोग की जाने वाली स्ट्रिंग है।

इसका मतलब है कि प्रतिस्थापन विफल रहा। इसे करीब देखकर मैं देख सकता हूं कि विस्तार केवल तभी सफल होता है जब लक्ष्य फ़ाइल वास्तव में मौजूद हो। अपने निर्देशिका विभाजक मानते हुए / है और DLSUFFIX.so है और फ़ाइल /usr/local/pgsql/lib/liblwgeom.so वास्तव में मौजूद है, मुझे कोई सबसे मंद सुराग क्यों नरक यह विफल रहता है ;-)

+0

आप ऐसा क्यों कहते हैं? यह पूरी तरह से मानक उपयोग प्रतीत होता है। –

+0

जो, आपके प्रश्न ने मुझे आश्चर्यचकित कर लिया, मैंने जवाब बदल दिया है ;-) –

6

मैं भी इस त्रुटि के साथ संघर्ष किया है।

ln -s /usr/lib/postgis/1.5.1/postgres/8.4/lib/postgis-1.5.so 
    /usr/lib/postgresql/8.4/lib/liblwgeom 

मुझे पता नहीं क्यों PostGIS ही 'गलत' निर्देशिका में स्थापित करता है, या क्यों PostgreSQL एक फ़ाइल के लिए लग रहा है liblwgeom जब नामित है: मैं liblwgeom फाइल करने के लिए मैन्युअल रूप से PostGIS lib में जोड़ने, इस तरह से इसे हल ऐसा लगता है कि पोस्टजीआईएस postgis-1.5.so

मुझे पता है कि ऐसा लगता है कि मेरी समस्या ठीक हो गई है।

+0

अच्छी तरह से किया गया, मैंने 'ln -s /Library/PostgreSQL/9.1/lib/postgis-1.5.so /Library/PostgreSQL/9.1/ किया मेरी स्थापना के लिए lib/postgresql/postgis-1.5' –