Actually, if there's no code incompatibilities installing a component (more precisely, a package) is as simple as opening it and pressing install button. The problem is many packages are written in the past and aren't maintained to follow the changes.