Ich habe auctex aus dem Ubuntu-Softwarecenter installiert und dann eine neuere Version von auctex aus emacs installiert.
Ich habe dann das von Ubuntus Software-Center installierte Auctex deinstalliert. Ich habe festgestellt, dass der von emacs installierte nicht deinstalliert wurde.
Wie verwaltet emacs seine Pakete?
Gibt es keine Interferenzen zwischen Emacs und Ubuntu bei der Verwaltung der Installation und Deinstallation von Emacs-Paketen?
Wenn ich richtig liege, gab es vor einigen Jahren keine Möglichkeit, Pakete in Emacs zu installieren?
Vielen Dank.
M-x report-emacs-bug
. Personen, die hier auf eine solche Frage antworten, sollten besser zu den Emacs-Dokumenten beitragen, wenn die Informationen fehlen. MEINER BESCHEIDENEN MEINUNG NACH.Antworten:
Wie Paprika sagte, verwendet Emacs
load-path
, um nach verfügbarenelisp
Dateien zu suchen (.elc
,.el
)Das
load-path
wird nach dem ersten passenden Paket gesucht, wenn es benötigt wird. Wenn mehrere Kopien eines Pakets installiert sind, wird die erste geladen.Der Distributionspaket-Manager kann nicht auf derselben Quelle wie er installiert werden
package-install
, da einer systemweit und der andere benutzerspezifisch ist.Paketquellen
Eingebaut und distro-spezifisch
Distro Package ManagerDistro-Paketmanager bieten eine Auswahl an Emacs-Paketen, die installiert werden können. Nach meiner Erfahrung gehören diese häufig zu den beliebtesten / am weitesten verbreiteten Paketen. Vor der Entwicklung war
package.el
dies der einfachste Weg, um die Pakete zu erhalten. (Am einfachsten, wenn Sie nur laufenapt-get install <package>
, anstatt die Versionskontrolle oder den direkten Download zu verwenden.Über den Distributionspaket-Manager installierte Pakete werden installiert. Dies
Package.el/usr/local/share/emacs/site-lisp/
ist eine Standardeinstellung inload-path
und wird durch benutzerspezifischeload-path
Ergänzungen ausgeblendet .package.el
wurde zuerst mit aufgenommenEmacs 24
. Diese Version ist kompatibel mitEmacs 23
, muss jedoch manuell installiert werden. Pakete, die von ihr abgerufen werden, sind möglicherweise kompatibel mit oder nichtEmacs 23
.package.el
bietet ein durchsuchbares Repository mit Paketen für Emacs. Standardmäßig ist nur dasElpa
Repository konfiguriert, aber der Zugriff auf MELPA und Marmelade kann hinzugefügt werden:Dies bietet Zugriff auf einen viel größeren Pool von Paketen.
Standardmäßig werden
Git / Bzr / hg / ... + EmacsWikipackage.el
Pakete in~/.emacs.d/elpa
und bei(package-initialize)
diesem Aufruf installiert . Dieses Verzeichnis wird näher an der Vorderseite von platziertload-path
, sodass diese Pakete Vorrang vor den vom Distributionspaket-Manager installierten Paketen haben.Versionskontrollierte Pakete können durch Klonen manuell aus ihrem Repository abgerufen werden. Einige bieten auch Paketversionen an, die direkt heruntergeladen werden können.
EmacsWiki Elisp-Dateien können auch heruntergeladen werden, obwohl es sich in der Regel eher um einzelne Dateien als um Verzeichnisse handelt.
Stellen Sie nach dem Abrufen des Pakets sicher, dass sich der Zielordner auf Ihrem befindet
load-path
und zur Verwendung verfügbar ist.Paketverwaltung von Drittanbietern
Diese Tools bieten Wrapper oder zusätzliche Funktionen, um die Paketverwaltung zu zentralisieren. Sie wurden unter Berücksichtigung der gemeinsamen Konfiguration entwickelt, um sicherzustellen, dass auf allen Ihren Computern dieselben Pakete verfügbar sind.
El-GetEl-Get führt eine Liste der Rezepte , die es erlauben , zum Abrufen von Paketen mit
Fasspackage.el
,git
,emacswiki
als Quellen (unter anderem). Es bietet auch Funktionen, um sicherzustellen, dass die Pakete auf dem neuesten Stand sind, das Laden (verzögert oder sofort) zu verwalten und paketspezifische Anpassungen in Dateien zu speichern, die automatisch geladen werden, wenn das Paket geladen wirdrequired
.Cask wurde für das Projektmanagement in / für Emacs entwickelt. Es verwendet eine
cask
Datei, um eine Liste der Abhängigkeiten (andere Pakete) zu verwalten, die für die Verwendung des Pakets erforderlich sind, und lädt fehlende Pakete herunter, um sicherzustellen, dass alles erfolgreich geladen wird.Es kann verwendet werden, um lokale Paketkonfigurationen zu verwalten, indem Sie Ihre
~/.emacs.d
als Projekt behandeln und(cask-initialize)
beim Start aufrufen .straight.el
Use-Packagestraight.el
ist für Personen gedacht, die lokale Änderungen an ihren Paketen vornehmen und diese Änderungen möglicherweise vorgelagert einbringen möchten. Es werden Rezepte aus MELPA , GNU ELPA und EmacsMirror abgerufen oder Sie können Ihre eigenen angeben. Es unterstützt unter anderem das Schreiben einer Revisionssperrdatei für maximale Reproduzierbarkeit.Das Use-Package wurde hauptsächlich als Emacs-Konfigurationsmanagement-Tool entwickelt. Es werden die erforderlichen
package.el
Pakete heruntergeladen, es sind jedoch keine Mechanismen für den Zugriff auf andere Quellen integriert. Es ermöglicht das verzögerte Laden von Paketen und das verzögerte Anpassen. Dies verbessert die Emacs-Initialisierung und verlangsamt gleichzeitig die anfängliche Verwendung der Pakete (wenn sie jedoch nicht in einer bestimmten Sitzung verwendet werden, ergibt sich nur ein Nettogewinn).quelle
/usr/share/emacs/site-lisp
, nicht/usr/local/share...
da dielocal
Verzeichnisse für Nicht-Distributionsinstallationen gedacht sind.Emacs verwendet das
load-path
, das im Wesentlichen eine Liste von Verzeichnissen ist, in denen nach Lisp-Dateien gesucht werden soll. Wenn ein Paket im verfügbarload-path
ist, wird es installiert .Es gibt keine Schnittstelle zwischen dem Debian / Ubuntu-Paketmanager und dem Emacs-Paketmanager (package.el). Ersteres installiert Emacs-Pakete systemweit (für jeden Benutzer des Computers verfügbar), während letzteres standardmäßig ein Paket in Ihrem Home-Verzeichnis installiert. Theoretisch können Sie beide Quellen verwenden, um Pakete zu installieren. Ich würde jedoch von dieser Vorgehensweise abraten: Bei der Installation desselben Pakets aus beiden Quellen können Probleme auftreten .
Die Liste der Emacs-Pakete, die Sie über den Debian / Ubuntu-Paketmanager installieren können, ist im Vergleich zu ELPA / MELPA / ... viel eingeschränkter, da jedes Paket speziell für Debian / Ubuntu vorbereitet werden muss. Mit anderen Worten: Paket auf ELPA! = Paket in Debian.
quelle