Instaluj pakiety globalnie

10

Czy to jest coś, co można / należy zrobić? Na przykład często używam emacsa na moim koncie użytkownika, a czasem na koncie root. Czy podczas korzystania z menedżera pakietów (tj. Marmolady lub czegoś innego) muszę instalować te same pakiety osobno dla każdego konta? Wydaje mi się, że są instalowane w twoim katalogu domowym.

użytkownik2237076
źródło

Odpowiedzi:

7

Jak zauważył Nsukami, pakiet.el obsługuje pakiety systemowe. Ale, jak pokazuje twoje kolejne pytanie, nie zapewnia żadnej specjalnej pomocy w instalowaniu pakietów w sposób ogólnosystemowy.

Jednym ze sposobów na to jest użycie czegoś takiego:

(setq package-user-dir "/usr/share/emacs/site-lisp/elpa")

na koncie głównym ~/.emacs. Spowoduje to, że zainstalowane pakiety użytkownika root będą dostępne dla wszystkich użytkowników (ponieważ /usr/share/emacs/site-lisp/elpazwykle powinny występować w wartości domyślnej package-directory-list).

Stefan
źródło
Tak, to ma sens! Świetna pomoc chłopaki - dzięki.
user2237076,
3

Zgodnie z dokumentacją:

wartość listy katalogów pakietów to
(„/usr/local/share/emacs/24.4/site-lisp/elpa” ”/ usr / local / share / emacs / site-lisp / elpa" "/ usr / share / emacs / 24.4 / site-lisp / elpa "" / usr / share / emacs / site-lisp / elpa ")

Ta zmienna może być ryzykowna, jeśli zostanie użyta jako zmienna lokalna dla pliku.

Dokumentacja: Lista dodatkowych katalogów zawierających pakiety Emacs Lisp. Każda nazwa katalogu powinna być bezwzględna.

Te katalogi zawierają pakiety przeznaczone dla całego systemu; przeciwnie, `pakiet-użytkownik-katalog 'zawiera pakiety do użytku osobistego.

Możesz dostosować tę zmienną.

Ta zmienna została wprowadzona lub jej wartość domyślna została zmieniona w wersji 24.1 Emacsa.

Inna dokumentacja :

Oprócz katalogu pakiet-użytkownik-Emacs szuka zainstalowanych pakietów w katalogach wymienionych na liście katalogów pakietów. Te katalogi są przeznaczone dla administratorów systemów, aby udostępnić pakiety Emacsa w całym systemie; Sam Emacs nigdy nie instaluje tam pakietów.

Tak więc, w przypadku instalacji w całej witrynie, sugeruję, aby jako administrator systemu ręcznie zainstalować pakiety w katalogu / usr / local / share / emacs / site-lisp / elpa. Możesz też zrobić zgodnie z sugestią @Stefan

Nsukami _
źródło
Dzięki za odpowiedź. Mogę potwierdzić po sprawdzeniu wartości pakietu-katalogu-listy, że jest tak, jak to opisałeś i rzeczywiście katalog-użytkownika-pakietu to folder .emacs.d / elpa - gdzie pakiety są obecnie instalowane. Pytam więc, czy zastąpię katalog użytkownik-pakietu, aby wskazywał na lokalizację globalną, czy w przypadku używania na przykład „instalacji pakietu Mx”, jak mogę powiedzieć, że chcę zainstalować w całej witrynie?
user2237076,