1. A method, comprising: receiving a request to perform a distribution upgrade from an installed distribution comprising a first set of software packages installed on a client machine to a target distribution comprising a second set of software packages; retrieving a version reconciliation data having stored thereon a most-current version of each software package in the second set of software packages; determining a version of each package in the second set of software packages; determining a most-current version for each package in the second set of software packages in view of the retrieved version reconciliation data; determining whether the most-current version of each package in the second set of software packages is a match for an upgrade for the version in the second set of packages; for each package that matches the most-current version, upgrading, by a processor executing a package manager, the matched package in the first set of packages to the version of the corresponding package in the second set of packages; and for each package that does not match the most-current version, retrieving the most-current version of the unmatched package from a package server; and upgrading, by the processor executing the package manager, unmatched package in the first set of packages to the retrieved most-current version.