As operating system vendors port their code to more and more CPU's, the ability to distinguish between chip sets becomes more useful. This script could be called something like getos and be based on uname . I do not believe that one should attempt to solve this problem by putting that information in the same directory as the run-time binaries. You want to be able to share the package between different machines and machines of different architectures. The only real solution is to back it up with the same frequency as user data.
All packages are accessible through a common directory name.
Hard links cannot be used because they cannot span file systems and are not self-documenting. References to actual storage locations are constrained. This prevents machine-specific links from being scattered across a machine's filesystems. The usefulness of this rule will become apparent in the section below which discusses varying the number of copies of a package within a domain. Each package is stored in a single directory.