Installieren Sie Pdf-Tools unter Emacs MacOSX

8

Ziel

Ich möchte PDF Tools auf meinem GUI Emacs unter MacOSX (Version 25.0.50, installiert über Homebrew unter MacOSX 10.10.2) installieren, da die README- Datei dies für möglich hält.

Installieren

Ich habe popplerdie Variable PKG_CONFIG_PATH installiert und in meine Shell exportiert, wie von der README empfohlen.

Ich habe dann PDF Tools über MELPA installiert und es hat ein Verzeichnis in meinem .emacs.d/elpaVerzeichnis mit dem Namen installiert~/.emacs.d/elpa/pdf-tools-20150620.1632

Problem

Beim Ausführen des pdf-tools-installBefehls werden die folgenden Fehler angezeigt, dass das richtige Verzeichnis nicht gefunden werden konnte:

Need to build the server, do it now ? (y or n) y

pdf-tools--melpa-build-server: No such directory: /Users/m/.emacs.d/elpa/pdf-tools-20150613.414/build

Was ich versucht habe

  • Ich habe versucht, das Paket mit neu zu installieren package-reinstall

  • Ich habe auf EmacsWiki, dieser Seite, nach bestimmten Antworten gesucht, reddit.

m__
quelle
1
Für eine gewisse Zeit hat melpa ein kaputtes Paket gehostet und das verursacht höchstwahrscheinlich dieses Problem. Sie sollten es aktualisieren.
Politza
1
Ihr Installationsverzeichnis in MELPA ist pdf-tools-20150620.1632, aber Ihr Fehler zeigt ein anderes Verzeichnis an, pdf-tools-20150613.414. Etwas ist falsch. Installieren Sie die Pakete neu, um ältere Versionen zurückzusetzen, die dies möglicherweise verursachen. @ politzas Rat kann dies beheben.
Emacs User

Antworten:

13

Ab dem 13. April 2017 besteht eine zuverlässige Möglichkeit zur Installation von PDF-Tools unter OS X (Mavericks / Sierra) darin, die folgenden Konfigurationen und Anweisungen für PDF-Tools zu verwenden (in den Kommentaren):

;;; Install epdfinfo via 'brew install pdf-tools' and then install the
;;; pdf-tools elisp via the use-package below. To upgrade the epdfinfo
;;; server, just do 'brew upgrade pdf-tools' prior to upgrading to newest
;;; pdf-tools package using Emacs package system. If things get messed
;;; up, just do 'brew uninstall pdf-tools', wipe out the elpa
;;; pdf-tools package and reinstall both as at the start.
(use-package pdf-tools
  :ensure t
  :config
  (custom-set-variables
    '(pdf-tools-handle-upgrades nil)) ; Use brew upgrade pdf-tools instead.
  (setq pdf-info-epdfinfo-program "/usr/local/bin/epdfinfo"))
(pdf-tools-install)

Natürlich müssen Sie kein Use-Package verwenden. Sie können nur PDF-Tools nach der Installation über das Emacs-Paketsystem benötigen und diese dann benötigen. Sie müssen jedoch den Pfad zu epdfinfo wie im obigen Code definieren.

Joe
quelle
1
Obwohl diese Installationsmethode für mich funktioniert hat (+1), nur zu Ihrer Information: Ich kann sie scheinbar nicht verwenden (pdf-tools-handle-upgrades nil)- ich erhalte function voideine Fehlermeldung. Ich benutze nicht use-package, also habe ich versucht, die Reihenfolge der Dinge in meinen .emacs zu ändern. , ohne Erfolg. Kein großes Problem, da Sie auch eine Antwort für das Upgrade geben :) Installation von Homebrew erforderlich brew install homebrew/emacs/pdf-tools. Ich denke, dies liegt daran, dass Mavericks weder von Homebrew noch von Apple mehr unterstützt wird.
n1k31t4
Dieses Snippet ist für mich fehlgeschlagen, als ich versucht habe, bestimmte datierte Versionen von Tablist- und PDF-Tools herunterzuladen. Es hat gut funktioniert mit :pin melpa-stable. Vielen Dank!
Dave
7
Die Homebrew-Formel für pdf-toolsist nicht mehr Teil von homebrew-core; Es wurde auf migriert dunn/emacs, daher müssen Sie es zuerst ausführen brew tap dunn/emacs.
Adam Liter
3
Verwenden Sie brew install pdf-tools --HEADfür den Fall, dass Sie Kompilierungsfehler mitbrew install pdf-tools
William
4

Es funktionierte!

