#linux #erlang #installation #erl
#linux #erlang #установка #erl
Вопрос:
У меня было вдохновение начать возиться с Erlang, и у меня возникли проблемы с его установкой… Я использую Linux Mint 16 (petra). Я установил зависимости, а затем загрузил otp_src_17.1.tar.gz и побежал ‘tar -zxf otp_src_17.1.tar.gz Затем я запустил файл ./configure, который выдал мне некоторые ошибки, из-за которых невозможно было запустить make.
Это ошибки, которые я получаю (на самом деле то, что я сделал, я сделал ./configure > configure.txt чтобы получить все строки, которые он печатает по мере настройки, и он по-прежнему удобно выводит на консоль все, что содержит ошибки — аккуратно)
configure: WARNING: No odbc library found skipping odbc
configure: WARNING: "ODBC library - header check failed"
configure: WARNING: "ODBC library - link check failed"
rm: remove write-protected regular file './CONF_INFO'?
configure: WARNING: No GLU headers found, wx will NOT be usable
/home/core/Desktop/otp_src_17.1/lib/wx/./configure: line 5195: wx-config: command not found
/home/core/Desktop/otp_src_17.1/lib/wx/./configure: line 5893: ./CONF_INFO: Permission denied
configure: WARNING:
wxWidgets must be installed on your system.
Please check that wx-config is in path, the directory
where wxWidgets libraries are installed (returned by
'wx-config --libs' or 'wx-config --static --libs' command)
is in LD_LIBRARY_PATH or equivalent variable and
wxWidgets version is 2.8.4 or above.
rm: remove write-protected regular file 'doc/CONF_INFO'?
/home/core/Desktop/otp_src_17.1/erts/configure: line 6466: doc/CONF_INFO: Permission denied
configure: WARNING: No 'xsltproc' command found: the documentation cannot be built
/home/core/Desktop/otp_src_17.1/erts/configure: line 6513: doc/CONF_INFO: Permission denied
configure: WARNING: No 'fop' command found: going to generate placeholder PDF files
configure: error: No curses library functions found
configure: error: /bin/bash '/home/core/Desktop/otp_src_17.1/erts/configure' failed for erts
Дело в том, что я знаю, что у меня есть библиотека ncurses, о чем свидетельствует тот факт, что когда я делаю «sudo apt-get install ncurses-base ncurses-bin», в нем говорится:
Reading package lists... Done
Building dependency tree
Reading state information... Done
ncurses-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Когда я запускаю «locate ncurses», это дает мне следующее:
/lib/i386-linux-gnu/libncurses.so.5
/lib/i386-linux-gnu/libncurses.so.5.9
/lib/x86_64-linux-gnu/libncurses.so.5
/lib/x86_64-linux-gnu/libncurses.so.5.9
/lib/x86_64-linux-gnu/libncursesw.so.5
/lib/x86_64-linux-gnu/libncursesw.so.5.9
/usr/bin/ncurses5-config
/usr/bin/ncursesw5-config
/usr/lib/vlc/plugins/gui/libncurses_plugin.so
/usr/share/doc/libncurses5
/usr/share/doc/libncursesw5
/usr/share/doc/ncurses-base
/usr/share/doc/ncurses-bin
/usr/share/doc/ncurses-base/changelog.Debian.gz
/usr/share/doc/ncurses-base/copyright
/usr/share/doc/ncurses-bin/FAQ
/usr/share/doc/ncurses-bin/changelog.Debian.gz
/usr/share/doc/ncurses-bin/copyright
/usr/share/lintian/overrides/ncurses-base
/usr/share/man/man1/ncurses5-config.1.gz
/usr/share/man/man1/ncursesw5-config.1.gz
/var/cache/apt/archives/libncurses5_5.9 20130608-1ubuntu1_i386.deb
/var/lib/dpkg/info/libncurses5:amd64.list
/var/lib/dpkg/info/libncurses5:amd64.md5sums
/var/lib/dpkg/info/libncurses5:amd64.postinst
/var/lib/dpkg/info/libncurses5:amd64.postrm
/var/lib/dpkg/info/libncurses5:amd64.shlibs
/var/lib/dpkg/info/libncurses5:amd64.symbols
/var/lib/dpkg/info/libncurses5:i386.list
/var/lib/dpkg/info/libncurses5:i386.md5sums
/var/lib/dpkg/info/libncurses5:i386.postinst
/var/lib/dpkg/info/libncurses5:i386.postrm
/var/lib/dpkg/info/libncurses5:i386.shlibs
/var/lib/dpkg/info/libncurses5:i386.symbols
/var/lib/dpkg/info/libncursesw5:amd64.list
/var/lib/dpkg/info/libncursesw5:amd64.md5sums
/var/lib/dpkg/info/libncursesw5:amd64.postinst
/var/lib/dpkg/info/libncursesw5:amd64.postrm
/var/lib/dpkg/info/libncursesw5:amd64.shlibs
/var/lib/dpkg/info/libncursesw5:amd64.symbols
/var/lib/dpkg/info/ncurses-base.conffiles
/var/lib/dpkg/info/ncurses-base.list
/var/lib/dpkg/info/ncurses-base.md5sums
/var/lib/dpkg/info/ncurses-bin.list
/var/lib/dpkg/info/ncurses-bin.md5sums
Я в недоумении относительно того, что делать дальше. Спасибо за любую помощь
Ответ №1:
Я считаю, что вам нужно установить ncurses-dev
Комментарии:
1. sudocore @core ~ $ sudo apt-get install ncurses-dev [sudo] пароль для ядра: чтение списков пакетов… Завершено построение дерева зависимостей, считывающее информацию о состоянии… Готовый пакет ncurses-dev недоступен, но на него ссылается другой пакет. Это может означать, что пакет отсутствует, устарел или доступен только из другого источника E: пакет ‘ncurses-dev’ не имеет кандидата для установки
2. ну .. это зависит от того, какой linux вы используете.. Дело в том, что в Linux пакет времени выполнения для любой библиотеки (который требуется для выполнения приложения) и пакет разработчика (который требуется для создания приложения) обычно разделены.. и часть разработчика (вам нужна именно эта часть), имеет суффикс -dev для linux на базе debian (ubuntu, netrunner, mint и т. Д. И т. Д.) Или -devel для linux на основе redhat.. Я не знаю, какой linux вы используете, поэтому попытайтесь найти часть разработки библиотеки ncurses в вашем дистрибутиве. это могут быть ncurses-devel, ncurses-dev, libncurses-dev, libncurses5-dev или -devel и т. Д. И т. Д.
3. Я использую linux mint 16 petra. Допустим, я знаю, где находится библиотека ncurses на моем компьютере. Как мне указать это во время установки?
4. Может быть, это? sudo apt-get install libncurses5-dev
5. Установить его на Windows / Mac намного проще, я прекратил разработку erlang на Linux, не беспокойтесь
Ответ №2:
‘sudo yum install ncurses-devel.x86_64’ перед запуском./configure работал для меня просто отлично. Fedora 21 x64, кстати.
После того, как я извлек tar, документация была в ‘/opt_src_{version}/HOWTO/INSTALL.md. Содержимое которых гласит:
Необходимые утилиты
Это инструменты, необходимые для распаковки и сборки Erlang / OTP.
ПРЕДУПРЕЖДЕНИЕ: Пожалуйста, ознакомьтесь с главой [Известные проблемы с платформой] [], прежде чем начать.
Распаковка
- GNU unzip или современный uncompress.
- Программа TAR, которая понимает формат GNU TAR для длинных имен файлов.
Сборка
- GNU
make
- Компилятор — компилятор GNU C
gcc
или интерфейс компилятора C для LLVM,clang
. - Perl 5
- GNU
m4
— Если включена поддержка HiPE (native code). HiPE можно отключить с помощью--disable-hipe
ncurses
,termcap
, илиtermlib
— Необходимы заголовки и библиотеки разработки, часто известные какncurses-devel
. Используйте--without-termcap
для сборки без каких-либо из этих библиотек. Обратите внимание, что в этом случае можно использовать только старую оболочку (без какого-либо редактирования строк).sed
— Редактор потоков для базового преобразования текста.
ncurses просто оказался единственным необходимым пакетом, который я не установил на этой виртуальной машине для разработки. Таким образом, ваш пробег может отличаться.
Это был вывод «locate ncurses» после того, как я установил библиотеку ncurses:
/usr/lib64/libncurses .so.5
/usr/lib64/libncurses .so.5.9
/usr/lib64/libncurses w.so.5.5
/usr/lib64/libncurses w.so.5.9
/usr/lib64/libncurses.so.5
/usr/lib64/libncurses.so.5.9
/usr/lib64/libncursesw.so.5
.5 /usr/lib64/libncursesw.so.5.9
/usr/share/doc/ncurses
/usr/share/doc/ncurses-база
/usr/share/doc/ncurses/ANNOUNCE
/usr/share/doc/ncurses/AUTHORS
/usr/share/doc/ncurses/NEWS.bz2
/usr/share/doc/ncurses/README
/usr/share/doc/ncurses/TO-DO
/usr/share/doc/ncurses-base/README
/usr/share/licenses/ncurses-base
/usr/share/licenses/ncurses-base/КОПИРОВАНИЕ
Итак, я бы сказал, что в OP была установлена поврежденная / неправильная установка ncurses. Я просто публикую это здесь, потому что это был результат Google № 1, который я получил, когда мне было лень использовать RTFD.
Комментарии:
1. проблема заключалась в том, что Windows — зло
Ответ №3:
Одной из альтернатив является использование опции « --without-termcap
«
в файле otp_src_18.0 / configure говорится:
—без-termcap не используйте библиотеки
termcap (ncurses, curses, termcap, termlib)
./configure --prefix=/home/username/erlang/18.0 --without-termcap
Установите переменную PATH, как показано ниже.
export PATH=$PATH=/home/username/erlang/18.0/bin
Хотя не уверен в последствиях. 🙂
Надеюсь, это кому-то поможет.