All Projects → FooBarWidget → debian-packaging-for-the-modern-developer

FooBarWidget / debian-packaging-for-the-modern-developer

Licence: other
Debian packaging tutorials for the modern developer

Programming Languages

shell
77523 projects
Makefile
30231 projects
c
50402 projects - #5 most used programming language
Dockerfile
14818 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to debian-packaging-for-the-modern-developer

debianopt-repo
Additional debian repository for awesome open-source projects.
Stars: ✭ 47 (-86.46%)
Mutual labels:  debian, debian-packaging
deber
📦🐋 Debian packaging with Docker
Stars: ✭ 20 (-94.24%)
Mutual labels:  debian, debian-packaging
debian-packaging
Create Debian packages of non-free, closed-source and other software.
Stars: ✭ 19 (-94.52%)
Mutual labels:  debian, debian-packaging
duprkit
Debian User Recipe Toolkit [Unofficial]
Stars: ✭ 14 (-95.97%)
Mutual labels:  debian, debian-packaging
edi-raspbian
edi configuration for emulated raspbian and raspbian cross compilation.
Stars: ✭ 16 (-95.39%)
Mutual labels:  debian
jira role
Ansible role to install Atlassian JIRA
Stars: ✭ 13 (-96.25%)
Mutual labels:  debian
simpPRU
Intuitive language for PRU which compiles down to PRU C
Stars: ✭ 54 (-84.44%)
Mutual labels:  debian
files
Debian's configuration files
Stars: ✭ 15 (-95.68%)
Mutual labels:  debian
kali-whoami
Whoami provides enhanced privacy, anonymity for Debian and Arch based linux distributions
Stars: ✭ 1,424 (+310.37%)
Mutual labels:  debian
ansible-tinc
Role to install tinc in a star/ring topology (w/ leaf/spine) (based on your variables)
Stars: ✭ 15 (-95.68%)
Mutual labels:  debian
apt-update-indicator
Apt Update Indicator
Stars: ✭ 38 (-89.05%)
Mutual labels:  debian
ssa
Web panel for small Debian and Ubuntu servers.
Stars: ✭ 16 (-95.39%)
Mutual labels:  debian
yosild
Yosild is a single shell script that builds a full, minimal Linux distribution based on BusyBox.
Stars: ✭ 97 (-72.05%)
Mutual labels:  debian
intellij-idea-community
Unofficial .deb packages of IntelliJ IDEA Community Edition. This is a mirror of
Stars: ✭ 32 (-90.78%)
Mutual labels:  debian
xx
Dockerfile cross-compilation helpers
Stars: ✭ 124 (-64.27%)
Mutual labels:  debian
dots
Completely automated desktop setup, configuration and maintenance using Ansible
Stars: ✭ 60 (-82.71%)
Mutual labels:  debian
Aton
Open web computer laboratory administrator
Stars: ✭ 15 (-95.68%)
Mutual labels:  debian
vagrant-templates
Vagrantfiles for self-contained development/test environments.
Stars: ✭ 28 (-91.93%)
Mutual labels:  debian
host-flash
Updates the Linux hosts file to block access to reported bad (malicious) hosts, ad server hosts and custom set hosts. Bad hosts list freshly compiled each run from the lists released by hosts-file.net and mvps.org. Also features custom blocklist, whitelist, undo and restore options. This hosts file update program is interactive.
Stars: ✭ 14 (-95.97%)
Mutual labels:  debian
MassVulScan
Bash script which quickly identifies open network ports and any associated vulnerabilities / Script Bash qui permet d'identifier rapidement les ports réseaux ouverts et les éventuelles vulnérabilités associées.
Stars: ✭ 56 (-83.86%)
Mutual labels:  debian

Debian Packaging For The Modern Developer (DPMD)

Welcome to DPMD

Table of contents

  • Why should DevOps people learn Debian packaging?
  • Why should open source application developers learn Debian packaging?
  • Welcome to DPMD
  • Tutorials
  • Guides
  • References

