Як встановити GnuTLS для Emacs 25.1 в Windows?


19

Щойно я оновив Emacs на своїй машині Windows 10 з 24,5 до 25,1. Для Emacs 24.5 я правильно встановив GnuTLS, і для 25.1 я зробив те, що, як я думав, пам’ятав, що зробив:

  1. Отримали попередньо створені бінарні файли Emacs зі сторінки завантаження веб-сайту GNU Emacs . Я використовую 32-бітний Windows, тому я отримав i686 версію Emacs.

  2. Отримав копію GnuTLS з ezwinports та вилучив zip-файл у ту саму директорію, що й Emacs - спосіб організації zip gnutls означає, що таким чином і dll, і exe для gnutls закінчуються в тому ж каталозі, що й у Emacs exe. (Цього разу я отримав версію 3.3.11; я не пам'ятаю, яку версію GnuTLS мав, коли у мене була версія 24.5 Emacs.)

Цього разу це не спрацювало. gnutls-available-pповертається nil, менеджер пакунків може підключатися лише до сховищ http, а не до https, і eww не може працювати з https.

Як налаштувати GnuTLS для Emacs 25.1? Чи я пам’ятаю, що я робив за 24,5? Можливо, двійкові файли з веб-сайту GNU Emacs складені без GnuTLS, і за 24,5 я фактично отримав двійкові файли з іншого місця ...


Я видалив свою оригінальну відповідь, оскільки вона не стосувалася вашої версії Emacs. У своєму запитанні ви можете, можливо, уточнити, що ви скопіювали файли в ./bin
henning -

@henning: Ось що мав на увазі речення "спосіб організації zip gnutls означає, що цей спосіб, як dll, так і exe для gnutls, перетворюється в той самий каталог, що і для exe Emacs", я спробую переробити це завтра чіткішим способом.
Омар

Це більше схоже на проблему на Emacs 25.1, а не на самі гнутки, тому що сьогодні я завантажив Emacs 25.1 і отримав таку ж проблему. Emacs 24.1 викликає gnutls з параметрами: --insecure -p 443 --protocols ssl3, тоді як 25.1 називає це: -x509cafile nil -p 443. Це може мати щось спільне з цими різними параметрами виклику.
Ромаріо

2
У мене немає деталей, але я коротко розглянув це раніше. Я думаю, що Emacs 25.1 очікує libgnutls-30.dll, але ezwinports наразі пакує лише libgnutls-28.dll.
Стюарт Хікінботт

Відповіді:


29

@StuartHickinbottom пояснив, що я робив неправильно: використовуючи, libgnutls-28.dllколи Emacs 25.1 вимагає новішого та несумісного libgnutls-30.dll. Тоді мова йшла про пошук бінарних файлів libgnutls-30.dllта інших необхідних бібліотек. На щастя, Філіп Лорд склав версії Windows для всіх бібліотек та залежностей GnuTLS та багатьох інших бібліотек, які вам можуть знадобитися для Emacs! Вони доступні тут : отримуйте, emacs-25-i686-deps.zipякщо ви використовуєте 32-бітну Windows, і отримуйте, emacs-25-x86_64-deps.zipякщо ви використовуєте 64-розрядні; потім розпакуйте в кореневій папці вашої установки Emacs (щоб binпапка zip-файлів декомпресувалася у binпапку вашої установки Emacs тощо)

EDIT: Я зрозумів, як дізнатися, яку версію бібліотеки очікує Emacs: подивіться у змінну dynamic-library-alist.


1
Дякуємо за редагування - я ніколи не знав про цю змінну, але це значно полегшує відстеження цього типу.
Стюарт Хікінботто

Насправді я не збирав двійкові файли, а просто їх застебнув. Всі вони повинні працювати. І мені потрібно покращити README. Це занадто складно.
Філ Лорд

Тоді я гадаю, що я мав на увазі "складений" у некомп'ютерному сенсі, щоб скласти список речей з різних джерел, @PhilLord :)
Омар

підтверджено, що працює над Emacs 25.2
Лоренцо Гатті

1
@feklee Для Emacs-26 просто розпакуйте поштовий індекс і підете далі - принаймні, це теорія. Так, погоджено, README потребує оновлення. Наразі немає жодної. Мене сміття.
Філ Лорд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.