Yes.
Omnipotence.
After a native distro-repo, I consider a third-party repo dedicated to one app the second best choice.
As you cab see in this example for Brave browser on PureOS, it is not exactly straight forward to add such a repo.
You think TeamViewer has no repo. That’s wrong. It is documented and you could set it up in a similar hassle as brave. But why bother?
You install the TeamViewer deb package, which adds the repo and the signature key. The updates (which are btw also deb packages) come automatically through the repo.
A deb is just an archive. You can right-click extract it to inspect it. (If you can’t, install a serious desktop environment like KDE Plasma
)
It contains two more archives. One with the actual files (of which usually at least one is a binary/executable) and folders that will be installed (=copied), and one more with meta data which you can inspect in any text editor. Most notably, it contains the scripts (if any), which are run during installation and removal of the package.
The minimum guarantee the package manager gives you, no matter if you install from a repository or you install a deb directly, is that no package will overwrite a file owned by a different package. This is what you lose when building from source or installing a “binary” of some form. The better term would be “executable”. Often it is just a script with an archive appended to it. The script would copy to the content of the archive to your system, similar to what the package manager might do. But with more potential for messing something up.
Yes. But it has nothing to do with the installation method. It just means Java is a mess ![]()
On Linux, you should rarely need to adapt the path. Usually, all executables are already installed in a dir that is included. If it is installed in a different place, that might be on purpose not in path. If desired, I’d prefer to add a symlink to the binary to /usr/bin instead.
About your other examples: I don’t really know much about them, but it seems to me this is something the respective communities need to sort out (our teach you). The problem is that these are their own ecosystems. Your examples are not classical “apps”. If it’s broken, there might still be a best practice, but it won’t change the fact that it is broken ![]()