| Windows 7: Installers. Why? |
19 Aug 2009
|
#1 | | |
Installers. Why? This thread is just a pondering, not a real technical question. That's why I've put it here. Sorry if it's in the wrong place! New poster here.
Why use installers? A recent experience has made me question the purpose of installers in general. Why not just have big Zips that you unzip into Program Files or wherever you want, and just run all the contained files? Why create registry entries and all that mess with installers?
For example. New game out, Aion. I had major installation problems. Got it installed on an XP system, couldn't get it working on a Vista system. So, I decided what the heck, I'll just copy the whole folder over to my Vista box.
Wouldn't you know, it worked. About a 3 minute copy, no patching, everything was already updated from the other PC. It just plain worked.
Is the purpose of installers just to create Start Menu > Programs shortcuts, and add (apparently unneeded!) registry entries?
This leads me to think, what if I had two hard drives and installed everything to the 2nd hard drive, and Windows was on the 1st. This way when I reformat Windows I don't reinstall all my apps. Seems in theory this would work, but I always scoffed at it working because of missing registry entries, programs not being in Add/Remove Programs or Programs and Features, etc. Stuff like that.
If it would work, why not just do it? Anyone got experience doing this? Experiences with problems, or nothing but good luck from it?  I may try it out since I like experimenting with stuff, and plus I have massive installs sometimes (mostly big games!). | My System Specs |
| OS Windows 7 Ultimate CPU AMD Athlon Black Edition 5000+ 2.6Ghz Motherboard MSI K9a Platinum Memory G.Skill 4gb Graphics Card Nvidia 8800GT 320mb Sound Card SoundBlaster Audigy Monitor(s) Displays Acer 22" Widscreen LCD Screen Resolution 1680x1050 Keyboard Microsoft Razer Reclusa Mouse Razer Diamondback 3g Green PSU 600 watt - forgot the brand! Hard Drives Two Western Digial 320gb, 5400rpm Internet Speed 10mbps RoadRunner |
19 Aug 2009
|
#2 | | Windows 7 Professional 64-bit |
Because there is much more going on than simply copying files. The installer sets up folders and files, registry entries, configuration files, environment variables and shortcuts. See here for a detailed article on what installers do. | My System Specs | | System Manufacturer/Model Number self built OS Windows 7 Professional 64-bit CPU Intel E8400 3GHz Motherboard Intel DX48BT2 Memory Kingston PC3-10700H 4Gb Graphics Card XFX Radeon HD 5850 BlackEd. Sound Card Asus Xonar DG Monitor(s) Displays 2x Samsung SM-T220HD 22" Screen Resolution 1680x1050 on two monitors Keyboard Microsoft Comfort Curve USB Mouse Razer Diamondback 3G PSU Thermaltake ToughPower 850w Case Thermaltake Armor Cooling Scythe Mugen II Hard Drives OCZ Vertex 2 120gb 3.5" (OS)
Seagate Momentus XT 500gb
Samsung F3 1Tb (games)
2x Samsung F1 1Tb Internet Speed 8128/443 |
19 Aug 2009
|
#3 | | Windows 7 Home Premium x64 7600 [MSDN] Los Angeles |
Good reply swarf. Except that I think the OP's point is that, why is it necessary? He has a valid question. PC programmers are lazy, or more specifically, spoiled. An effective and even highly complex program can be written in assembler, for example, as one self-contained executable, negating the need to create all of the other dependencies you describe. Beyond a simple .ini, the vast majority of programs shouldn't need installers. | My System Specs | | System Manufacturer/Model Number Custom Build/Mod OS Windows 7 Home Premium x64 7600 [MSDN] CPU Intel QX9650 Extreme 5.0 GHz Motherboard ASUS Rampage Extreme Rev2 Memory 8GB (4x2) Corsair Dominator DDR3 Graphics Card 2x Sapphire Radeon HD4870X2 (QuadFire) Sound Card SupremeFX X-Fi Monitor(s) Displays Dell 2408WFP 24" Panel Screen Resolution 1920x1200 Keyboard Logitech Mouse Logitech PSU Corsair HX1000 Case CoolerMaster - Cosmos S Cooling Custom Liquid - 320mm rad w/ 3x 80mm fans, CPU/NB/SB Blocks Hard Drives 4x WD Caviar Black 640GB (2TB+ Total)
MegaRAID SATA 300-8X Controller
2x RiDATA SataII SSD 64GB (Raid10)
1x LG Blu-ray read/write
1x Phillips LightScribe DVD read/write Internet Speed Fractional T1 - Shared Other Info OC'd to 5.0GHz @ 50c under full load |
19 Aug 2009
|
#4 | | Windows 7 Professional 64-bit |
I still think they are necessary considering the amount of scripted items they have to perform. Imagine asking the user to extract the files, configure inis, edit the registry, etc.
They simplify the whole process so that even the most novice of users can install an important program in order to get what they want done.
You may call an ini file simple, but to a computer novice they wouldnt have a clue. | My System Specs | | System Manufacturer/Model Number self built OS Windows 7 Professional 64-bit CPU Intel E8400 3GHz Motherboard Intel DX48BT2 Memory Kingston PC3-10700H 4Gb Graphics Card XFX Radeon HD 5850 BlackEd. Sound Card Asus Xonar DG Monitor(s) Displays 2x Samsung SM-T220HD 22" Screen Resolution 1680x1050 on two monitors Keyboard Microsoft Comfort Curve USB Mouse Razer Diamondback 3G PSU Thermaltake ToughPower 850w Case Thermaltake Armor Cooling Scythe Mugen II Hard Drives OCZ Vertex 2 120gb 3.5" (OS)
Seagate Momentus XT 500gb
Samsung F3 1Tb (games)
2x Samsung F1 1Tb Internet Speed 8128/443 |
19 Aug 2009
|
#5 | | Windows 7 Home Premium x64 7600 [MSDN] Los Angeles |
^^ Point taken but not initially refuted, either.
With the exception of file associations (a pesky throw-back to the 90's if you ask me), there's not much more a program should need to do to alter a systems' already inherent functionality. DLL's can be placed in the program's folder (negating the need for system32/ write access altogether), not to mention any other dependencies. The whole concept of AppData and the MyDocuments folder that preceeded it was included purely for downward compatibility issues with legacy software. This is the same mid-90's coding that, to this day, *requires* a swapfile or a TMP folder. The point being, it's legacy nonsense and entirely unnecessary.
Steve Gibson at GRC is the best example I can come up with, for the moment, if you consider that his applications of exceedingly powerful, yet none (that I am aware of) require any form of installation. Just think how PCs would run if everything were written in pure assembler? Wow. | My System Specs | | System Manufacturer/Model Number Custom Build/Mod OS Windows 7 Home Premium x64 7600 [MSDN] CPU Intel QX9650 Extreme 5.0 GHz Motherboard ASUS Rampage Extreme Rev2 Memory 8GB (4x2) Corsair Dominator DDR3 Graphics Card 2x Sapphire Radeon HD4870X2 (QuadFire) Sound Card SupremeFX X-Fi Monitor(s) Displays Dell 2408WFP 24" Panel Screen Resolution 1920x1200 Keyboard Logitech Mouse Logitech PSU Corsair HX1000 Case CoolerMaster - Cosmos S Cooling Custom Liquid - 320mm rad w/ 3x 80mm fans, CPU/NB/SB Blocks Hard Drives 4x WD Caviar Black 640GB (2TB+ Total)
MegaRAID SATA 300-8X Controller
2x RiDATA SataII SSD 64GB (Raid10)
1x LG Blu-ray read/write
1x Phillips LightScribe DVD read/write Internet Speed Fractional T1 - Shared Other Info OC'd to 5.0GHz @ 50c under full load |
19 Aug 2009
|
#6 | | Win7 Build 7600 x86 Netherlands |
An important reason could also be shared libraries, aka DLL's.
In DOS, every program was an island on it's own, using it's own files.
Because of that there could be a large number of duplicate files on the system.
With programs getting bigger and bigger and the need for interoperability, shared libraries were introduced.
Almost any program nowadays uses windows libraries and common files to make use of pieces of the OS.
To make this work, a registry is necessary to tell each program where parts of the OS can be found, and tell the OS where parts of the program are, how the program is set, and what it's properties are.
I think that's the main reason you cannot just dump a program in a folder and let it run. (some little proggies do without registry, but they carry their own dll's)
Greetz | My System Specs | | OS Win7 Build 7600 x86 CPU Pentium II 300MHz Motherboard Asus Memory 32mb EDO RAM Graphics Card Diamond Viper Sound Card Soundblaster 16 Monitor(s) Displays 14" AOC CRT 16K color Screen Resolution 800x600 Keyboard Trust Ergonomic Mouse Generic PSU 110 Watts Cooling Passive Hard Drives 300mb Quantum fireball Internet Speed 256K u 128K d |
19 Aug 2009
|
#7 | | Win7 that town with the people & the name |
I will say this: installers have been getting very fast in the last few years. I remember 3-4 years ago waiting 30 mins to install programs. | My System Specs | | OS Win7 CPU Intel E8300 @ 2.83 Motherboard nVidia Memory 2 Gigs Graphics Card nVidia 9800GT Monitor(s) Displays Acer V173 Hard Drives 500GB HD |
19 Aug 2009
|
#8 | | Windows 7 Ultimate x64 SP1 Somewhere on the 3rd rock from the sun. |

