[ESS] Warning about Emacs/ESS administration and Windows 7 Weirdness
Paul Johnson
pauljohn32 at gmail.com
Wed Sep 1 21:43:42 CEST 2010
I installed Emacs with ESS from Prof Goulet's site (thanks again!
http://vgoulet.act.ulaval.ca/en/ressources/emacs/) on some machines
and everything worked great. For me. I mean, not for other users on
the machines. I had that same old problem that R was installed in
c:\Program Files, but Emacs in C:\Program Files (x86) did not find it.
Then I removed R and installed the 32bit version in C:\Program Files
(x86), but Emacs/Ess could not find it either. I suppose my registry
settings were so full of crap by that time it was a lost cause.
But that's not such a bad problem. As the Windows admin, I can change
the site-start.el file in Emacs to let it know where Rterm is. No big
deal.
But when another user logs in, WHAMO, site-start.el is changed back to
the original thing. Rterm.exe not found. It was very maddening. I
kept having to make the same change every time a new user came along.
Later I learned that Win7 has a 'security' setup called UAR and if you
edit a file in C:\Program Files (x86), even if you are the
administrator, Win7 thinks you don't mean what you are doing, and so
it transparently saves your changes in a different place inside your
own user account. So the change you make works for you only, not for
other users. The new version goes into a folder "VirtualStore" that
is in a hidden part of the user folder. Any program the user runs
that looks for C:\Program Files (x86)\GNU Emacs
23.7\site-lisp\site-start.el does not get what it asks for. Instead,
it gets C:\Users\pauljohn\AppData\Local\VirtualStore\...
I pokee and bashed this long enough to find a "workaround". If you
use the admin power to copy the file to some "unprotected" directory,
say Desktop, then you can revise it. Then manually rename the
original, and then delete it, then copy the new one back there. It
will ask for an admin password, but at least it works. While you do
that, you can monitor the VirtualStore folder to make sure no changes
are getting stuck there. (This is why I say this is a completely
idiotic security regime. It won't let you edit files in c:\Program
Files, but it will allow you to delete them and copy new ones in their
places.)
I have been wondering what should be the best way to avoid this silly system.
If Emacs defaulted to install another folder, say C:\NonSuckyPrograms,
don't think UAR would bother it. Any folder that does NOT have
"Program Files" or "Windows" in it would be OK. I think.
Here's a pretty good post about it. It says you can turn off a number
of security features, but I don't want to do that for fear of actually
allowing in an attacker.
http://www.jondavis.net/techblog/post/2008/02/Beyond-Disabling-UAC-Disable-Virtual-Store.aspx
--
Paul E. Johnson
Professor, Political Science
1541 Lilac Lane, Room 504
University of Kansas
More information about the ESS-help
mailing list