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 namingmy-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 includegoogle-chrome-stable_current_amd64.deb
andsteam.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
ormy-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.