Cài đặt Pdf-Tools trên Emacs MacOSX


8

Mục đích

Tôi muốn cài đặt Công cụ PDF trên GUI Emacs trên MacOSX (phiên bản 25.0.50 được cài đặt qua Homebrew trên MacOSX 10.10.2) vì README cho biết điều đó là có thể.

Thiết lập

Tôi đã cài đặt popplervà xuất biến PKG_CONFIG_PATH sang shell của mình theo lời khuyên của README.

Sau đó tôi đã cài đặt Công cụ PDF qua MELPA và nó đã cài đặt một thư mục trong .emacs.d/elpathư mục của tôi có tên~/.emacs.d/elpa/pdf-tools-20150620.1632

Vấn đề

Khi tôi chạy pdf-tools-installlệnh, tôi nhận được các lỗi sau về việc không thể tìm đúng thư mục:

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

Những gì tôi đã thử

  • Tôi đã thử cài đặt lại gói với package-reinstall

  • Tôi đã tìm kiếm câu trả lời cụ thể trên EmacsWiki, trang web này, reddit.


1
Trong một khoảng thời gian melpa đã lưu trữ một gói bị hỏng và rất có thể gây ra vấn đề này. Bạn nên cập nhật nó.
trị

1
Thư mục cài đặt của bạn trong MELPA là pdf-tools-20150620.1632, nhưng lỗi của bạn hiển thị một thư mục khác, pdf-tools-20150613.414. Điều gì đó không đúng. Cài đặt lại các gói để thiết lập lại bất kỳ phiên bản cũ hơn có thể gây ra điều này. Lời khuyên của @ politza có thể khắc phục điều này.
Người dùng Emacs

Câu trả lời:


13

Đối với tôi, kể từ ngày 13 tháng 4 năm 2017, một cách đáng tin cậy để cài đặt các công cụ pdf trên OS X (Mavericks / Sierra) là sử dụng hướng dẫn và cấu hình công cụ pdf sau (trong phần bình luận):

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

Tất nhiên, bạn không phải sử dụng gói sử dụng. Bạn chỉ có thể yêu cầu các công cụ pdf sau khi cài đặt nó qua hệ thống gói Emacs và sau đó yêu cầu nó, nhưng bạn vẫn phải xác định đường dẫn đến epdfinfo như trong đoạn mã trên.


1
Mặc dù phương pháp cài đặt này hiệu quả với tôi (+1), nhưng chỉ là một FYI: Tôi dường như không thể sử dụng (pdf-tools-handle-upgrades nil)- tôi gặp function voidlỗi. Tôi không sử dụng use-package, vì vậy đã cố gắng thay đổi thứ tự của mọi thứ trong .emacs của tôi . , không thành công. Không phải là một vấn đề lớn, vì bạn cũng cung cấp câu trả lời cho việc nâng cấp :) Yêu cầu cài đặt từ homebrew brew install homebrew/emacs/pdf-tools. Lướt qua đầu ra của thiết bị đầu cuối, tôi nghĩ điều này là do Mavericks không còn được hỗ trợ bởi Homebrew hoặc Apple.
n1k31t4

Đoạn mã này đã thất bại đối với tôi khi cố tải xuống các phiên bản ngày cụ thể của danh sách tab và công cụ pdf. Nó làm việc tốt với :pin melpa-stable. Cảm ơn!
Dave

7
Công thức Homebrew cho pdf-toolskhông còn là một phần của homebrew-core; nó đã được di chuyển đến dunn/emacs, vì vậy trước tiên bạn cần phải chạy brew tap dunn/emacs.
Adam Văn

3
sử dụng brew install pdf-tools --HEADtrong trường hợp bạn gặp lỗi biên dịch vớibrew install pdf-tools
William

4

Nó đã làm việc!

Tôi không chắc chắn 100% về các chi tiết cụ thể như những gì đã làm cho nó hoạt động. Như các nhà bình luận đã chỉ ra một cách chính xác, có một vấn đề với các gói / thư mục đã được cài đặt / biên dịch nhưng nó hoạt động vào lần tiếp theo tôi chạypdf-tools-install

