all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.