Later, one realizes that a great deal of work had been spent locally on porting and adjusting the program to fit the local machines and setup. Source code is sometimes available on backup, but finding it may be very time-consuming. When the next version of the program needs to be installed, the same adjustments must be reconstructed. The same problems appear when one fixes a bug locally that is not merged into the official distribution. On the other hand, source code may be lying around for ages because everyone believes it is precious and cannot be regenerated.
Different people install programs in different ways and use different file system layouts.
Even if there are a local strategy, some programs will not fit because they require special treatment. If you want to find all files belonging to a program, you must spend a long time looking through your file system. Thereby some installation must do without some programs, or they are left with old versions. To obtain good performance, it is often desirable to make copies of programs on several machines for use from local disk, but administrating this distribution takes a lot of time. At this time, the basic concepts were well-defined.