
provide a Puppet recipe or Ansible playbook that deploys the package and integrates it into the system.add a debian/«pkg».install descriptor to add configuration files to the Debian package.Note that just like with any other form of omnibus packaging, you take over the responsibility to release security updates of the contained dependencies in a timely manner.ĭh-virtualenv is a debhelper plugin that extends the normal Debian tool chain for package building with the ability to create a Python virtualenv (an isolated Python environment), and then wrap that into the final Debian package.ĭepending on the details of the application, you often also have to provide some kind of configuration of the software itself, and possibly some means to run it as a service. common tasks are delegated to the standard Python eco-system. To use dh-virtualenv, you just have to extend your existing application project with a debian subdirectory – project meta-data like pip requirements and so on will be leveraged to build the final package, i.e. Removing and updating an application is also much easier with Debian packages.

To achieve the same with direct use of virtualenv and pip, you'd need to have an in-house PyPI repository accessible from production networks, and also release any extension packages as wheels pre-built for the target platform. to deploy to QA or production environments you need neither Internet access nor any compiler suites (for extension packages). The advantage of using a Debian package for deployment as opposed to the native Python tool chain is that you are less dependent on typical development tools and services, i.e.
