1. A computer-implemented method to rank a plurality of shared libraries available for an operating system, the method comprising: receiving, by a library controller, a plurality of different software, wherein each of the plurality of different software uses one or more of the plurality shared libraries; for each of the plurality of different software, extracting library usage details for the one or more of the plurality of different software; determining library provisioning details for each of the plurality of software libraries provided by the operating system; and ranking the plurality of shared libraries based on the library usage and provisioning details.