Earlier quoted context omitted.
Reading your comment, I am starting to understand why everyone is so confused about this. Linux and OS X both have the same underlying options for static or shared libraries. There is a large amount of "enterprise" software that is distributed just like a .dmg file. There is plenty of middle ground between having everything dynamically linked and everything statically linked. The author of the article believes that p…
As a sysadmin, which do you prefer: self-contained software distributions with all the dependencies included, or packages that use the host distro's package manager, use system versions of libraries wherever possible, and otherwise integrate well with the host system? The latter seems better to me, but it's an honest question, not rhetorical.
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