To have different versions of the software installed at the same time, you need to use different package names rather than different version numbers; only one version of a package (identified by name) can be installed at the same time.
For example, let's say you need to have MySoft 7 and MySoft 8 installed at the same time, but also need to upgrade each version when the vendor releases minor updates. Maybe you start with MySoft 7.0 v6 which you want installed in
/opt/vendor/mysoft7 and MySoft 8.0 v2 which you want installed in
/opt/vendor/mysoft8 then you would build two packages:
mysoft8_8.0.2_amd64.deb. In theory you can use whatever version scheme you want, but it would be advisable to conform to Debian conventions when specifying the version number.
Then, if you need to upgrade either version due to upstream changes from the vendor, then you would build a new version of the relevant package and update the relevant version number. For example, if MySoft 8.0 v3 is released, you would now build:
Installing this package would then automatically uninstall
mysoft8 version 8.0.2 thereby removing the files installed from
mysoft8_8.0.2_amd64.deb and replacing them with the files contained in
If you need every single upstream version installed at the same time, then you would need to use a different package name for every version. At this point, the package version number becomes irrelevant and you can just use
1.0. Each would need to install to a different directory, because a file can only be owned by one package at a time. In this scenario, you would have to clean up unwanted old versions of the software manually by uninstalling the relevant package.
I am slightly unclear on why your current deb would try to reinstall if it is already installed (which, unfortunately, is the crux of your question!). It suggests that
apt thinks that the version of the package available in your repo is higher than the version installed. Perhaps the size of the version number is confusing it?
/var/log/apt/history.log should show you what is going on.