4

画像操作のために、heroku のレール アプリでコマンド ライン バージョンの inkscape ( http://inkscape.org/ )を使用できるようにしたいと考えています。いいえ、imagemagick などではできません。

そこで私は、インクルード バイナリとしてinkscape を使用した独自のビルドパックの作業を開始しました。

これを行うために、バルカンをインストールし、inkscape ソースをダウンロードして、次のようにビルドしようとしました。

curl -L -O http://downloads.sourceforge.net/inkscape/inkscape-0.48.4.tar.gz
tar -xzvf inkscape-0.48.4.tar.gz
cd inkscape-0.48.4
vulcan build -v -c './configure && make && make install' 

さて、もし人生が単純なら、これは 'Just Work' ですが、'intltool' のバージョンが古すぎるため、代わりにエラーが発生します。

./configure: line 5371: intltool-update: command not found
checking for intltool >= 0.22...  found
configure: error: Your intltool is too old.  You need intltool 0.22 or later.

では、そのバイナリを vulcan でビルドして、--deps としてインクルードしてみます。perl モジュール XML::Parser が必要なため、これは失敗します。この perl モジュールをインストールするにはどうすればよいですか?

ぶらぶらして、少し近づくと、cpanminus を使用して XML::Parser がインストールされます。

vulcan build -v -c 'curl -LO http://xrl.us/cpanm && chmod +x cpanm && ./cpanm -v XML::Parser && ./configure && make && make install'

これにより、XML::Parser が /app/perl5 にインストールされますが、intltool 構成でそこを見つけるにはどうすればよいでしょうか?

とてもイライラします。多くのヤクが剃られました。何かアドバイス?


更新しました

私は intltool をビルドし、inkscapeconfigureスクリプトによって認識されるようにしました。最終的に機能したのは次のとおりです。

vulcan build -p /tmp/intltool -v -c 'curl --silent -L http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib && eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib` && cpanm -n XML::Parser && ./configure --prefix=/tmp/intltool && make && make install'

その後、gettext が次の依存関係になり、それもビルドする必要がありました。

wget ftp://ftp.gnu.org/gnu/gettext/gettext-0.18.2.1.tar.gz
tar -xzvf gettext-0.18.2.1.tar.gz
cd gettext-0.18.2.1.tar.gz
vulcan build -p /tmp/gettext -v -c './configure --prefix=/tmp/gettext && make && make install'

今、私がinkscapeを構築しようとすると、物事は順調に進んでいるように見えます.multipleの正しい構文を理解することさえできました--depsが、その後、このgettextバイナリの使用に行き詰まりました. 私が試しているコンパイルコマンドは次のとおりです。

vulcan build -p /tmp/inkscape -v -c './configure --prefix=/tmp/inkscape && make && make install' --deps=intltool-build.herokuapp.com/output/1a0ef36b-f134-497d-b970-06896d90f936 gettext-build.herokuapp.com/output/9b9853c0-dfcc-47c8-9d8b-f48e1453026d

しかし、configure が gettext 実行可能ファイルをチェックするようになると、libgettextsrc-0.18.2.so見つからないと主張していますが、バイナリを調べたところ、正しい lib ディレクトリにあります。

エラーは次のとおりです (configure で intltool バイナリが正しく検出され、一部の gettext バイナリが を使用すると失敗することがわかりますxgettext):

checking for intltool >= 0.22... 0.50.2 found
checking for intltool-update... /tmp/d20130529-2-9gtra6/deps/bin/intltool-update
checking for intltool-merge... /tmp/d20130529-2-9gtra6/deps/bin/intltool-merge
checking for intltool-extract... /tmp/d20130529-2-9gtra6/deps/bin/intltool-extract
checking for xgettext... /tmp/d20130529-2-9gtra6/deps/bin/xgettext
checking for msgmerge... /tmp/d20130529-2-9gtra6/deps/bin/msgmerge
checking for msgfmt... /tmp/d20130529-2-9gtra6/deps/bin/msgfmt
checking for gmsgfmt... /tmp/d20130529-2-9gtra6/deps/bin/msgfmt
/tmp/d20130529-2-9gtra6/deps/bin/xgettext: error while loading shared libraries: libgettextsrc-0.18.2.so: cannot open shared object file: No such file or directory
/tmp/d20130529-2-9gtra6/deps/bin/msgmerge: error while loading shared libraries: libgettextsrc-0.18.2.so: cannot open shared object file: No such file or directory
/tmp/d20130529-2-9gtra6/deps/bin/msgfmt: error while loading shared libraries: libgettextsrc-0.18.2.so: cannot open shared object file: No such file or directory
configure: error: GNU gettext tools not found; required for intltool

おそらく私の進歩は、この種の楽しみのためにバルカンを使用している他の誰かを助けるでしょう. gettext バイナリの何が起きているかについてのアイデアはありますか? おそらく、誰かが既に heroku/vulcan でこの作業を行っているのではないでしょうか?

4

0 に答える 0