6 ms·
IME "root of C: drive" default install location is often a sign that software has bugs when run from paths containing space characters.
by nfg 14y ago
IME "root of C: drive" default install location is often a sign that software has bugs when run from paths containing space characters.
- SideburnsOfDoom 14y agoYep. That's old-school though, you don't see much of it these days.
- pjmlp 14y agoI never understood what is so hard in treating the space as just another character.
- j-kidd 14y agoBecause space is not just another character. Space separates args.
- ygra 14y agoBut an installer talking to the operating system shouldn't need to separate arguments anywhere.
- laumars 14y agoWhich is why escape characters and quotations were invented
- pjmlp 14y agowhich is why most arguments tend to have a way to be recognized like -, -- or /
- lotyrin 14y agoThose are how one differentiates flags from arguments, which is a separate problem.
- pjmlp 14y agoKind of. If your flag is for a path, you can assume everything up to the next flag is a path name. myprog -filename here is my path with spaces -another_flag Of course this depends on how the shell gives the arguments to the program. On the other hand, there is no excuse why some GUI programs cannot handle spaces.
- lotyrin 14y agocp path1 path2 So, that's just one file?
- jfb 14y agoIt is an abject failing of software that perfectly reasonable characters are barred from filenames.
- SideburnsOfDoom 14y agoTreating the space as just another character in a path means that sometimes paths have to be placed inside quotes so the space isn't taken for the end of a commandline arg. Some old software didn't do that.
- Nilzor 14y agoChocolatey is not old software
- SideburnsOfDoom 14y agoNo, it does not have that excuse.
- darkchasma 14y agoBut the packages it installs may.
- negativity 14y agoThe tilde file names in windows harken back to ye olde days of MSDOS, where file names were only allowed to be 8 characters long, and the extension was only allowed to be a dot followed by three characters (aka: the "eight-dot-three" file naming convention). Like, if someone generated several thousand files, all named: "New Text Document.txt" In the background, some versions of Windows will also record an alternate file name for ye olde backwards compatibility, such as: NEWTEX~1.TXT NEWTE~10.TXT NEWT~100.TXT NEW~1000.TXT NE~10000.TXT N~100000.TXT It's not really about the space characters, so much as it is about length constraints from back when 640KB should've been more memory than anyone will ever need.
- chayesfss 14y agolike c:\oracle?
- mahmoudhossam 14y agoand C:\Python27
- SideburnsOfDoom 14y agoFor Python what may be happening is a good piece of software that is not native to Windows. It works well enough on Windows, but the windows installer is very low on the developers' priorities and expertise. So the windows install experience ends up an afterthought that just barely works. It also shows how anyone claiming "my tool is special, unlike others it's better to install this under C:\" is not showing good neighbourliness. It just encourages others to make the same mistake. For Oracle, that probably also holds ... except maybe for the "good software" part.
- e40 14y agoIf 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.
- pizza 14y agoCouldn't you do PROGRA~1 for "Program Files" or PROGRA~2 for "Program Files (x86)"?
- niggler 14y agoIf there were another directory like "Program Aardvarks", then the DOS names wouldn't necessarily be PROGRA~1 and PROGRA~2