Debian – Is it safe to rename .deb file named by the standards

debdebianpackagingUbuntu

The established structure of the .deb file name is package_version_architecture.deb.
According to this paragraph:

Some packages don't follow the name structure
package_version_architecture.deb. Packages renamed by dpkg-name will
follow this structure. Generally this will have no impact on how
packages are installed by dselect/dpkg, but other installation
tools might depend on this naming structure.

Question:

However, are there any real situations when renaming the .deb package file is highly unrecommended? Is it a normal practice to provide a custom .deb file name for my software?

Example:

  • My Program for Linux v1.0.0 (Pro).deb — the custom naming
  • my-program_1.0.0-1_amd64.deb — the proper official naming

Note:

I'm not planning to create a repo, I'm just hosting the .deb package of my software on my website for direct download.

Best Answer

Over the years, I’ve accumulated a large number of .deb packages with non-standard names, and I don’t remember running into any problems. “Famous” packages with non-standard names that people might come across nowadays include google-chrome-stable_current_amd64.deb and steam.deb. (In both cases, the fixed, versionless name ensures that a stable URL can be used for downloads, and a stable name for installation instructions.)

However I don’t remember running across any with spaces in their names; that shouldn’t cause issues with tools either, but it might cause confusion for your users (since they’ll need to quote the filename or escape the spaces if they’re using shell-based tools).

Another point to note is that using a non-standard name which isn’t the same as your package name (as stored in the control file) could also cause confusion, e.g. when attempting to remove the package (since the package name won’t be the same as the name used to install it).

As a result of all this, if you don’t want to stick to the canonical name I would recommend something like my-program.deb or my-program_amd64.deb (depending on whether you want to support multiple architectures). You can make that a symlink to the versioned filename too if you want to allow older versions to be downloaded.

Related Question