Ubuntu Can';不要运行凤凰服务器。Can';找不到erlang/lib/parsetools-2.1.8

Ubuntu Can';不要运行凤凰服务器。Can';找不到erlang/lib/parsetools-2.1.8,ubuntu,elixir,phoenix-framework,Ubuntu,Elixir,Phoenix Framework,我一直在绕着这个错误转。我安装了“解析工具”(不管是什么)。如果我使用“mix deps.clean gettext”,它会使我陷入循环,我会得到相同的错误。我使用的是UbuntuErlang,通过软件包管理器安装不是一个好方法,因为它们不会包含您所需的所有内容,有时它们会将一些库放在不适合的地方,然后一些工具就无法正常工作 我建议您改为使用Erlang Solutions发行版,如果您不喜欢使用Docker,那么您可以尝试复制我在Elixir Docker堆栈中所做的工作,或者只使用下面的ba

我一直在绕着这个错误转。我安装了“解析工具”(不管是什么)。如果我使用“mix deps.clean gettext”,它会使我陷入循环,我会得到相同的错误。我使用的是Ubuntu

Erlang,通过软件包管理器安装不是一个好方法,因为它们不会包含您所需的所有内容,有时它们会将一些库放在不适合的地方,然后一些工具就无法正常工作

我建议您改为使用Erlang Solutions发行版,如果您不喜欢使用Docker,那么您可以尝试复制我在Elixir Docker堆栈中所做的工作,或者只使用下面的bash脚本

在Ubuntu 18.04中安装Elixir Phoenix堆栈 我的Elixir Docker堆栈是从我用来安装Erlang、Elixir、Phoenix和NodeJS的旧bash脚本开始的,因此为了方便起见,我将在这里添加它

将此bash文件
install stack.sh
保存到您的计算机中:

#/垃圾箱/垃圾箱
set-eu
Main(){
本地ERLANG_版本=${1?缺少ERLANG版本。请检查以下位置的最新版本:https://www.erlang-solutions.com/resources/download.html}
本地ERLANG\u下载\u URL=https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_${ERLANG_VERSION}-1~ubuntu~bionic_amd64.deb
local ELIXIR_VERSION=${2?缺少Erlang版本。请访问查看最新版本https://www.erlang-solutions.com/resources/download.html}
本地长生不老药下载地址=https://packages.erlang-solutions.com/erlang/debian/pool/elixir_${ELIXIR_VERSION}-1~ubuntu~bionic_all.deb
本地PHOENIX_VERSION=“${3?缺少要安装的PHOENIX版本!!!}”
本地NODEJS_VERSION=“${4?缺少要安装的NODEJS版本!!!}”
apt更新
apt-y升级
apt-y-q安装--不建议安装\
ca证书\
卷曲\
建立必要的\
procps\
图书馆课程5\
libwxbase3.0-0v5\
libwxgtk3.0-0v5\
libsctp1
apt-y-f安装
printf“\nERLANG下载URL:${ERLANG\u下载\u URL}\n”
curl-fsSL-o esl.deb“${ERLANG_DOWNLOAD_URL}”
dpkg-i esl.deb
rm-f esl.deb
printf“\nELIXIR下载URL:${ELIXIR\u下载URL}\n”
curl-fsSL-o elixir.deb“${elixir\u下载\u URL}”
dpkg-i长生不老药
rm-f长生不老药
printf“\nPHOENIX版本:${PHOENIX\u版本}\n”
#安装包管理器
mix local.hex—强制
#安装钢筋和钢筋3
混合局部钢筋-力
mkdir-p“${HOME}/bin”
ln-s“${HOME}”/.mix/rebar“${HOME}”/bin/rebar
ln-s“${HOME}”/.mix/rebar3“${HOME}”/bin/rebar3
mix archive.install--强制十六进制phx_新${PHOENIX_VERSION}
#安装NODEJS
printf“\nNODEJS版本:${NODEJS\u版本}\n”
curl-sLhttps://deb.nodesource.com/setup_“${NODEJS_VERSION}”.x|sh-
apt install-y-q——无安装推荐nodejs
}
主${@}
从系统中卸载Erlang、Elixir和Phoenix

使用bash Install-stack.sh安装Elixir Phoenix stack

现在测试它的工作原理:

bash install-stack.sh 22.3.3 1.10.3 1.5.1 10
输出:

mix phx.new hello --no-ecto && cd hello && mix test
该脚本在docker容器中进行了测试,其中包含:

...

Finished in 0.03 seconds
3 tests, 0 failures

...

erlang dev
包需要提供
yeccpre.hrl

(apt file或google for debian的package repo可以帮助识别这些情况,下面是buster中erlang dev包含的文件列表,parsetools版本不同,但是您的erlang package set应该为您纠正这一点:
)

您安装了erlang吗?你是如何安装elixir的?我按照elixir网站上的说明安装了elixir和erlang。我有一些其他问题,所以在这一点上,我可能已经安装了各种垃圾试图解决这个问题。我会建议删除它,并通过ASDF安装。。并尝试在到处都缺少包的情况下获得错误。无论我做什么,我都会得到“似乎没有安装所需的开发包‘libncurses5 dev’”。并且:“*文档:*缺少xsltproc。*fop丢失。*缺少xmllint。*无法生成文档。"
...

Finished in 0.03 seconds
3 tests, 0 failures

...
docker run --rm -it -v $PWD/install-stack.sh:/install-stack.sh ubuntu:18.04 bash