|
|
|
|
|
by grosskur
4749 days ago
|
|
False dichotomy---bundling dependencies doesn't preclude integrating well with the host system. See Basho's latest Riak package for Ubuntu 12.04: http://s3.amazonaws.com/downloads.basho.com/riak/1.3/1.3.2/u... It integrates well with the host system (init script, "riak" user/group, data in /var/lib/riak, logs in /var/log/riak, etc.) and bundles dependencies in /usr/lib/riak. In my experience, bundling dependencies is often the only practical way to install a complex app. Take Sentry as another example: https://github.com/getsentry/sentry The current version (5.4.5) depends on 37 Python packages: BeautifulSoup==3.2.1
Django==1.4.5
Pygments==1.6
South==0.7.6
amqp==1.0.11
anyjson==0.3.3
billiard==2.7.3.28
celery==3.0.19
cssutils==0.9.10
distribute==0.6.31
django-celery==3.0.17
django-crispy-forms==1.2.8
django-indexer==0.3.0
django-paging==0.2.5
django-picklefield==0.3.0
django-social-auth==0.7.23
django-social-auth-trello==1.0.3
django-static-compiler==0.3.3
django-templatetag-sugar==0.1
gunicorn==0.17.4
httpagentparser==1.2.2
httplib2==0.8
kombu==2.5.10
logan==0.5.6
nydus==0.10.6
oauth2==1.5.211
pynliner==0.4.0
python-dateutil==1.5
python-openid==2.2.5
pytz==2013b
raven==3.3.11
redis==2.7.6
sentry==5.4.5
setproctitle==1.1.7
simplejson==3.1.3
six==1.3.0
wsgiref==0.1.2
Ruby or Node apps have dependency trees of similar or greater size. It takes an enormous amount of effort to roll all of these as individual packages (yes, I've done it) and it's a colossal waste of time once you realize you can have a working package in under a minute with virtualenv, pip, and fpm: $ virtualenv --distribute /opt/sentry
$ /opt/sentry/bin/pip install sentry
$ fpm -n sentry -v 5.4.5 -s dir -t deb /opt/sentry
|
|