postgres 9.1“IN6ADDR_ANY”不会被Socket模块导出

时间:2012-07-26 14:43:42

标签: postgresql install

我搜索了但没找到答案为什么我在安装时遇到错误:

$ sudo aptitude install postgresql-9.1 postgresql-contrib-9.1 python-pygresql libpq-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initialising package states... Done
The following NEW packages will be installed:
  libossp-uuid16{a} postgresql-9.1 postgresql-common{a} postgresql-contrib-9.1 python-pygresql 
0 packages upgraded, 5 newly installed, 0 to remove and 32 not upgraded.
Need to get 0B/7,463kB of archives. After unpacking 21.2MB will be used.
Do you want to continue? [Y/n/?] Y
Writing extended state information... Done
Preconfiguring packages ...
Selecting previously deselected package libossp-uuid16.
(Reading database ... 414497 files and directories currently installed.)
Unpacking libossp-uuid16 (from .../libossp-uuid16_1.6.2-1ubuntu1_amd64.deb) ...
Selecting previously deselected package postgresql-common.
Unpacking postgresql-common (from .../postgresql-common_133~lucid_all.deb) ...
Adding `diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common'
Selecting previously deselected package postgresql-9.1.
Unpacking postgresql-9.1 (from .../postgresql-9.1_9.1.4-1~lucid4_amd64.deb) ...
Selecting previously deselected package postgresql-contrib-9.1.
Unpacking postgresql-contrib-9.1 (from .../postgresql-contrib-9.1_9.1.4-1~lucid4_amd64.deb) ...
Selecting previously deselected package python-pygresql.
Unpacking python-pygresql (from .../python-pygresql_1%3a4.0-2_amd64.deb) ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up libossp-uuid16 (1.6.2-1ubuntu1) ...

Setting up postgresql-common (133~lucid) ...
"IN6ADDR_ANY" is not exported by the Socket module
Can't continue after import errors at /usr/share/postgresql-common/PgCommon.pm line 19
BEGIN failed--compilation aborted at /usr/share/postgresql-common/PgCommon.pm line 19.
Compilation failed in require at /usr/share/postgresql-common/run-upgrade-scripts line 18.
BEGIN failed--compilation aborted at /usr/share/postgresql-common/run-upgrade-scripts line 18.
"IN6ADDR_ANY" is not exported by the Socket module
Can't continue after import errors at /usr/share/postgresql-common/PgCommon.pm line 19
BEGIN failed--compilation aborted at /usr/share/postgresql-common/PgCommon.pm line 19.
Compilation failed in require at /usr/share/postgresql-common/pg_checksystem line 20.
BEGIN failed--compilation aborted at /usr/share/postgresql-common/pg_checksystem line 20.

Setting up postgresql-9.1 (9.1.4-1~lucid4) ...
**"IN6ADDR_ANY" is not exported by the Socket module
Can't continue after import errors at /usr/share/postgresql-common/PgCommon.pm line 19
BEGIN failed--compilation aborted at /usr/share/postgresql-common/PgCommon.pm line 19.
Compilation failed in require at /usr/bin/pg_createcluster line 19.
BEGIN failed--compilation aborted at /usr/bin/pg_createcluster line 19.
Error: could not create default cluster. Please create it manually with

  pg_createcluster 9.1 main --start

or a similar command (see 'man pg_createcluster').**
update-alternatives: using /usr/share/postgresql/9.1/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.

Setting up postgresql-contrib-9.1 (9.1.4-1~lucid4) ...

Setting up python-pygresql (1:4.0-2) ...

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Processing triggers for python-central ...
Reading package lists... Done             
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initialising package states... Done
Writing extended state information... Done

我不知道什么是IN6ADDR_ANY以及如何将其设置为由Socket模块导出。 我尝试在sudo add-apt-repository ppa之后在ubuntu 10.04上安装它:pitti / postgresql

5 个答案:

答案 0 :(得分:3)

问题是Socket模块没有更新,旧版本的Socket没有导出IN6ADDR_ANY。 (参见/usr/lib/perl/5.12.4/Socket.pm)。我机器上的版本是1.87_01,该版本不导出IN6ADDR_ANY。最新版本是2.002。

问题可能是有人在打包新的postgresql-9.1 dpkg时忘记输入Socket 2.002作为依赖。

修复是更新Socket模块:

$ sudo apt-get install libsocket-perl

如果不适合您,请尝试通过cpan升级Socket:

$ sudo apt-get install cpan
$ sudo cpan Socket

编辑:

如果Socket不能通过上面的命令安装并且正在使用“BEGIN失败 - 编译在Makefile.PL第6行中止”消息进行轰炸,请运行:

$ sudo cpan ExtUtils::Constant

这将获得更新Socket所需的ExtUtils :: Constant v0.23。然后你应该能够运行:

$ sudo cpan Socket

没有问题。

答案 1 :(得分:0)

我使用了其他ppa并且它起作用了:

PPA:flexiondotorg / postgres的

要删除旧的,我用这种方式使用ppa-purge:

wget http://launchpadlibrarian.net/53004738/ppa-purge_0%2Bbzr46.1~lucid1_all.deb &&
sudo dpkg -i ppa-purge_0+bzr46.1~lucid1_all.deb
sudo ppa-purge ppa:pitti/postgresql

添加新的ppa:

sudo add-apt-repository ppa:flexiondotorg/postgres
sudo apt-get update

答案 2 :(得分:0)

为了解决这个问题,我将postgresql-client-common和postgresql-common的评级降级为之前的“130~lucid”版本。

幸运的是,这些软件包位于我的apt存档中,位于我的机器上的/ var / cache / apt / archives(运行Ubuntu 10.10)。

只需使用dpkg

安装它们
sudo dpkg -i postgresql-client-common_130~lucid_all.deb
sudo dpkg -i postgresql-common_130~lucid_all.deb

答案 3 :(得分:0)

有趣的是,当我从postgres 8.4升级到9.1时,发生在我身上的同一天发生了其他人。 我有完全相同的问题,并在恰当的时间找到解决方案!

我在/usr/share/postgresql-common/PgCommon.pm中的行19和684到687就像有人(Billy Monk)昨天写的那样(显然现在更改或删除了他的帖子)。

它有效。

我现在将尝试更新套接字的解决方案。

非常感谢。

答案 4 :(得分:0)

这对我有用(在Ubuntu 10.04LTS上):

$ sudo apt-get update
$ sudo apt-get install libcpan-mini-perl
$ sudo cpan ExtUtils::Constant
$ sudo cpan Socket