How Ninite Works
Ninite tries to behave exactly like a technical friend you've asked to install a few apps for you. This means that Ninite installers, regardless of when or where they were created:
- Say "No" to toolbars or other junk
- Always install the latest version of an app
- Install the right 32-bit or 64-bit version for a PC
- Install apps in the PC's language
- Skip apps that are already up-to-date
- Upgrade an app if it's out of date
We put a ton of effort into making sure Ninite just does the right thing and we think that's a big reason why people like using it so much.
All the Details
When you make a Ninite installer at http://ninite.com you're really making an entry in our database that records your app choices. This database entry is also associated with a random installer ID and, if you're using Ninite Pro, your account.
Every Ninite installer you download is stamped with its installer ID. When you run an installer it asks our servers for the latest configuration info for its ID. This means Ninite installers always install the latest versions of apps, regardless of when they were created. It also means that Ninite installers need an internet connection to work. If you want to lock the version that gets installed or make a fully-offline installer we have a /freeze switch in Ninite Pro.
Once it gets the configuration info the installer checks for currently installed versions of the apps. Apps that are already up-to-date are skipped. This means you can run the same Ninite installer over and over again to keep apps current. If you need to repair an app that's already installed you can force a reinstallation by clicking the retry/reinstall link at the top of a completed Ninite installer.
Now that Ninite knows which apps it's installing on this PC it begins to download and install each one. Downloads and installations work through the list of apps independently, so as the first app is being installed the second and third may be completely downloaded. Ninite Pro has a download cache that often allows the download step to be skipped and lets Ninite Pro finish faster.
Downloads come from the publishers' sites and are checked for correct digital signatures or matching SHA-1 hashes before Ninite uses them. Ninite automatically downloads and installs the proper 64-bit or 32-bit versions of apps. It also picks apps that match the PC's language setting. These selections are done at runtime so the same Ninite .exe can install 64-bit Portuguese apps on one PC and 32-bit English ones on another.
After downloading an app's installer and confirming its validity Ninite begins to install it. The specifics of this differ for each app but our most general technique is to hide the installer's window when we run it and then automate the proper clicks and input to install the app right. Ninite's automation says "No" to any toolbars or other junk just like if you asked a technical friend to install an app for you. Settings like installation location are left as their defaults.
And that's how Ninite installs an app.