Những điều tôi đã cố gắng / đã làm

  • Tôi đã khởi động / khởi động lại emacs --daemonmáy chủ của mình (tức là bật / tắt máy tính của tôi)
  • cài đặt lại gói công cụ pdf một lần nữa (tôi đã thử cái này rồi
  • Đã cài đặt CLISP qua homebrew(Tôi có một nghi ngờ rằng điều này có thể đã giúp tập lệnh tìm đúng thư mục vì khi tôi đang chạy nó, pdf-tools-installnó đã hỏi một thư mục autogen.shvà tôi đã chỉ nó vào elpa/pdf-toolsthư mục và đã thử các /usr/local/Cask/...thư mục nơi cài đặt Emacs. Có lẽ điều này đã giúp nó tìm đúng?

Dù sao, bây giờ tôi rất hạnh phúc vì có thể có tệp PDF của tôi bên trong Emacs như một phần thưởng bổ sung, nó dường như cũng khiến bộ đệm của eww tốt hơn nhiều.

Chúc may mắn cho những người dùng OSX khác nhận được nó và làm việc. Vui lòng gửi nếu bạn xác định chính xác những gì đã giúp bạn thiết lập nó.

Cảm ơn bạn @politza!

nhập mô tả hình ảnh ở đây


2
Bạn chắc chắn không cần CLIPS để các công cụ pdf hoạt động.
rekado

Có thể không, nhưng CLISP đã giúp tôi và @Dexter Morgan :)
m__

0

[Tôi không có đủ đại diện để bình luận]

Cài đặt CLISP và poppler đã giúp tôi - Nó hoàn toàn không hoạt động trước đó.

Sau khi cài đặt xong (và khởi động lại máy của tôi), tôi đã quản lý để cài đặt thành công (hooray!) - tuy nhiên chỉ với một hỗn hợp của thiết bị đầu cuối và emacs.

Theo hướng dẫn Bạn có thể hoàn thành cả hai giai đoạn (biên dịch và cài đặt) thông qua thiết bị đầu cuối hoặc trong Emacs ...

Tôi đã phải đặc biệt thực hiện việc biên dịch trong thiết bị đầu cuối (để tạo pdf-tools-${VERSION}.tartệp), nhưng việc cài đặt sau đó phải được thực hiện trong Emacs tức là sử dụng M-x package-install-file RET pdf-tools-${VERSION}.tar RET.

Tôi không biết hai quy trình khác nhau như thế nào, nhưng có lẽ điều này giúp người khác hiểu.


0

Tôi đã cài đặt poppler và automake bằng homebrew, tuy nhiên pdf-tools-installkhông thành công với : no such program autoreconf. Tôi đã thử lại pdf-tools-install từ tty / terminal Emacs và mọi thứ được xây dựng chính xác. Tôi nghĩ rằng một số cài đặt môi trường không được chọn trong Emacs dựa trên GUI.


0

Tôi chỉ muốn giải thích ngắn gọn về cách tôi đã làm nó trong khi sử dụng use-packagevà làm thế nào nó có thể hoạt động cho bất cứ ai. Trên thiết bị đầu cuối:

brew install poppler automake

Sau đó, trong emacs chạy như sau:

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

Như đã nói, điều này sẽ thất bại, nhưng bạn sẽ nhận được một bộ đệm được gọi là *compilation*như thế này:

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

(lý do lỗi dường như là "/ usr / local / bin" không nằm trong biến $ PATH và thật khó để thêm nó, vì các quy trình con của emacs sử dụng mặc định $PATHthường bỏ qua thư mục này)

Bây giờ, tất cả những gì bạn phải làm là sao chép dòng sau từ bộ đệm và chạy lại trong một thiết bị đầu cuối ( /usr/local/bintrong $ PATH):

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

0

Câu trả lời này giả định rằng người dùng đã cài đặt Macports với cài đặt popplercổng / gói. [Tôi có một nhóm nhỏ các máy cũ hơn vẫn đang chạy OSX 10.6.8 (Snow Leopard) và đó là hệ thống mà tôi đã sử dụng để cài đặt pdf-tools. popplerPhiên bản của tôi là 0.42.0_0. Xem các công cụ pdf README.md để biết các yêu cầu bổ sung - chúng có thể đã được cài đặt qua Macports.]

  • Tải xuống và giải nén pdf-tools-master.ziphoặc sao chép kho lưu trữ vào máy cục bộ.

  • Tôi đã sử dụng eshelltrong Emacs và chạy cấu hình sau:

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

Tất nhiên, bạn có thể sử dụng thiết bị đầu cuối và định cấu hình các cài đặt có liên quan thay vì sử dụng eshell.

  • cd qua thư mục kho lưu trữ ../pdf-tools-master/server

  • ./autogen.sh

  • ./configure --prefix=/path/to/macports hoặc ở nơi khác nếu muốn.

  • Sau khi chạy configureở bước trên, tôi gặp phải một lỗi:

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

  • Tìm kiếm và tìm thấy: https://github.com/politza/pdf-tools/issues/142

  • Giải pháp đề xuất là chạy autoreconf:

  • /path/to/macports/bin/autoreconf

  • Sau đó chạy configurelại - lần này nó hoạt động như mong đợi.

  • ./configure --prefix=/path/to/macports hoặc ở nơi khác nếu muốn.

  • make

  • make install

  • Xác nhận bạn đã cài đặt mới epdfinfotại vị trí tiền tố đã đặt; ví dụ,

    /path/to/macports/bin/epdfinfo

  • Sao chép các lisptệp vào load-pathEmacs - các lisptệp nằm trong kho lưu trữ tại../pdf-tools-master/lisp

  • Nếu PATH epdfinfokhông ở vị trí mà Emacs có thể định vị nó, thì điều chỉnh ... vượt quá phạm vi của câu trả lời này. Hoặc, bạn có thể đặt đường dẫn tuyệt đối bằng cách định cấu hình biến pdf-info-epdfinfo-program.

  • Tôi cũng cấu hình vị trí chính xác cho convertbằng cách đặt biến pdf-util-convert-program; hoặc, bạn có thể điều chỉnh PATH để Emacs biết nơi cần tìm tệp thực thi.

  • Trong Emacs, đánh giá (require 'pdf-tools)

  • Hãy thử nó bằng cách kích hoạt pdf-view-modetrong bộ đệm tệp PDF.


0

Khi một số gói được cập nhật, cần phải cập nhật cả các tệp phụ thuộc hoặc các điều kiện tiên quyết của chúng. Trong trường hợp này, máy chủ cần một số yêu cầu (để biết thêm thông tin, hãy truy cập https://github.com/politza/pdf-tools , phần tiên quyết). Vì vậy, tôi chỉ làm theo hướng dẫn ở đó:

  1. Cài đặt hoặc cài đặt lại poppler mà bạn có thể nhận được với homebrew thông qua:
    $ brew install poppler automake
  1. Tìm một số thư viện cho pkg-configbằng cách cài đặt PKG_CONFIG_PATH:
$ export PKG_CONFIG_PATH=/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig

và cố gắng chạy lại emacs hoặc spacemacs.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.