У меня есть немного лучшее решение. Чем больше я играю с беседкой, тем больше она мне нравится. Bower - это просто инструмент, созданный на основе git, который причудливо структурирует вещи (обычно нацелен на сценарии JS для внешнего интерфейса / не является обязательным требованием). Еще одно замечание: bower отлично подходит как для установки частных зависимостей, так и вне github.
Примером является python, но общая цель та же и может быть скорректирована для ruby.
Итак, возьмем этот проект для примера 3scale_python .
Требуется установить libxml2 (через файл needs.txt). Самым простым способом для меня было включить его в bower, а затем написать скрипт для его установки (shell script и procfile).
bower.json
{
"name": "someapp",
"version": "0.0.1",
"homepage": "http://github.com/yourusername/yourrepo",
"authors": [nem],
"description": "something that uses 3scale at a specific commit",
"main": "./lib/clock.py",
"private": true,
"dependencies": {
"3scale_ws_api_for_python": "http://github.com/3scale/3scale_ws_api_for_python/archive/82328aa8e7d43f7ef89e420921a4d63e025b527f.zip"
}
}
скрипт установки (manual_installs_python)
#!/bin/bash
set -e
oldPath=$(pwd)
installing(){
echo "-- installing $1 dependencies --"
echo '--------------------------------'
echo
}
#check for brew, if brew then use it to install something
osx_brew() {
#if brew is installed (no error)
if hash brew 2 > /dev/null; then
installing 'brew'
brew "$@"
fi
}
installing 'python easy_install'
easy_install figleaf
cd ./bower_components/some_other_python_app
python setup.py install
if [[ $IS_HEROKU = 1 ]]; then
#installing on ubuntu/heroku only as, so far I have not gotten libxml2-python to install successfully on OSX
cd ../3scale_ws_api_for_python
#requirements.txt here actually installs and compiles libxml2
pip install -r requirements.txt
python setup.py install
fi
cd "$oldPath"
echo "-- done with dependencies -- "
exit 0
PROCFILE
web: pip install -r requirements.txt && ./scripts/manual_python_installs
Готово
Слишком инсталлируйте libxml2, возможно, вы захотите ознакомиться со сценариями, которые запускает 3scale через его needs.txt.