deb package 🔼
deb / description 🔼
A deb file (package) is an archive tha adheres to a certain format called '''.deb format. There are currently two types of deb packages :
- Binary packages
- Source packages
That format is described (is there a spec?) in :
- linux man pages : $ man 5 deb ( or $ man 'deb(5)' )
- debian doc / FAQ : @
deb / binary 🔼
deb / binary / description 🔼
- debian docs/ policy : @
deb / binary / package filename 🔼
A file that is a .deb package must has a filename with a certain syntax. That syntax is not documentented in deb(5) manpage.I list various sites where that syntax is described without being sure if there is one source:
Debian package name format: The Debian binary package file names has the following structure:
package-nameupstream-version-debian.revisionarchitecture.deb
eg: openttd_14.1-1_amd64.deb
package-name: openttd
upstream-version: 14.1
debian.revision: 1
architecture: amd64
- starts with the package name
- version (enclosed in underscores)
- release
- architecture for which package built
- deb extension
deb / binary / package name 🔼
Every package must have a name that's unique within the Debian/Devuan archive. So although in a Devuan repository we there can be many versions of a certain package all can share the same package by sharing the same Package name.
deb / binary / structure 🔼
deb / source 🔼
deb / source package / description 🔼
deb / source package / ref 🔼
An Debian source package is descriped in:
- debian docs / policy
- debian docs / faq
- debian docs / debian-handbook / 5.3. Structure of a Source Package
- debian docs / developers-reference / 5.4. Layout of the source package
deb / source package / types 🔼
There are two types of Debian source packages:
- the so-called native packages, where there is no distinction between the original sources and the patches applied for Debian
- the (more common) packages where there's an original source tarball file accompanied by another file that contains the changes made by Debian
deb / source package / filename 🔼
deb / source package / contents 🔼
For the native packages, the source package includes :
- a Debian source control file (.dsc) and
- the source tarball (.tar.{gz,bz2,xz}).
A source package of a non-native package includes:
- a Debian source control file,
- the original source tarball (.orig.tar.{gz,bz2,xz}) and
- the Debian changes (.diff.gz for the source format "1.0" or .debian.tar.{gz,bz2,xz} for the source format "3.0 (quilt)").
deb / mynotes 🔼
In the early unix days getting a Unix i think it was like getting a distribution.
A package is a granularity basic level of software management. By that i mean that it works as a contract between a programmer that publish software and the administrator-user of an installed distribution. That contract tries to deliniate the infinite multitude of ways to communicate-exchange-transfer programs-data in a very narrow space.
I think the minimal package would be a binary file. A certain program. But a program usally need certain shared libraries. It seems the shared libraries are the hidden stars of a distribution. Assumming that a user wants programs to be social and integrate into complex workflows with other programs it seems that the shared libraries can become the magic glue that imposes certain comm types.
Thus when we download a program with it's own libaries (appimage , flatpak etc) means propably that that program wont respect current workflows in our systems since it could have incompatible versions of libraries.