我正在按照this教程安装Apache AGE,并收到以下错误:
$ make && make install
***
ERROR: `flex` is missing on your system. It is needed to create the
file `src/backend/parser/ag_scanner.c`. You can either get flex from a GNU mirror
site or download an official distribution of PostgreSQL, which
contains pre-packaged flex output.
***
make: *** [/usr/local/pgsql/lib/pgxs/src/makefiles/../../src/Makefile.global:758
: src/backend/parser/ag_scanner.c] Error 1
$ flex --version
flex 2.6.4
正如你所看到的,我已经安装了Flex,但它给了我这个错误。
我试过重新安装Flex,但无济于事。
7条答案
按热度按时间m528fe3b1#
我建议您重新安装所有要求,然后重新安装PostgreSQL。如果您是从软件包管理安装,请确保您安装了版本11、12或13的
postgresql
和postgresql-server-dev
。默认情况下,二进制文件安装在目录/usr/lib/postgresql/{version}/bin
中,其中{version}
是您安装的PostgreSQL版本(例如:13)。之后,您可以尝试AGE的干净安装。首先,配置
PATH
变量,并通过运行以下命令设置PG_CONFIG
变量来安装AGE:如果你想了解如何通过Apache AGE的包管理安装PostgreSQL的详细教程,你可以参考这篇文章:Step-by-Step Guide to Install PostgreSQL via Package Management for Apache AGE on Ubuntu。
cgyqldqp2#
似乎
make
不知道flex
存在于您的系统中。请在尝试
make
和make install
之前再次尝试运行./configure
。gj3fmq9x3#
以sudo的形式运行make命令。问题可能在于sudo和非sudo环境的不同。
uurity8g4#
再次执行此命令
sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison
。然后执行抛出错误的命令。检查您的PostgreSQL和年龄版本。因为age只支持PostgreSQL 11和12。如果上述说明不起作用。.我建议您重新开始,删除之前安装的文件,并按照以下步骤顺利安装年龄:
安装依赖项:
首先,我们将安装age For,创建一个新目录和一个子目录:
在开始安装Apache Age之前,请使用以下命令下载一些重要的库。由于我们专门使用Linux来安装apache age,因此我们将使用以下命令。
请记住,下面的命令可能会因操作系统而异。
sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison
从源安装PostgreSQL:
首先,我们将从源代码安装PostgreSQL。我们需要一个年龄兼容的PostgreSQL版本。目前,age仅支持Postgres 11和12。
下载文件夹age-installation/pg中的文件
该命令将为Linux用户从工作目录中的Source下载并解压缩tar文件。安装PG:现在我们将安装PostgreSQL。
在上面的命令中,前缀标志将包含您希望安装PSQL的路径。将路径替换为括号中的路径。
年龄:
下载中:
从GitHub仓库下载年龄。例如,将其克隆到age_installation目录中。
git clone https://github.com/apache/age.git
安装:
使用PostgreSQL配置age。
在上述命令中,PG_CONFIG需要pg_config文件的路径。第二个命令将检查安装是否成功。
在check命令结束时,您将收到一条消息,表明所有测试都通过了。
您也可以在下面的链接中查看更多:
ma8fv8wu5#
我假设你是从源代码安装的。在你开始安装PostgreSQL和AGE之前,有一些依赖关系需要安装在你的机器上,比如build-essential,libreadline-dev,zlib 1g-dev,flex和野牛。我在我的博客link中解释过。访问AGE documentation获取更多信息。
我建议你使用
make clean
删除所有对象,或者删除并重新提取postgresql源代码,然后重新运行。/configure使用make
的前缀和标志来了解这些依赖关系。现在可以运行gmake
和gmake install
来重新编译postgresqlwqsoz72f6#
请运行下面的命令来查看是否有flex可执行文件:
如果flex变量不在PATH中,则可以通过以下方式配置它
您还可以将此命令添加到shell的启动文件(~/.bashrc或~/。zshrc),这样每次打开新的终端会话时,PATH变量都会自动更新。
r8uurelv7#
问题可能是您在安装AGE时没有检查依赖项。请根据您的操作系统检查依赖项。Althpugh如果你正在使用ubntu尝试运行命令。
sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison
另外,我建议遵循本教程轻松安装guide to install AGE and AGE-Viewer。它有助于处理安装的依赖关系,还可以告诉安装的兼容版本。