All Projects → phusion → Debian Packaging For The Modern Developer

phusion / Debian Packaging For The Modern Developer

Debian packaging tutorials for the modern developer

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Debian Packaging For The Modern Developer

Trojan Tutor.github.io
trojan 教程 自建梯子教程 trojan教程 trojan-gfw 科学上网 代理工具 翻墙 Ubuntu Debian 小白教程 https伪装
Stars: ✭ 150 (-47.18%)
Mutual labels:  tutorial, ubuntu, debian
ISPC-PHPCompiler
Compile and manage multiple PHP versions easily!
Stars: ✭ 35 (-87.68%)
Mutual labels:  debian, ubuntu
ufw-docker-automated
Manage docker containers firewall with UFW!
Stars: ✭ 114 (-59.86%)
Mutual labels:  debian, ubuntu
Btfs
A bittorrent filesystem based on FUSE.
Stars: ✭ 2,984 (+950.7%)
Mutual labels:  ubuntu, debian
ansible-role-containerized-wordpress
Deploy & run Docker Compose project for WordPress instance with Let's Encrypt HTTPS encryption
Stars: ✭ 15 (-94.72%)
Mutual labels:  debian, ubuntu
MisakaLinuxToolbox
御坂妹妹们的Linux VPS工具箱
Stars: ✭ 237 (-16.55%)
Mutual labels:  debian, ubuntu
darknet.py
darknet.py is a network application with no dependencies other than Python and Tor, useful to anonymize the traffic of linux servers and workstations.
Stars: ✭ 71 (-75%)
Mutual labels:  debian, ubuntu
dawgmon
dawg the hallway monitor - monitor operating system changes and analyze introduced attack surface when installing software
Stars: ✭ 52 (-81.69%)
Mutual labels:  debian, ubuntu
kakaotalk-env
KakaoTalk Environment on Debian / Ubuntu Linux (데비안, 우분투 리눅스에서 카카오톡 설치 및 사용하기)
Stars: ✭ 45 (-84.15%)
Mutual labels:  debian, ubuntu
notion-linux
Native Notion packages for Linux
Stars: ✭ 887 (+212.32%)
Mutual labels:  debian, ubuntu
zfs-installer
Shell script program that prepares ZFS on a system, and installs Linux
Stars: ✭ 137 (-51.76%)
Mutual labels:  debian, ubuntu
8821au-20210708
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets - v5.12.5.2
Stars: ✭ 40 (-85.92%)
Mutual labels:  debian, ubuntu
ansible-ssh-keys
Ansible role to manage ssh keys in Debian-like systems
Stars: ✭ 26 (-90.85%)
Mutual labels:  debian, ubuntu
docker-debian-releases
Creates docker images of historic Debian-based distribution releases
Stars: ✭ 19 (-93.31%)
Mutual labels:  debian, ubuntu
dist-detect
Try to determine what Linux/Unix distribution is running on a remote host and get a hint if security updates are applied.
Stars: ✭ 14 (-95.07%)
Mutual labels:  debian, ubuntu
ansible-role-daemonize
Ansible Role - Daemonize.
Stars: ✭ 14 (-95.07%)
Mutual labels:  debian, ubuntu
Polybar Themes
A huge collection of polybar themes with different styles, colors and variants.
Stars: ✭ 3,687 (+1198.24%)
Mutual labels:  ubuntu, debian
sublime-patcher
Bash script for patching/cracking Sublime Text on Linux
Stars: ✭ 20 (-92.96%)
Mutual labels:  debian, ubuntu
pacstall-programs
Pacstall's official program repository
Stars: ✭ 63 (-77.82%)
Mutual labels:  debian, ubuntu
airgeddon deb packages
Useful related to airgeddon packages for Debian based Linux distributions
Stars: ✭ 22 (-92.25%)
Mutual labels:  debian, ubuntu

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].