Ubuntu: 如何安装flex以使postgres工作?

12

我正在尝试在Ubuntu 10.04上本地使用PostgreSQL,但在配置后出现以下错误:

./configure --enable-cassert --enable-debug --prefix=$HOME/pgsql

当我执行 && make install 命令时,出现了以下错误:

make -C parser all
make[3]: Entering directory `/home/james/school/db/pg-stuff/hw1/postgresql-8.4.2/src/backend/parser'

ERROR: `flex' is missing on your system. It is needed to create the
file `scan.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[3]: *** [scan.c] Error 1
make[3]: Leaving directory `/home/james/school/db/pg-stuff/hw1/postgresql-8.4.2/src/backend/parser'
make[2]: *** [parser-recursive] Error 2
make[2]: Leaving directory `/home/james/school/db/pg-stuff/hw1/postgresql-8.4.2/src/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/james/school/db/pg-stuff/hw1/postgresql-8.4.2/src'
make: *** [all] Error 2

我尝试着运行apt-get install flex,但是却得到了相同的错误。请问如何安装flex才能让它正常工作呢?

3个回答

35
你需要再次运行./configure,以便使make文件“意识到”flex的存在。

谢谢!它解决了“系统中缺少flex”错误。 - Maksim Dmitriev
3
谢谢。这个答案解决了我遇到的相同错误,但是我的情况不是 Flex,而是 Bison。 - Suniel

2

您可以直接使用以下方式安装PostgreSQL:

sudo apt-get install postgresql-8.4

如果你运行了以下命令,我不明白为什么会出现相同的错误:

sudo apt-get install flex

mypc:~/> sudo apt-get install flex

正在读取软件包列表... 完成

正在建立依赖关系树

正在读取状态信息... 完成

建议安装的软件包:

bison

下列新软件包将被安装:

flex

升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

需要下载 261kB 的归档文件。

此操作后将使用额外的 1,032kB 磁盘空间。

获取:1 http://us.archive.ubuntu.com/ubuntu/ lucid/main flex 2.5.35-9 [261kB]

已下载 261kB,耗时 1s (247kB/s)

正在选中未选择的软件包 flex。

(正在读取数据库 ... 系统当前共安装有 208958 个文件和目录。)

正在解压缩 flex (来自 .../flex_2.5.35-9_amd64.deb) ...

正在处理用于 install-info 的触发器 ...

正在处理用于 man-db 的触发器 ...

正在设置 flex (2.5.35-9) ...

由于此软件包不会构建任何内容。在 KUbuntu 10.04 上运行上述命令时,将得到以下输出:

.


运行 sudo apt-get install flex 命令时,你遇到了什么错误?请确切地包含 apt 返回的内容。 - M. Tibbits
安装成功:正在解压缩 flex(来自.../flex_2.5.35-9_i386.deb)... 正在处理 install-info 的触发器... 正在处理 man-db 的触发器... 设置 flex(2.5.35-9)中... 但是当我尝试执行 make && make install 时,我仍然遇到相同的错误。 - James

0

手册上说:

从Git构建需要Bison和Flex,但从发布文件构建时不需要。只有Bison 1.875或2.2及更高版本才能正常工作。Flex必须是2.5.31或更高版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接