2015-12-11 6 views
18

私はherokuにカスタムビルドをインストールしようとしていますので、ビルドパックを使用して3番目のパートをインストールする方法はさまざまです。私.buildpacksで私が持っているファイル:カスタムビルドherokuのインストールとライブラリパスの発行

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

と私Aptfileに、私は次のようしている。ここでrequirements.txtGeoIP==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" 

であなたのpython拡張をリンクするgccのための重要な変数をつかうれるようheroku-buildpack-python buildpackはheroku-buildpack-apt buildpackで素敵な演奏されていませんgeoip lib。課題トラッカーにバグを報告してください。

課題トラッカー:https://github.com/heroku/heroku-buildpack-python/issues

1

私は単純になるように自分のエクスポート時に現在のLD_LIBRARY_PATHとINCLUDE_PATH変数を追加するために未設定のないLD_LIBRARY_PATHとINCLUDE_PATHにHerokuの-buildpack-Pythonのコンパイルスクリプトを変更することで同様の問題を解決し、だけでなく、それらを上書きしないようにする。

ここは私のフォークです:https://github.com/jasrusable/heroku-buildpack-python

関連する問題