* Sharing .emacs.d between different hosts: issues with shared elpa folder
@ 2015-01-23 9:33 Karl Voit
2015-01-25 13:18 ` Alexis
0 siblings, 1 reply; 3+ messages in thread
From: Karl Voit @ 2015-01-23 9:33 UTC (permalink / raw)
To: help-gnu-emacs
Hi!
I sync my .emacs.d folder between Windows, OS X, and GNU/Linux.[1]
So far, this worked pretty well. In recent time, I got some issues
on Windows when I installed or updated packages via GNU/Linux Emacs.
For example, this one happened today:
| Debugger entered--Lisp error: (invalid-function "python")
| "python"("virtualenv" "tools")
| byte-code("\300\301\302\303\304\305\306\307\310\311\312\"\207" [define-package "pyvenv" "20150110.421" "Python virtual environment interface" nil :url "http://github.com/jorgenschaefer/pyvenv" :keywords "python" "virtualenv" "tools"] 11)
| load("c:/Users/karl.voit/AppData/Roaming/.emacs.d/elpa/pyvenv-20150110.421/pyvenv-pkg" nil t)
| package-load-descriptor("~/.emacs.d/elpa" "pyvenv-20150110.421")
| package-maybe-load-descriptor("pyvenv" "20150110.421" "~/.emacs.d/elpa")
| package-load-all-descriptors()
| package-initialize()
| eval-buffer(#<buffer *load*-245402> nil "c:/Users/karl.voit/.emacs.d/main.el" nil t) ; Reading at buffer position 1666
| load-with-code-conversion("c:/Users/karl.voit/.emacs.d/main.el" "c:/Users/karl.voit/.emacs.d/main.el" nil nil)
| load("C:/Users/karl.voit/.emacs.d/main.el")
| eval-buffer(#<buffer *load*> nil "c:/Users/karl.voit/AppData/Roaming/.emacs.d/init.el" nil t) ; Reading at buffer position 469
| load-with-code-conversion("c:/Users/karl.voit/AppData/Roaming/.emacs.d/init.el" "c:/Users/karl.voit/AppData/Roaming/.emacs.d/init.el" t t)
| load("c:/Users/karl.voit/AppData/Roaming/.emacs.d/init" t t)
| #[0 \205\262
So far, I resolved it by deleting the elpa/$PACKAGE folder. Some
times, re-installing via Windows/Emacs helped.
I read that sharing the elpa folder is not recommended and I guess
this results in issues like the one above.
I don't want to manage different sets of packages per host. So: how
do I accomplish working sharing of packages/dot-emacs?
Thanks!
[1] https://github.com/novoid/dot-emacs
--
All in all, one of the most disturbing things today is the definitive
fact that the NSA, GCHQ, and many more government organizations are
massively terrorizing the freedom of us and the next generations.
http://Karl-Voit.at
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Sharing .emacs.d between different hosts: issues with shared elpa folder
2015-01-23 9:33 Sharing .emacs.d between different hosts: issues with shared elpa folder Karl Voit
@ 2015-01-25 13:18 ` Alexis
2015-01-25 14:06 ` Rasmus
0 siblings, 1 reply; 3+ messages in thread
From: Alexis @ 2015-01-25 13:18 UTC (permalink / raw)
To: help-gnu-emacs
Karl Voit writes:
> I read that sharing the elpa folder is not recommended and I guess
> this results in issues like the one above.
>
> I don't want to manage different sets of packages per host. So: how
> do I accomplish working sharing of packages/dot-emacs?
In terms of package management, you could perhaps use Pallet:
https://github.com/rdallasgray/pallet
to create a Cask file which you sync between your various systems, and
then do `pallet-install` and `pallet-update` as required.
Alexis.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Sharing .emacs.d between different hosts: issues with shared elpa folder
2015-01-25 13:18 ` Alexis
@ 2015-01-25 14:06 ` Rasmus
0 siblings, 0 replies; 3+ messages in thread
From: Rasmus @ 2015-01-25 14:06 UTC (permalink / raw)
To: help-gnu-emacs
Alexis <flexibeast@gmail.com> writes:
> Karl Voit writes:
>
>> I read that sharing the elpa folder is not recommended and I guess
>> this results in issues like the one above.
>>
>> I don't want to manage different sets of packages per host. So: how
>> do I accomplish working sharing of packages/dot-emacs?
>
> In terms of package management, you could perhaps use Pallet:
>
> https://github.com/rdallasgray/pallet
>
> to create a Cask file which you sync between your various systems, and
> then do `pallet-install` and `pallet-update` as required.
Here's what I do
;;* PACKAGES
;; Start by loading package
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("melpa" . "http://melpa.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")))
(package-initialize)
(defcustom rasmus/packages '(async auctex darkroom)
"Packages to install.")
(defun install-packages (pkgs)
(let (updated)
(mapc
(lambda (pkg) (unless (package-installed-p pkg)
(unless updated
(package-refresh-contents)
(setq updated t))
(package-install pkg)))
pkgs)))
(install-packages rasmus/packages)
(defun update-packages ()
"Upgrade all installed packages."
(interactive)
(list-packages)
(package-menu-mark-upgrades)
(package-menu-mark-obsolete-for-deletion)
(cl-letf (((symbol-function 'yes-or-no-p) (lambda (&optional arg) t))
((symbol-function 'y-or-n-p) (lambda (&optional arg) t)))
;; don't ask questions... This may be risky.
(package-menu-execute))
(quit-window))
This file is part of ~/annex/conf.annex/.emacs.d From ~/annex I do
stow -r conf.annex
My emacs.d look something like this:
elpa
abbrev_defs
ac-comphist.dat
bookmarks -> ../annex/conf.annex/.emacs.d/bookmarks
init.el -> ../annex/conf.annex/.emacs.d/init.el
init-org-async.el -> ../annex/conf.annex/.emacs.d/init-org-async.el
lisp -> ../annex/conf.annex/.emacs.d/lisp
network-security.data
org-caldav-8b63d83.el -> ../annex/conf.annex/.emacs.d/org-caldav-8b63d83.el
retired.el -> ../annex/conf.annex/.emacs.d/retired.el
tramp
Thus, ~/.emacs.d/elpa/ is local to each computer, but controlled (partly)
via init.el which is under version-control. I can install additional
packages on each computer as desired.
—Rasmus
--
Enough with the bla bla!
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-01-25 14:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-23 9:33 Sharing .emacs.d between different hosts: issues with shared elpa folder Karl Voit
2015-01-25 13:18 ` Alexis
2015-01-25 14:06 ` Rasmus
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).