更新Heroku Buildpack以使用ffmpegthumbnailer 2.2.0

时间:2017-06-10 15:42:53

标签: ruby-on-rails bash heroku ffmpeg buildpack

我正在使用的应用程序当前正在使用使用ffmpegthumbnailer 2.0.8的buildpack,我需要在2.1.2版中添加的功能。我已经将我们当前正在使用的buildpack的repo分发https://github.com/akomic/heroku-buildpack-ffmpegthumbnailer并更新了bin/compile文件以将download_url指向“https://github.com/dirkvdb/ffmpegthumbnailer/archive/2.2.0.tar.gz”,但是当我将我的fork repo添加到应用程序并运行时heroku run "ffmpegthumbnailer -version"验证它是否有效我收到bash: ffmpegthumbnailer: command not found错误。

以下是原始bin/compile

#!/bin/sh

indent() {
  sed -u 's/^/       /'
}

echo "-----> Install ffmpegthumbnailer"
BUILD_DIR=$1
VENDOR_DIR="vendor"
DOWNLOAD_URL="http://www.aksiom.net/stuff/ffmpegthumbnailer_2.0.8-2.bin.tar.gz"

echo "DOWNLOAD_URL = " $DOWNLOAD_URL | indent

cd $BUILD_DIR
mkdir -p $VENDOR_DIR
cd $VENDOR_DIR
curl -L --silent $DOWNLOAD_URL | tar zx

echo "exporting PATH and LIBRARY_PATH" | indent
PROFILE_PATH="$BUILD_DIR/.profile.d/ffmpeg.sh"
mkdir -p $(dirname $PROFILE_PATH)
echo 'export PATH="$PATH:$HOME/vendor/ffmpegthumbnailer_2.0.8-2/bin"' >> $PROFILE_PATH
echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/vendor/ffmpegthumbnailer_2.0.8-2/lib"' >> $PROFILE_PATH

这是我在forked repo中更新的bin / compile:

#!/bin/sh

indent() {
  sed -u 's/^/       /'
}

echo "-----> Install ffmpegthumbnailer"
BUILD_DIR=$1
VENDOR_DIR="vendor"
DOWNLOAD_URL="https://github.com/dirkvdb/ffmpegthumbnailer/archive/2.2.0.tar.gz"

echo "DOWNLOAD_URL = " $DOWNLOAD_URL | indent

cd $BUILD_DIR
mkdir -p $VENDOR_DIR
cd $VENDOR_DIR
curl -L --silent $DOWNLOAD_URL | tar zx

echo "exporting PATH and LIBRARY_PATH" | indent
PROFILE_PATH="$BUILD_DIR/.profile.d/ffmpeg.sh"
mkdir -p $(dirname $PROFILE_PATH)
echo 'export PATH="$PATH:$HOME/vendor/ffmpegthumbnailer_2.0.8-2/bin"' >> $PROFILE_PATH
echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/vendor/ffmpegthumbnailer_2.0.8-2/lib"' >> $PROFILE_PATH

其他信息:我使用heroku buildpacks:add <link_to_forked_repo>

添加buildpack

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是因为指定的原始akomic tarball不是源代码,而是编译的二进制文件和库的自定义zip。请注意,compile脚本没有make步骤。没有关于如何创建此自定义tarball的文档,但可能是如果您使用较新版本的源代码执行相同的过程,然后将其上载到此脚本可以访问它的位置,它将再次起作用。我现在正试图解决这个问题。