'Determines the best supported package management system for the given
operating system running and initializes the appropriate backend.'

def _init_on_demand(self):

    if (not self.initialized):
        inspector = SystemInspector()
        backend_type = inspector.get_package_management()
        backend_mapping = {'apt-get': AptBackend, 'yum': YumBackend, 'zypper': ZypperBackend}
        if (backend_type not in backend_mapping.keys()):
            raise NotImplementedError(('Unimplemented    package    management    system:    %s.' % backend_type))
        backend = backend_mapping[backend_type]
        self.backend = backend()
        self.initialized = True