Why should DevOps people learn Debian packaging?

In this day and age where new paradigms and languages such as DevOps, Node.js, Ruby, Go and next-gen JVM languages reign surpreme, people are constantly looking for the best way to manage their application and infrastructure deployments. People are flocking to Docker, or to custom schemes such as uploading binary tarballs to the server or even compiling on the server. But Docker requires large infrastructure overhauls as well as a lot of staff retraining. Once you start investing efforts towards that, it's hard to turn back even if there are more suitable alternatives. Binary tarballs are hard to manage, while compiling on the server is slow. Plus, none of these approaches have a good answer to automatic (security) updates.

But there may be a more suitable alternative; an ancient power which has been overlooked by many, waiting to be harnessed by you. If you use Debian or Ubuntu, then you can manage your applications by packaging them as Debian packages.

From the perspective of sysadmins who use Debian packages, they are tried and true: they are very reliable, they are well-understood by the industry and the community, there is a lot of tooling available for managing packages and they support automatic security updates.

Debian packages are tried and true: they are very reliable and, from the perspective of a user, are a joy to use. Unlike Docker and plain application directory tarballs, Debian packages support automatic updates.

Why should open source application developers learn Debian packaging?

You are publishing source code already. Plus, why should you publish Debian packages yourself instead of relying on distribution packagers?

Once upon a time, users were not shy about compiling and getting software directly from the author. But user experiences and expectations are changing: a lot of users nowadays struggle with compilation, and most of them get their software through binaries. And distribution packagers are notoriously slow: by the time they've published a package, their version already lags behind the latest release by a year. This may hurt your reputation: users are not experiencing the latest and greatest, or leave being frustrated that they can't get the latest version working. They may also generate needless support requests from users who are confused about the source installation process, draining time and energy from you which you could spend on more useful endeavors.

Imagine a future where users get the latest version as soon as you publish the source code. Users stay happy, secure (through automatic updates), and tell teach about your great contributions to the world. Many popular open source projects nowadays publish Debian packages directly. Examples include Node.js, Nginx, Jenkins and Phusion Passenger. So join us in this quest to give users the best.

Welcome to DPMD

Making Debian packages is somewhat of an arcane art. The learning curve is steep and the tooling is incoherent and non-intuitive. Most of the documentation out there make huge mental leaps, leaving many readers in a confused state where they only half-understand what's going on; or are written from the perspective that you are a third-party or distribution packager who packages an open source.

That is where we come in. DPMD is authored by Phusion, who has been publishing Debian packages for the Passenger application server since 2014. We are DevOps people and application developers like you, so we know the pains of learning Debian packaging.

DPMD consists of tutorials that teach you step-by-step how all the different concepts of Debian packaging fit together. You will understand every aspect in sufficient detail so that you can be confident and quick, and so that when a problem occurs you know how to fix it. DPMD provides practical tips on how to package more efficiently and effectively.

Tutorials

Preparation

  • Required prior knowledge, preparing the tutorial environment
  • Debian packaging concepts and workflow in a nutshell

Basics

  • Tutorial 1: building the simplest Debian binary package
  • Tutorial 2: building a binary package using dpkg-buildpackage
  • Tutorial 3: packaging a compiled application, introducing debhelper
  • Tutorial 4: making full use of debhelper
  • Tutorial 5: the debhelper pipeline and customizing debhelper steps

Intermediate

  • Tutorial 6: source packages
  • Tutorial 7: subpackages and .install files
  • Tutorial 8: multi-user file permissions and the fakeroot tool
  • Tutorial 9: packaging distribution-specific files

Advanced

  • Tutorial 10: system integration files: systemd services, Apache configs, man pages, crontabs and more
  • Tutorial 11: building packages for multiple distributions and architectures with pbuilder-dist
  • Tutorial 12: hosting packages and an APT repository on PackageCloud

Guides

  • Dealing with multiple distribution versions and architectures
  • Patching applications specifically for a distribution
  • Submitting packages for inclusion in Debian or Ubuntu's repositories

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].