Как установить 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, поэтому я получил версию Emacs для i686.

  2. Получил копию GnuTLS из ezwinports и распаковал zip-файл в ту же директорию, что и Emacs. То, как организован почтовый индекс 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 - восстановите Monica
@henning: Вот что означает выражение «способ организации почтового индекса gnutls» означает, что таким образом и dll, и exe для gnutls попадают в тот же каталог, что и Emacs exe », я попытаюсь перефразировать его завтра яснее.
Омар,
Это больше похоже на проблему в Emacs 25.1, чем на сам gnutls, потому что сегодня я скачал 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и других необходимых библиотек. К счастью Phillip Господь собрал версию Windows , из всех GnuTLS библиотек и зависимостей и многих других библиотек вы можете захотеть для Emacs! Они доступны здесь : получить, emacs-25-i686-deps.zipесли вы используете 32-битную Windows и получить, emacs-25-x86_64-deps.zipесли вы используете 64-битную; затем распакуйте в корневую папку вашей установки Emacs (чтобы binпапка с zip-файлами распаковывалась в binпапку вашей установки Emacs и т. д.)

РЕДАКТИРОВАТЬ: я выяснил, как узнать, какую версию библиотеки ожидает Emacs: посмотрите в переменную dynamic-library-alist.

Омар
источник
1
Спасибо за редактирование - я никогда не знал об этой переменной, но это значительно облегчает поиск таких вещей.
Стюарт Хикинботтом
На самом деле, я не компилировал двоичные файлы, просто сжал их. Они все должны работать. И мне нужно улучшить README. Это слишком сложно.
Фил Лорд
Тогда, я думаю, я имел в виду «скомпилированный» в некомпьютерном смысле, чтобы собрать список вещей из разных источников, @PhilLord :)
Омар,
подтвердил работу для Emacs 25.2
Лоренцо Гатти
1
@feklee Для Emacs-26, просто распакуйте zip и все готово - по крайней мере, это теория. Да, согласился, README нуждается в обновлении. Там нет ни одного в данный момент. Я мусор.
Фил Лорд