Ich bin mir nicht hundertprozentig sicher, warum es funktioniert hat. Wie Kommentatoren richtig hervorheben, gab es ein Problem mit den Paketen / Verzeichnissen, die installiert / kompiliert wurden, aber es funktionierte beim nächsten Startpdf-tools-install

Dinge, die ich versucht / getan habe

  • Ich habe meinen emacs --daemonServer gestartet / neu gestartet (dh meinen Computer ein- und ausgeschaltet).
  • Das PDF-Tools-Paket wurde erneut installiert (ich hatte es versucht, ja).
  • Installierte CLISP über homebrew(Ich habe den Verdacht, dass dies dem Skript geholfen hat, die richtigen Verzeichnisse zu finden, da ich beim Ausführen über pdf-tools-installein Verzeichnis gefragt habe, wo autogen.shes sich befindet, und auf das Verzeichnis verwiesen habe und elpa/pdf-toolsVerzeichnisse ausprobiert habe, in /usr/local/Cask/...denen Homebrew Emacs installiert hat. Vielleicht hat es ihm geholfen, die richtigen zu finden?

Wie auch immer, super glücklich jetzt, da ich meine PDFs in Emacs haben kann und als zusätzlichen Bonus scheint es auch eww-Puffer viel besser zu machen.

Viel Glück für andere OSX-Benutzer, die es in Betrieb genommen haben. Bitte posten Sie, wenn Sie genau wissen, was Ihnen bei der Einrichtung geholfen hat.

Danke @politza!

Geben Sie hier die Bildbeschreibung ein

m__
quelle
2
Sie benötigen sicherlich keine CLIPS, damit PDF-Tools funktionieren.
rekado
Nein, vielleicht auch nicht, aber CLISP hat mir und @Dexter Morgan geholfen :)
m__
0

[Ich habe nicht genug Repräsentanten, um einen Kommentar abzugeben]

Die Installation von CLISP und Poppler hat mir geholfen - vorher hat es überhaupt nicht funktioniert.

Nachdem ich diese installiert (und meinen Computer neu gestartet) hatte, gelang es mir, die Installation erfolgreich durchzuführen (Hurra!) - allerdings nur mit einer Mischung aus Terminal und Emacs.

Gemäß den Anweisungen können Sie beide Phasen (die Kompilierung und die Installation) entweder über das Terminal oder innerhalb von Emacs ...

Ich musste die Kompilierung speziell im Terminal durchführen (um die pdf-tools-${VERSION}.tarDatei zu erstellen ), aber die Installation musste dann in Emacs durchgeführt werden, dh mit M-x package-install-file RET pdf-tools-${VERSION}.tar RET.

Ich weiß nicht, wie sich die beiden Prozesse unterscheiden, aber vielleicht hilft das jemand anderem.

n1k31t4
quelle
0

Ich habe Poppler und Automake mit Homebrew installiert, jedoch pdf-tools-installfehlgeschlagen mit : no such program autoreconf. Ich habe pdf-tools-install von tty / terminal Emacs wiederholt und alles richtig gebaut. Ich denke, einige Umgebungseinstellungen wurden in Gac-basierten Emacs nicht übernommen.

Christian
quelle
0

Ich möchte nur kurz erklären, wie ich es während der Verwendung gemacht habe use-packageund wie es wahrscheinlich für jeden funktionieren sollte. Auf einem Terminal:

brew install poppler automake

Führen Sie dann in Emacs Folgendes aus:

; This goes into your emacs config file
(use-package pdf-tools
  :ensure t
  :config
  (setq pdf-info-epdfinfo-program "/usr/local/bin/epdfinfo"))

;; this only has to be executed for the installation and can be removed/commented afterwards
;; I recommend commenting it out so that it can be found easily when reinstalling
(setenv "PKG_CONFIG_PATH" "/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig")
(pdf-tools-install)

Wie bereits gesagt, wird dies fehlschlagen, aber Sie sollten einen Puffer erhalten, *compilation*der so aussieht:

-*- mode: compilation; default-directory: "~/.emacs.d/elpa/pdf-tools-20191228.1005/build/server/" -*-
Comint started at Sat Jan  4 21:51:49

/PATH/TO/elpa/pdf-tools-20191228.1005/build/server/autobuild -i /usr/local/bin/
Failed to recognize this system, trying to continue.
---------------------------
 Configuring and compiling 
---------------------------
No such program: autoreconf

Comint exited abnormally with code 1 at Sat Jan  4 21:51:49

(Der Grund für den Fehler scheint zu sein, dass "/ usr / local / bin" nicht in der Variablen $ PATH enthalten ist und es schwierig ist, sie hinzuzufügen, da Unterprozesse von Emacs die Standardeinstellung verwenden, bei $PATHder dieses Verzeichnis normalerweise fehlt.)

Jetzt müssen Sie nur noch die folgende Zeile aus dem Puffer kopieren und erneut in einem Terminal ausführen (wo /usr/local/binsich $ PATH befindet):

/PATH/TO/elpa/pdf-tools-20191228.1005/build/server/autobuild -i /usr/local/bin/
Melkor333
quelle
0

Diese Antwort setzt voraus, dass der Benutzer eine Macports-Installation mit popplerinstalliertem Port / Paket hat. [Ich habe eine kleine Flotte älterer Computer, auf denen noch OSX 10.6.8 (Snow Leopard) ausgeführt wird, und das ist das System, das ich zur Installation verwendet habe pdf-tools. Meine popplerVersion ist 0.42.0_0. Weitere Anforderungen finden Sie in den PDF-Tools README.md - sie wurden wahrscheinlich bereits über Macports installiert.]

  • Laden Sie pdf-tools-master.zipdas Repository herunter und extrahieren Sie es oder klonen Sie es auf den lokalen Computer.

  • Ich habe eshellin Emacs verwendet und die folgende Konfiguration ausgeführt:

    (progn (setenv "PATH" "/usr/bin:/bin:/usr/sbin:/sbin:/path/to/macports/bin") (setenv "CPPFLAGS" "-I/path/to/macports/include") (setenv "LDFLAGS" "-L/path/to/macports/lib") (setenv "CFLAGS" "-Wall -O0 -g3"))

Sie können natürlich das Terminal verwenden und die entsprechenden Einstellungen konfigurieren, anstatt sie zu verwenden eshell.

  • cd über in das Repository-Verzeichnis ../pdf-tools-master/server

  • ./autogen.sh

  • ./configure --prefix=/path/to/macports oder woanders, wenn dies gewünscht wird.

  • Nach dem Ausführen von configureim obigen Schritt ist ein Fehler aufgetreten:

    ./configure: line 4745: syntax error near unexpected token 'png,' ./configure: line 4745: 'PKG_CHECK_MODULES(png, libpng)'

  • Gegoogelt und gefunden: https://github.com/politza/pdf-tools/issues/142

  • Die empfohlene Problemumgehung lautet autoreconf:

  • /path/to/macports/bin/autoreconf

  • Dann configurewieder laufen - diesmal hat es wie erwartet funktioniert.

  • ./configure --prefix=/path/to/macports oder woanders, wenn dies gewünscht wird.

  • make

  • make install

  • Stellen Sie sicher, dass Sie das neu epdfinfoam festgelegten Präfixspeicherort installiert haben . z.B,

    /path/to/macports/bin/epdfinfo

  • Kopieren Sie die lispDateien in das load-pathvon Emacs - die lispDateien befinden sich im Repository unter../pdf-tools-master/lisp

  • Wenn sich der Pfad zu epdfinfonicht an einem Ort befindet, an dem Emacs ihn finden kann, passen Sie dies an ... über den Rahmen dieser Antwort hinaus. Sie können den absoluten Pfad auch festlegen, indem Sie die Variable konfigurieren pdf-info-epdfinfo-program.

  • Ich habe auch den genauen Speicherort konfiguriert, convertindem ich die Variable festgelegt habe pdf-util-convert-program. Oder Sie können den PFAD anpassen, damit Emacs weiß, wo er nach der ausführbaren Datei suchen muss.

  • Bewerten Sie in Emacs (require 'pdf-tools)

  • Probieren Sie es aus, indem Sie es pdf-view-modein einem PDF-Dateipuffer aktivieren .

Gesetzesliste
quelle
0

Wenn einige Pakete aktualisiert werden, müssen auch ihre Abhängigkeiten oder vorausgesetzten Dateien aktualisiert werden. In diesem Fall benötigt der Server einige Anforderungen (weitere Informationen finden Sie unter https://github.com/politza/pdf-tools , Abschnitt "Voraussetzungen"). Deshalb folge ich einfach den Anweisungen dort:

  1. Installieren oder installieren Sie den Poppler erneut, den Sie mit Homebrew erhalten können über:
    $ brew install poppler automake
  1. Finden Sie einige Bibliotheken für, pkg-configindem Sie Folgendes einstellen PKG_CONFIG_PATH:
$ export PKG_CONFIG_PATH=/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig

und der Versuch, Emacs oder Spacemacs erneut auszuführen.

Gerardo Marx Chávez Campos
quelle