2015-12-11 5 views
18

मैं एक कस्टम Heroku पर निर्माण स्थापित करने का प्रयास कर रहा हूँ के साथ बनाता है, तो मैं विभिन्न तरीकों से उपयोग कर रहा हूँ एक तिहाई हिस्सा buildpacks का उपयोग कर स्थापित करने के प्रयास करने के लिए। मेरी .buildpacks फ़ाइल में मेरे पास है:स्थापित कर रहा है कस्टम Heroku और इस मुद्दे को लाइब्रेरी पथ

https://github.com/ddollar/heroku-buildpack-apt 
https://github.com/heroku/heroku-buildpack-python.git 

और मेरे Aptfile में मैं निम्नलिखित है: libgeoip-dev जो जो requirements.txt (GeoIP==1.3.2) के साथ स्थापित किया गया है GeoIP के लिए एक पूर्व अपेक्षित

यहाँ मेरी वातावरण हो रहा है चर:

remote: C_INCLUDE_PATH is /app/.heroku/vendor/include:/app/.heroku/vendor/include:/app/.heroku/python/include 
remote: CPATH is /tmp/build_xxxxx/.apt/usr/include: 
remote: LD_LIBRARY_PATH is /app/.heroku/vendor/lib:/app/.heroku/vendor/lib:/app/.heroku/python/lib 

मैं त्रुटि संदेश आ रहा है:

remote:  building 'GeoIP' extension 
remote:  creating build 
remote:  creating build/temp.linux-x86_64-2.7 
remote:  gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/app/.heroku/python/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing 
remote:  creating build/lib.linux-x86_64-2.7 
remote:  gcc -pthread -shared build/temp.linux-x86_64-2.7/py_GeoIP.o -lGeoIP -o build/lib.linux-x86_64-2.7/GeoIP.so 
remote:  /usr/bin/ld: cannot find -lGeoIP 
remote:  collect2: error: ld returned 1 exit status 
remote:  error: command 'gcc' failed with exit status 1 

इसे ठीक करने के होशियार तरीका क्या है? अर्थात। मुझे लगता है कि जहां पैकेज प्रबंधक स्थापित करता है मैं नहीं बदल सकते। क्या इसके चारों ओर एक रास्ता है?

उत्तर

5

https://github.com/heroku/heroku-buildpack-python/blob/master/bin/compile#L99-L107

# Prepend proper path buildpack use. 
export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH 
export PYTHONUNBUFFERED=1 
export LANG=en_US.UTF-8 
export C_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include 
export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include 
export LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib 
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.hero ku/vendor/lib:/app/.heroku/python/lib 
export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:$BUILD_DIR/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config 

बनाम

https://github.com/ddollar/heroku-buildpack-apt/blob/master/bin/compile#L75-L81

export PATH="$BUILD_DIR/.apt/usr/bin:$PATH" 
export LD_LIBRARY_PATH="$BUILD_DIR/.apt/usr/lib/x86_64-linux-gnu:$BUILD_DIR/.apt/usr/lib/i386-linux-gnu:$BUILD_DIR/.apt/usr/lib:$LD_LIBRARY_PATH" 
export LIBRARY_PATH="$BUILD_DIR/.apt/usr/lib/x86_64-linux-gnu:$BUILD_DIR/.apt/usr/lib/i386-linux-gnu:$BUILD_DIR/.apt/usr/lib:$LIBRARY_PATH" 
export INCLUDE_PATH="$BUILD_DIR/.apt/usr/include:$INCLUDE_PATH" 
export CPATH="$INCLUDE_PATH" 
export CPPPATH="$INCLUDE_PATH" 
export PKG_CONFIG_PATH="$BUILD_DIR/.apt/usr/lib/x86_64-linux-gnu/pkgconfig:$BUILD_DIR/.apt/usr/lib/i386-linux-gnu/pkgconfig:$BUILD_DIR/.apt/usr/lib/pkgconfig:$PKG_CONFIG_PATH" 

heroku-buildpack-python buildpack के रूप में यह gcc के लिए महत्ववपूर्ण चरों clobbering है के साथ अपने अजगर विस्तार से जोड़ने के लिए heroku-buildpack-apt buildpack साथ अच्छा नहीं चल रहा है geoip lib। समस्या ट्रैकर पर जानकारी दें।

समस्या ट्रैकर: https://github.com/heroku/heroku-buildpack-python/issues

1

मैं भोलेपन Heroku-buildpack-अजगर का संकलन स्क्रिप्ट को संशोधित करके एक ऐसी ही समस्या हल नहीं सेट नहीं LD_LIBRARY_PATH और INCLUDE_PATH, साथ ही के रूप में, इसलिए उनके निर्यात के दौरान वर्तमान LD_LIBRARY_PATH और INCLUDE_PATH चर संलग्न करने के लिए करने के लिए उन्हें अधिलेखित नहीं करने के लिए।

यहां मेरा कांटा है: https://github.com/jasrusable/heroku-buildpack-python

संबंधित मुद्दे