Quote: Originally Posted by Xplaced This thread is just a pondering, not a real technical question. That's why I've put it here. Sorry if it's in the wrong place! New poster here.
Why use installers? A recent experience has made me question the purpose of installers in general. Why not just have big Zips that you unzip into Program Files or wherever you want, and just run all the contained files? Why create registry entries and all that mess with installers?
For example. New game out, Aion. I had major installation problems. Got it installed on an XP system, couldn't get it working on a Vista system. So, I decided what the heck, I'll just copy the whole folder over to my Vista box.
Wouldn't you know, it worked. About a 3 minute copy, no patching, everything was already updated from the other PC. It just plain worked.
Is the purpose of installers just to create Start Menu > Programs shortcuts, and add (apparently unneeded!) registry entries?
This leads me to think, what if I had two hard drives and installed everything to the 2nd hard drive, and Windows was on the 1st. This way when I reformat Windows I don't reinstall all my apps. Seems in theory this would work, but I always scoffed at it working because of missing registry entries, programs not being in Add/Remove Programs or Programs and Features, etc. Stuff like that.
If it would work, why not just do it? Anyone got experience doing this? Experiences with problems, or nothing but good luck from it?  I may try it out since I like experimenting with stuff, and plus I have massive installs sometimes (mostly big games!). OK, a couple of points here.
1) I have 3 HDs - and I routinely install games (manually) to my second HD - not to have he game after an OS reinstall, but to keep them away from the pesky issues that the permission-protected Program Files tree in Vista and 7 (XP does not protect that folder tree at all - yet another reason why viruses and other malware were able to run amok on XP). It works - and it works well. Even if you have a single HD, if you have a good amount of space, shrink it down and make a separate partition and manually install games onto that partition (I'd recommend well over 40 GB if you game a lot). The difference is staggering - I routinely play games that most people have issues installing in Vista and 7 b/c of this very fact.
2) Using the information I just listed above, you can see why unzipping an app into the PF tree would not work in Vista and 7 - again, b/c of the permissions. Older programs written for 2000 and XP want to have write access to the folder that they are installed in - a big no no in the world of NT 6 (aka Vista and 7). This obviously causes issues, and installers today are written with elevation modules to gain the accepted level of permissions to be able to not only write to the PF tree but also the Windows system folders, the registry, etc - all these are now considered protected areas of the system, and thus need special permissions to be able to perform even the simplest functions in them - writing, editing, etc.
Finally, 3) Installers will also copy pre-requisite files to appropriate locations (uninstaller files to system folders, DLLs to system folders, initialization files to your settings folder (usually now located under your user tree), etc. If you have one big ZIP, again, you need write access to where you want to put it as well as having to make sure that your DLL in the ZIP is not older than one you already have on your HD (something the installer does for you when installing), etc. One very big problem would be if your app is hard coded to read a .DLL from a default location - if you unzip it to a completely different folder, then it doesn't know where to look. If it is accessed using relative paths, then unless your app polls the system to make sure another version is not already loaded into memory, it can make for a massive headache as you have 2 different versions of the DLL being used on the same system simultaneously.
There are other issues as well, but some of the posts after yours also deal with them so I'll answer them there.... 
Quote: Originally Posted by swarfega Because there is much more going on than simply copying files. The installer sets up folders and files, registry entries, configuration files, environment variables and shortcuts. See here for a detailed article on what installers do. Good link 
Quote: Originally Posted by Captain Zero Good reply swarf. Except that I think the OP's point is that, why is it necessary? He has a valid question. PC programmers are lazy, or more specifically, spoiled. An effective and even highly complex program can be written in assembler, for example, as one self-contained executable, negating the need to create all of the other dependencies you describe. Beyond a simple .ini, the vast majority of programs shouldn't need installers. Wrong. a simply .ini would have to be saved in the users tree in order to allow for custom settings on a per user basis - if it is saved with the App itself, then you either have to edit (append) every single users' settings into that file - on a workstation that has 50 users, with 2000 lines of settings strings per user, that would be a large file that needs to be loaded every time. If you have a ZIP file with an app that reads the .ini from the local (relative path) directory that it is installed in, you lose the ability to easily allow for multiple user configurations. 
Quote: Originally Posted by swarfega I still think they are necessary considering the amount of scripted items they have to perform. Imagine asking the user to extract the files, configure inis, edit the registry, etc.
They simplify the whole process so that even the most novice of users can install an important program in order to get what they want done.
You may call an ini file simple, but to a computer novice they wouldnt have a clue. Extraction is actually relatively easy, seeing as XP+ supports ZIP file viewing.... 
Quote: Originally Posted by Captain Zero ^^ Point taken but not initially refuted, either.
With the exception of file associations (a pesky throw-back to the 90's if you ask me), there's not much more a program should need to do to alter a systems' already inherent functionality. DLL's can be placed in the program's folder (negating the need for system32/ write access altogether), not to mention any other dependencies. The whole concept of AppData and the MyDocuments folder that preceeded it was included purely for downward compatibility issues with legacy software. This is the same mid-90's coding that, to this day, *requires* a swapfile or a TMP folder. The point being, it's legacy nonsense and entirely unnecessary.
Steve Gibson at GRC is the best example I can come up with, for the moment, if you consider that his applications of exceedingly powerful, yet none (that I am aware of) require any form of installation. Just think how PCs would run if everything were written in pure assembler? Wow. applications that are modeled as Steve's are, using his "Small is beautiful" credo, if you will, are great - but when you think of the fact that the entire OS that you are using is object oriented, modular, and does not load all at once, but loads modules as need, then you begin to realize that it is not *laziness* of coders but rather following the same model. If I need to, say, edit a document, I won't want to run an app that takes 1.4 GB of RAM but can, in one single executable, edit a document, create spreadsheets, check my mail, share files through office interconnectivity, preform desktop publishing, query a database, or even *shudder* draw diagrams. It is all about object oriented programming, and the entire OS is modeled on VB - all these .DLLs, other resource files, etc. are very very different from C programs.
Granted, we could have several large 500 MB programs that can be called from each as needed, but you lose extensibility. Show me one of Gibson's programs that we, as a layman, can extend - add format support, add functions to, etc. The model now is such that it allows extensibility (even if limited) and my conspiracy theory is that this was set up this way as a direct retaliation aimed at Apple for the proprietary nature.
Finally, there is a lot more going on these days with our modern OSs (Visa and 7) then there was back then, and now is the time for a greater need for installers than ever in the past. 
Quote: Originally Posted by squonksc An important reason could also be shared libraries, aka DLL's.
In DOS, every program was an island on it's own, using it's own files.
Because of that there could be a large number of duplicate files on the system.
With programs getting bigger and bigger and the need for interoperability, shared libraries were introduced.
Almost any program nowadays uses windows libraries and common files to make use of pieces of the OS.
To make this work, a registry is necessary to tell each program where parts of the OS can be found, and tell the OS where parts of the program are, how the program is set, and what it's properties are.
I think that's the main reason you cannot just dump a program in a folder and let it run. (some little proggies do without registry, but they carry their own dll's)
Greetz Another good way of putting it; however, there remains the inherent problems I noted above for all but the smallest of programs, as squon also points out. | My System Specs | | Computer type PC/Desktop System Manufacturer/Model Number The Beast Model V OS Windows 7 Ultimate x64 SP1 CPU Core i7 965 EE @3.6 GHz Motherboard eVGA x58 Classified3 Memory 3 * 4GB Mushkin Enh Redline CL7 DDR3 1600 MHz (PC3-12800) Graphics Card eVGA 560 Ti 448 Core Classified + eVGA GTX260 SSC (PhysX) Sound Card Realtek HD Audio (on-board) Monitor(s) Displays 2 * Acer X213Wbd Screen Resolution 2 * 1680 x 1050 Keyboard Logitech G15 Keyboard Mouse Logitech Performance Mouse MX PSU ThermalTake BlackWidow TX TR2 850 W Case ThermalTake Level 10 GT (Black) Cooling Corsair H100 CPU | 2 * TT 140mm TriLED | 2 * Antec TriCool Hard Drives 1 * Intel Cheryville 520 180 GB SATA III SSD |
1 * Intel X-25M G2 80 GB SATA II SSD |
2 * Seagate 1 TB 32MB Cache 7200.12 SATA II Mech. Internet Speed Cable - 35 Mbit down / 12 Mbit up advertised (30 / 6 act.) Antivirus M$Se / MBAM Pro / WinPatrol Pro Browser Chome(dev) / Canary / Firefox Minefield / Opera Next / IE 10 Other Info Wacom Bamboo Touch |
Hauppauge WinTV-HVR-1850 |
Optimus STAV-3400 AV Receiver |
Bose 301 Series III Speakers (Main channel) |
Bose 161 Speakers (Surround) |
Optimus 3 way 100-W speaker (Center) |
Logitech Clearchat PC Wireless Headset |
Koss ProDJ 100 Headphones |
Microsoft LifeCam Studio |
Motorola Droid BIONIC |
ASUS Transformer Infinity 64GB |
19 Aug 2009
|
#9 | | |
I think the real answer is that ultimately we really don't need installers for much else than file associations, and that is why there are bazillions of portable apps available, even for very complex programs (for example Adobe Premiere Pro CS4 and After Effects.) Interestingly, almost none of them work in Windows 7! For this reason I have started using XP and Vista more often because I can carry my setting in the portable apps from machine to machine. | My System Specs | | System Manufacturer/Model Number HP m9200t OS Windows XP x64 CPU Intel Core 2 Quad Q9450 2.67 GHz Motherboard Asus IPIBL-LB Memory 8GB DDR2 Graphics Card NVIDIA GeForce 8800 GT Sound Card Integrated Audio Screen Resolution 1920x1080 |
19 Aug 2009
|
#10 | | |

Quote: Originally Posted by johngalt OK, a couple of points here.
Using the information I just listed above, you can see why unzipping an app into the PF tree would not work in Vista and 7 Just for the record, it usually works just fine in Vista for me, but not in 7. Anyone know why? | My System Specs | | System Manufacturer/Model Number HP m9200t OS Windows XP x64 CPU Intel Core 2 Quad Q9450 2.67 GHz Motherboard Asus IPIBL-LB Memory 8GB DDR2 Graphics Card NVIDIA GeForce 8800 GT Sound Card Integrated Audio Screen Resolution 1920x1080 Installers. Why? problems? All times are GMT -5. The time now is 05:27 AM. | |