3 ms·
If the app writes files into the installation, then you can't install in "Program Files", because Windows will capture and redirect those writes. Cygwin goes t
by e40 14y ago
If the app writes files into the installation, then you can't install in "Program Files", because Windows will capture and redirect those writes.
Cygwin goes to c:\cygwin because it's normal for all sorts of files in that directory to be written/changed. If it were in "Program Files", it wouldn't work at all.
To call this a bug is just absurd. It's Microsoft that changed the notion of what was valid and forced everyone else to conform. Some software isn't able to conform.
- Nilzor 14y agoApps should write data files to %APPDATA%, not Program Files where the executables shall reside. The only excuse for installing to c:\chocolatey is lazyness
- Shorel 14y agoIn this case, Chocolatey's data files are actually program files for the rest of the system. It's just a simple consequence to the fact that Chocolatey is not 'a program' with clearly defined 'data files', but a general purpose software manager (and one that should really be a part of Windows). The Von Neumann architecture won over the Harvard architecture for a reason. You should learn about it.
- SideburnsOfDoom 14y ago> The Von Neumann architecture won over the Harvard architecture for a reason And then we placed restrictions on it for another reason: security. See Data Execution Prevention http://en.wikipedia.org/wiki/Data_Execution_Prevention http://en.wikipedia.org/wiki/Data_Execution_Prevention Which, like these file system permissions, attempts to divide storage into things that you can write and things that you can execute, and the two only meeting in special cases. You're saying that Chocolatey needs elevated privileges to do it's special thing. Sure. Then it shouldn't be designed around the needs of users who can't get those permissions.
- dkl 14y agoThis is just plain naive. See Shorel's comment, and to that I'll add: That is YOUR definition of where to write data files. Not mine and certainly not everyone's idea. Saying that all apps should fit this model is just absurd.
- SideburnsOfDoom 14y ago> That is YOUR definition of where to write data files Well, Him and the designers of the operating system.
- dkl 14y agoMy point is they changed the definition. It wasn't always that way.
- SideburnsOfDoom 14y agoYou'd prefer that nothing changed? OSs evolve. Deal with it.
- drzaiusapelord 14y agoWell written software follows guidelines from the NT age (%APPDATA%, %PROGRAMFILES%, etc). I have no idea why people still think its the dos age of just making arbitrary folders on the root. Heck, this is currently a huge problem in android. The root of my /sdcard is a mess. Are we forced to relive every mistake with every new platform? I have no idea what capturing and redirecting writes mean. If you want to write, write somewhere you have permission to write to. I deploy software and sometimes need to changeup permissions for badly written software that likes to write to its install folder. I don't know why people excuse developer laziness like this. Imagine if your linux configs were written to /bin/ instead of /etc/ or stuff that should be in your profile is written to /sbin/ or if your logs were put in /etc/. Thats the linux equivalant of what lazy developers do to Windows.
- dkl 14y agoI have no idea what capturing and redirecting writes mean. All explained here: http://superuser.com/questions/384107/why-cant-i-edit-a-program-files-file-on-windows-7 http://superuser.com/questions/384107/why-cant-i-edit-a-prog...
- drzaiusapelord 14y agoYeah that's still a permissions issue. The user/account did not have write permissions so instead of just erroring out its trying to preserve legacy software by taking the change and ignoring it silently. Who knows why MS chose this path but the fault is still on the installer. The fix is either use the proper locations for app data OR change permissions on that folder. its not some insurmountable hurdle that forces you to use weird locations. If permissions were correct then it would be fine. Heck, install Apache on windows. Everything just works in the proper locations because they didn't half ass everything. Its also worth mentioning that this change came along when Vista was released; prior to that this didn't happen, yet crappy installers pulled the same shit: install to c:\, attempt to write to c:\windows\temp, etc and other DOS/Win95 legacy habits. Ironically, Vista helped fix all this. Now I see installers for open source or community projects uses proper locations much more often than not. I guess people got sick of the UAC prompts and corporate admins were complaining about how all these arbitrary writes weren't compatible with their limited users.