Distribution packages in Docker world

..or why using them is still a good idea

Distribution packages

Software and it’s dependencies maintained by Linux distribution vendor (Debian community, Canonical, RedHat, etc.), delivered by packages (DEB, RPM, ..) usually provided using package repositories (packages are signed so their authenticity is verified on download).

These packages actually forms ...

more ...

Launchpad tricks

Upload issues

File *.orig.tar.gz already exists

File python-redis_2.10.1.orig.tar.gz already exists in Primary Archive for Ubuntu, but uploaded version has different contents.

You cannot upload file that already exists in Launchpad but has different content (file checksum). File checksum changes every time you re-create ...

more ...

Building OpenContrail

Dependencies

Build dependencies

Dependencies needed to build Opencontrail.

Actual deps in tools/packages/debian/contrail/debian/builddep.trusty

cat tools/packages/debian/contrail/debian/builddep.trusty|sed s,[\ \\\t],,g|tr -d ','|tr '\n' ' '
libboost-dev libboost-chrono-dev libboost-date-time-dev
libboost-filesystem-dev libboost-program-options-dev libboost-python-dev
libboost-regex-dev libboost-system-dev libboost-thread-dev
libcurl4-openssl-dev google-mock libgoogle-perftools-dev liblog4cplus-dev
libtbb-dev libhttp-parser-dev libxml2-dev ...
more ...

Using Aptly for repository management

Repository anatomy

Record in sources.list may look like this:

deb http://ppa.launchpad.net/saltstack/salt/ubuntu trusty main

It consists of repository url, distribution and one or more components.

deb <repository> <distribution> <component(s)>

Distribution

Distribution name consists of Linux distribution version codename (eg. trusty) and our internal ...

more ...