1. A method for deciding whether to install a first application within a candidate environment in a plurality of candidate environments, each candidate environment comprising one or more other applications, the method comprising: analyzing, by a processor, the first application and the candidate environment to determine whether there is a potential for the first application to interact in an unintended manner with each application of the one or more applications already installed in the candidate environment, wherein each application of the one or more applications are associated with one or more rules that specify at least one of: an entity that is to be used internally within the application; an entity that is provided by the application but may be used outside of the application; or an entity that is to be procured from outside of the application, and wherein the analyzing is performed by: determining, by the processor, whether an internal import defined by the first application matches an internal import or an internal export defined by each application of the one or more a applications already installed in the candidate environment, wherein a match determines there is potential for an unintended interaction; and responsive to determining that there is no potential for the unintended interaction, identifying, by the processor, the candidate environment as a suitable environment into which to install the first application, and wherein the unintended interaction is when a rule in the one or more rules would be broken by an interaction between the first application and the application of one or more applications already installed in the candidate environment.