[Note to folks with itchy 'close' fingers: this is not a duplicate of Noninteractively upgrade all packages, since those answers rely on code or package in one's init.el
, which would suffer from the following problem described below.]
I'm currently-unpackaged, but migrating there now. I'm also not much of an Org user now, but hope to increase my usage soon. I noticed this open issue on Eric Schulte's popular ESK, which says (edited to collapse nested blockquote)
As people will quickly tell you when you ask about weird Org issues,
"when installing from ELPA, please do so from a fresh Emacs session
where no Org function has been called."
OTOH, ESK is not the only Emacs config out there that uses literately-programmed tangle
d Org, so I'm guessing "there's gotta be a way" to, e.g., run package updates (at least for Org) offline. Perhaps with a one-liner like
emacsclient -c -a '' -e '(unknown-package-update-magic)'
? (I'm guessing one must use -e
since I'm not seeing any equivalent of --no-init-file
for emacsclient
, at least for my version=24.4--am I missing something?)
Specifically I'd like to know:
1.
Does the above instruction still apply? I.e., should (at least, to avoid "weird issues") one still update Org packages from a never-Org'ed session?
If so,
2.
When referring to an Emacs session
in this context, how does running emacs --daemon
(either directly after host boot, or indirectly via, e.g., emacsclient -c -a '' -e
) change the situation? E.g., if I close my Emacs client (with C-x C-c
), but leave the daemon running, and then startup a new client, am I still in the same "Emacs session" until I kill/restart the daemon, or should I do something else to make a running daemon start a fresh Emacs session
?
3.
How to create a fresh Emacs session
in which no Org function has been called
if one's init.el
(or code called by one's init.el
) calls Org functions? For extra credit, show how to create an Emacs session (after answering the previous question :-) that can programmatically update all one's packages (or at least one package name provided by the user) and then exit.