Ubuntu:如何安装flex来制作postgres?

Jam*_*mes 9 postgresql ubuntu flex-lexer

我正在尝试使用ubuntu 10.04在本地使用postgresql.我配置后出现此错误

./configure --enable-cassert --enable-debug --prefix=$HOME/pgsql
Run Code Online (Sandbox Code Playgroud)

当我做&& make install我得到这个错误:

make -C parser all
make[3]: Entering directory `/home/james/school/db/pg-stuff/hw1/postgresql-8.4.2/src/backend/parser'
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

我试过了

apt-get install flex但我得到了同样的错误.如何安装flex以使其正常工作?

ivo*_*ron 19

您需要./configure再次运行,以便make文件"知道"flex.

  • 谢谢。这个答案解决了我的同样错误的问题,但在我的例子中不是 Flex,而是野牛。 (3认同)

M. *_*its 2

您可以直接使用以下命令安装 postgresql:

sudo apt-get install postgresql-8.4
Run Code Online (Sandbox Code Playgroud)

我不明白如果你运行以下命令怎么会得到同样的错误:

sudo apt-get install flex
Run Code Online (Sandbox Code Playgroud)

mypc:~/> sudo apt-get install flex

正在阅读包裹清单...完成

构建依赖树

读取状态信息...完成

推荐套餐:

野牛

将安装以下新软件包:

柔性

0 已升级,1 已新安装,0 已删除,0 未升级。

需要获取 261kB 的档案。

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

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

1 秒内获取 261kB (247kB/s)

选择之前取消选择的 Flex 包。

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

解压 Flex(来自 .../flex_2.5.35-9_amd64.deb)...

处理安装信息的触发器...

处理 man-db 的触发器 ...

设置 Flex (2.5.35-9) ...

因为这个包不构建任何东西。当我在 KUbuntu 10.04 下运行上述命令时,我得到以下输出: