Instale Pdf-Tools en Emacs MacOSX

8

Objetivo

Me gustaría instalar PDF Tools en mi GUI Emacs en MacOSX (versión 25.0.50 instalada a través de Homebrew en MacOSX 10.10.2) porque el archivo README dice que es posible.

Preparar

Instalé popplery exporté la variable PKG_CONFIG_PATH a mi shell según lo recomendado por el archivo README.

Luego instalé PDF Tools a través de MELPA e instalé un directorio en mi .emacs.d/elpadirectorio llamado~/.emacs.d/elpa/pdf-tools-20150620.1632

Problema

Cuando ejecuté el pdf-tools-installcomando recibo los siguientes errores sobre no poder encontrar el directorio correcto:

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

Lo que he intentado

  • He intentado reinstalar el paquete con package-reinstall

  • He buscado respuestas específicas en EmacsWiki, este sitio, reddit.

metro__
fuente
1
Durante un período de tiempo, Melpa alojó un paquete roto y es muy probable que este problema esté causando. Deberías actualizarlo.
politza
1
Su directorio de instalación en MELPA es pdf-tools-20150620.1632, pero su error muestra otro directorio, pdf-tools-20150613.414. Algo esta mal. Vuelva a instalar los paquetes para restablecer cualquier versión anterior que pueda estar causando esto. El consejo de @ politza puede arreglar esto.
Usuario de Emacs

Respuestas:

13

Para mí, a partir del 13 de abril de 2017, una forma confiable de instalar herramientas pdf en OS X (Mavericks / Sierra) es usar la siguiente configuración e instrucciones de herramientas pdf (en los comentarios):

;;; 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)

Por supuesto, no tiene que usar use-package. Solo puede requerir herramientas pdf después de instalarlo a través del sistema de paquetes Emacs y luego requerirlo, pero aún tiene que definir la ruta a epdfinfo como en el código anterior.

Joe
fuente
1
Aunque este método de instalación funcionó para mí (+1), solo un FYI: parece que no puedo usarlo (pdf-tools-handle-upgrades nil), obtengo function voidun error. No lo uso use-package, así que he intentado alterar el orden de las cosas en mis .emacs. , sin éxito. No es un problema importante, ya que también proporciona una respuesta para la actualización :) Se requiere instalar desde homebrew brew install homebrew/emacs/pdf-tools. Hojeando la salida del terminal, creo que esto se debe a que Mavericks ya no es compatible ni con Homebrew ni con Apple.
n1k31t4
Este fragmento me falló al intentar descargar versiones específicas fechadas de tablist y pdf-tools. Funcionó bien con :pin melpa-stable. ¡Gracias!
Dave
77
La fórmula Homebrew para pdf-toolsya no es parte de homebrew-core; se ha migrado a dunn/emacs, por lo que primero debe ejecutar brew tap dunn/emacs.
Adam Liter
3
su uso brew install pdf-tools --HEADen caso de que se compila con erroresbrew install pdf-tools
William
4

¡Funcionó!

No estoy 100% seguro de los detalles sobre qué lo hizo funcionar. Como los comentaristas señalan correctamente, hubo un problema con los paquetes / directorios que se instalaron / compilaron, pero funcionó la próxima vez que ejecutépdf-tools-install

Cosas que probé / hice

  • Comencé / reinicié mi emacs --daemonservidor (es decir, encendí / apagué mi computadora)
  • reinstalé el paquete de herramientas pdf nuevamente (había intentado esto, sí)
  • Instalé CLISP a través de homebrew(tengo la sospecha de que esto puede haber ayudado al script a encontrar los directorios correctos porque cuando lo estaba ejecutando a través de pdf-tools-installél estaba pidiendo un directorio donde autogen.shestaba y lo señalaba al elpa/pdf-toolsdirectorio y había intentado /usr/local/Cask/...directorios donde homebrew instaló Emacs. ¿Tal vez esto lo ayudó a encontrar los correctos?

De todos modos, súper contento ahora, ya que puede tener mis PDF dentro de Emacs y, como un bono extra, parece hacer que los buffers de eww sean mucho mejores también.

Mucha suerte a otros usuarios de OSX que lo ponen en funcionamiento. Publique si señala qué le ayudó a configurarlo.

Gracias @politza!

ingrese la descripción de la imagen aquí

metro__
fuente
2
Ciertamente no necesita CLIPS para que las herramientas pdf funcionen.
rekado
No, tal vez no, pero CLISP nos ayudó a mí y a @Dexter Morgan :)
m__
0

[No tengo suficiente representante para comentar]

La instalación de CLISP y poppler me ayudó. Antes no funcionaba en absoluto.

Después de tener estos instalados (y reiniciar mi máquina), logré instalar con éxito (¡hurra!), Sin embargo, solo con una mezcla de terminal y emacs.

De acuerdo con las instrucciones , puede completar ambas etapas (la compilación y la instalación) a través del terminal o dentro de Emacs ...

Tuve que hacer específicamente la compilación en el terminal (para crear el pdf-tools-${VERSION}.tararchivo), pero la instalación tuvo que hacerse en Emacs, es decir, usando M-x package-install-file RET pdf-tools-${VERSION}.tar RET.

No sé cómo difieren los dos procesos, pero tal vez esto ayude a alguien más.

n1k31t4
fuente
0

Tengo poppler y automake instalan mediante homebrew, sin embargo pdf-tools-installfallado con: no such program autoreconf. Volví a intentar instalar pdf-tools-install de tty / terminal Emacs y todo está construido correctamente. Creo que algunas configuraciones de entorno no se recogieron en Emacs basado en GUI.

cristiano
fuente
0

Solo quiero explicar brevemente cómo lo hice mientras lo usaba use-packagey cómo probablemente debería funcionar para cualquiera. En una terminal:

brew install poppler automake

Luego, en emacs ejecuta lo siguiente:

; 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)

Como ya se dijo, esto fallará, pero debería obtener un búfer llamado *compilation*que se ve así:

-*- 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

(la razón del error parece ser que "/ usr / local / bin" no está en la variable $ PATH y es un poco difícil agregarlo, ya que los subprocesos de emacs usan el valor predeterminado $PATHque generalmente pierde este directorio)

Ahora todo lo que tiene que hacer es copiar la siguiente línea desde el búfer y ejecutarla nuevamente en un terminal (donde /usr/local/binestá en $ PATH):

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

Esta respuesta supone que el usuario tiene una instalación de Macports con el popplerpuerto / paquete instalado. [Tengo una pequeña flota de máquinas más antiguas que todavía ejecutan OSX 10.6.8 (Snow Leopard), y ese es el sistema que solía instalar pdf-tools. Mi popplerversión es 0.42.0_0. Consulte las herramientas pdf README.md para conocer los requisitos adicionales: probablemente ya se instalaron a través de Macports.]

  • Descargue y extraiga pdf-tools-master.zip, o clone el repositorio en la máquina local.

  • Utilicé eshelldentro de Emacs y ejecuté la siguiente configuración:

    (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"))

Por supuesto, puede usar el terminal y configurar los ajustes relevantes en lugar de usar eshell.

  • cd al directorio del repositorio ../pdf-tools-master/server

  • ./autogen.sh

  • ./configure --prefix=/path/to/macports o en otro lugar si así lo desea.

  • Después de ejecutar el configureen el paso anterior, me encontré con un error:

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

  • Buscado en Google y encontrado: https://github.com/politza/pdf-tools/issues/142

  • La solución recomendada es ejecutar autoreconf:

  • /path/to/macports/bin/autoreconf

  • Luego corre de configurenuevo, esta vez funcionó como se esperaba.

  • ./configure --prefix=/path/to/macports o en otro lugar si así lo desea.

  • make

  • make install

  • Verifique que tiene el recién instalado epdfinfoen la ubicación del prefijo establecido; p.ej,

    /path/to/macports/bin/epdfinfo

  • Copie los lisparchivos en load-pathEmacs: los lisparchivos están en el repositorio en../pdf-tools-master/lisp

  • Si la RUTA hacia epdfinfono se encuentra en un lugar donde Emacs pueda ubicarla, ajústela ... más allá del alcance de esta respuesta. O bien, puede establecer la ruta absoluta configurando la variable pdf-info-epdfinfo-program.

  • También configuré la ubicación exacta para convertestablecer la variable pdf-util-convert-program; o bien, puede ajustar la RUTA para que Emacs sepa dónde buscar el ejecutable.

  • En Emacs, evalúe (require 'pdf-tools)

  • Pruébelo habilitando pdf-view-modeen un búfer de archivos PDF.

lista de leyes
fuente
0

Cuando se actualizan algunos paquetes, es necesario actualizar también sus dependencias o archivos de requisitos previos. En este caso, el servidor necesita algunos requisitos (para obtener más información, visite https://github.com/politza/pdf-tools , sección de requisitos previos). Por lo tanto, solo sigo las instrucciones allí:

  1. Instale o reinstale poppler, que puede obtener con homebrew a través de:
    $ brew install poppler automake
  1. Encuentre algunas bibliotecas pkg-configconfigurando PKG_CONFIG_PATH:
$ export PKG_CONFIG_PATH=/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig

y el intento de ejecutar nuevamente emacs o spacemacs.

Gerardo Marx Chávez Campos
fuente