by benalavi


Heroku et. al. buildpack that installs packages from a list of packages.


You probably want to compose this with other buildpack(s) using heroku-buildpack-multi (

Set your buildpack:

heroku config:set BUILDPACK_URL=

And add this to your .buildpacks, i.e.:

Then add a file called .packages that is simply a list of packages you want to "install" (really it just unzips them and sets the PATH).

The above would install s3cmd, exiftool, and zip from S3 sources.

The script is very simple: it just downloads and uncompresses the given packages into /app/vendor and then adds /app/vendor/<package name>/bin to PATH.

The packages are expected to be compressed in a specific way: they should uncompress to a folder named the same as the filename, with a folder called /bin under it which will be put on PATH. For instance:

tar xvf zip-3.0.tar.gz


ruby test/buildpack_test.rb

There is also a Vagrantfile which will set up a VM with the build/test environment ready to go:

vagrant up
vagrant ssh
cd /vagrant
ruby test/buildpack_test.rb