Consider also stow.
stow is a tool that allows you to create a set of packages in sub-directories: It helps keep things separate, while keeping them together. It does this by create links to them in a root directory (e.g. ~/bin), and helping you to manage these links when files are added and removed.
It is often used for /usr/local it will link to the various files in various sub-directories (etc, bin, lib …). This way there is no need to update $PATH.
So if you have
then you will end up with
- bin1 -> package1/bin/bin1
- bin2 -> package1/bin/bin2
- bin3 -> package2/bin/bin3
- bin4 -> package2/bin/bin4
- package1
- package2