Bagaimana cara menginstal GnuTLS untuk Emacs 25.1 di Windows?

19

Saya baru saja memutakhirkan Emacs pada mesin Windows 10 saya dari 24,5 ke 25.1. Untuk Emacs 24.5 saya telah menyiapkan GnuTLS dengan benar dan untuk 25.1 saya melakukan apa yang saya pikir saya ingat saya lakukan:

  1. Mendapat binari Emacs dari prebuilt dari halaman unduhan situs web GNU Emacs . Saya menggunakan Windows 32 bit, jadi saya mendapatkan versi Emacs i686.

  2. Mendapat salinan GnuTLS dari ezwinports dan mengekstraksi file zip ke direktori yang sama dengan Emacs - cara zip gnutl diorganisasikan berarti dengan cara ini baik dll maupun exe untuk gnutl berakhir pada direktori yang sama dengan exe Emacs. (Saya mendapatkan versi 3.3.11 kali ini; Saya tidak ingat versi GnuTLS apa yang saya miliki ketika saya memiliki versi 24.5 dari Emacs.)

Tidak berhasil kali ini. gnutls-available-pkembali nil, manajer paket hanya dapat terhubung ke repositori http dan bukan yang https, eww juga tidak dapat menangani https.

Bagaimana cara mengatur GnuTLS untuk Emacs 25.1? Apakah saya salah mengingat apa yang saya lakukan untuk 24.5? Mungkin binari dari situs web GNU Emacs dikompilasi tanpa GnuTLS dan untuk 24.5 saya benar-benar mendapatkan binari dari tempat lain ...

Omar
sumber
Saya menghapus jawaban asli saya, karena tidak menjawab versi Emacs Anda. Dalam pertanyaan Anda, Anda mungkin bisa mengklarifikasi bahwa Anda menyalin file ke ./bin
henning - mengembalikan Monica
@menunjukkan: Itulah kalimat "cara zip gnutls diatur berarti bahwa dengan cara ini baik dll dan exe untuk gnutl berakhir pada direktori yang sama dengan exe Emacs" dimaksudkan untuk disampaikan, saya akan mencoba untuk menulis ulang dengan cara yang lebih jelas besok.
Omar
Kelihatannya lebih seperti masalah pada Emacs 25.1 daripada gnutl itu sendiri karena hari ini saya telah mengunduh Emacs 25.1 dan mendapatkan masalah yang sama. Emacs 24.1 memanggil gnutl dengan opsi: --insecure -p 443 --protocols ssl3 sedangkan 25.1 menyebutnya dengan: -x509cilile nil -p 443. Mungkin ada hubungannya dengan opsi panggilan yang berbeda ini.
Romario
2
Saya tidak punya detail untuk disampaikan, tapi saya sempat melihat ini sebelumnya. Saya pikir Emacs 25.1 mengharapkan libgnutls-30.dll tetapi hanya libgnutls-28.dll yang dikemas oleh ezwinports saat ini.
Stuart Hickinbottom

Jawaban:

29

@StuartHickinbottom menjelaskan apa yang saya lakukan salah: menggunakan libgnutls-28.dllketika Emacs 25.1 membutuhkan yang lebih baru dan tidak kompatibel libgnutls-30.dll. Kemudian itu adalah masalah menemukan binari libgnutls-30.dlldan perpustakaan lain yang diperlukan. Untungnya Phillip Lord telah menyusun versi Windows dari semua pustaka dan dependensi GnuTLS dan banyak pustaka lain yang mungkin Anda inginkan untuk Emacs! Mereka tersedia di sini : dapatkan emacs-25-i686-deps.zipjika Anda menggunakan Windows 32-bit dan dapatkan emacs-25-x86_64-deps.zipjika Anda menggunakan 64-bit; kemudian unzip di folder root instalasi Emacs Anda (sehingga binfolder file zip terdekompresi ke binfolder instalasi Emacs Anda, dll.)

EDIT: Saya menemukan cara untuk mengetahui versi perpustakaan mana yang diharapkan oleh Emacs: lihat dalam variabel dynamic-library-alist.

Omar
sumber
1
Terima kasih atas hasil editnya - Saya tidak pernah tahu tentang variabel itu tetapi itu membuat melacak hal semacam ini jauh lebih mudah.
Stuart Hickinbottom
Sebenarnya, saya tidak mengkompilasi binari, hanya zipnya saja. Mereka semua harus bekerja. Dan saya perlu meningkatkan README. Itu terlalu rumit.
Phil Lord
Maka saya kira saya maksudkan "dikompilasi" dalam arti non-komputer mengumpulkan daftar hal-hal dari berbagai sumber, @ PhilLord :)
Omar
dikonfirmasikan bekerja untuk Emacs 25.2
Lorenzo Gatti
1
@feklee Untuk Emacs-26, cukup buka zipnya dan pergilah - setidaknya itu teorinya. Ya, setuju, README perlu diperbarui. Tidak ada satu saat ini. Saya menjadi sampah.
Phil Lord