Làm cách nào để tôi cài đặt GnuTLS cho Emacs 25.1 trên Windows?


19

Tôi vừa nâng cấp Emacs trên máy Windows 10 của mình từ 24.5 lên 25.1. Đối với Emacs 24.5, tôi đã thiết lập chính xác GnuTLS và cho 25.1 tôi đã làm những gì tôi nghĩ rằng tôi nhớ tôi đã làm:

  1. Có các tệp nhị phân Emacs dựng sẵn từ trang tải xuống của trang web GNU Emacs . Tôi đang sử dụng Windows 32 bit, vì vậy tôi có phiên bản i686 của Emacs.

  2. Có một bản sao GnuTLS từ ezwinports và trích xuất tệp zip vào cùng thư mục với Emacs - cách thức tổ chức zip gnutls có nghĩa là theo cách này, cả dll và exe của gnutls đều cuộn lên trong cùng thư mục với exe của Emacs. (Lần này tôi đã có phiên bản 3.3.11; Tôi không nhớ phiên bản GnuTLS nào tôi có khi tôi có phiên bản 24.5 của Emacs.)

Điều đó đã không làm việc thời gian này. gnutls-available-ptrả về nil, trình quản lý gói chỉ có thể kết nối với kho http chứ không phải https, eww cũng không thể xử lý https.

Làm cách nào để thiết lập GnuTLS cho Emacs 25.1? Tôi có đang đánh giá sai những gì tôi đã làm cho 24.5 không? Có thể các tệp nhị phân từ trang web GNU Emacs được biên dịch mà không có GnuTLS và trong 24.5 tôi thực sự có các tệp nhị phân từ một nơi khác ...


Tôi đã xóa câu trả lời ban đầu của mình, vì nó không giải quyết được phiên bản Emacs của bạn. Trong câu hỏi của bạn, bạn có thể có thể làm rõ rằng bạn đã sao chép các tệp vào ./bin
henning - phục hồi Monica

@henning: Đó là câu "cách thức tổ chức zip gnutls có nghĩa là theo cách này cả dll và exe dành cho gnutls cuộn lên trong cùng một thư mục như exe của Emacs", tôi sẽ cố gắng điều chỉnh lại nó một cách rõ ràng hơn vào ngày mai.
Omar

Nó trông giống như một vấn đề trên Emacs 25.1 hơn là bản thân các gnutls vì hôm nay tôi đã tải xuống Emacs 25.1 và gặp vấn đề tương tự. Emacs 24.1 gọi gnutls với các tùy chọn: --insecure -p 443 --prot Protocol ssl3 trong khi 25.1 gọi nó bằng: -x509cafile nil -p 443. Nó có thể có liên quan đến các tùy chọn gọi khác nhau này.
Romario

2
Tôi không có thông tin chi tiết, nhưng tôi đã xem xét ngắn gọn về điều này sớm hơn. Tôi nghĩ Emacs 25.1 đang mong đợi libgnutls-30.dll nhưng chỉ libgnutls-28.dll được đóng gói bởi ezwinports tại thời điểm này.
Stuart Hickinbottom

Câu trả lời:


29

@StuartHickinbottom đã giải thích những gì tôi đã làm sai: sử dụng libgnutls-28.dllkhi Emacs 25.1 yêu cầu mới hơn và không tương thích libgnutls-30.dll. Sau đó, đó là vấn đề tìm kiếm nhị phân libgnutls-30.dllvà các thư viện cần thiết khác. Rất may, Phillip Lord đã biên soạn các phiên bản Windows của tất cả các thư viện và phụ thuộc GnuTLS nhiều thư viện khác mà bạn có thể muốn cho Emacs! Chúng có sẵn ở đây : get emacs-25-i686-deps.zipnếu bạn sử dụng Windows 32 bit và get emacs-25-x86_64-deps.zipnếu bạn sử dụng 64 bit; sau đó giải nén trong thư mục gốc của bản cài đặt Emacs của bạn (để binthư mục của các tệp zip được giải nén vào binthư mục cài đặt Emacs của bạn, v.v.)

EDIT: Tôi đã tìm ra cách tìm ra phiên bản nào của thư viện mà Emacs đang mong đợi: tìm trong biến dynamic-library-alist.


1
Cảm ơn bạn đã chỉnh sửa - Tôi chưa bao giờ biết về biến đó nhưng nó giúp việc theo dõi loại điều này dễ dàng hơn nhiều.
Stuart Hickinbottom

Trên thực tế, tôi đã không biên dịch các nhị phân, chỉ nén chúng. Tất cả họ nên làm việc. Và tôi cần cải thiện README. Nó quá phức tạp.
Phil Lord

Sau đó, tôi đoán tôi có nghĩa là "được biên dịch" theo nghĩa phi máy tính để tập hợp một danh sách các thứ từ nhiều nguồn khác nhau, @PhilLord :)
Omar

xác nhận làm việc cho Emacs 25.2
Lorenzo Gatti

1
@feklee Đối với Emacs-26, chỉ cần giải nén zip và bạn đi - ít nhất đó là lý thuyết. Vâng, đồng ý, README cần cập nhật. Hiện tại không có ai. Tôi là rác rưởi.
Phil Lord
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.