Ubuntu 下源码安装Postgresql

来源:岁月联盟 编辑:exp 时间:2011-11-22

 

环境:
操作系统:Ubuntu Server 10.10
Postgresql 版本:8.4.5

1.切换到ROOT账户,在根目录下创建Softwares目录,并赋于相应权限

/

2.下载 Postgresql 8.4.5

wget http://wwwmaster.postgresql.org/redir/391/f/source/v8.4.5/postgresql-8.4.5.tar.gz

/

下载之后,可以在当前目录下看到postgresql-8.4.5.tar.gz文件。

 /

然后利用tar命令对该文件进行解压。

tar vxf ./postgresql-8.4.5.tar.gz

/

解压后会在当前目录下看到postgresql-8.4.5的目录,该目录有如下文件

/

在安装前需要做些设置,首先是安装两个库文件:libreadline5.dev、zlib1g.dev

    sudo apt-get install libreadline5-dv    sudo apt-get install zlib1g-dev

配置好了编译Postgresql的环境后,就依次执行以下的命令:

./configure --prefix=$PostgresqlPath    make    make install

注:$PostgresqlPath为你所指定的Postgresql的安装目录,如:/softwares/postgresql

漫长的编译安装结束后,我们会在指定目录下看到安装目录。

      cd $PostgresqlPath/bin

/

进入Postgresql安装目录下的Bin目录中,在该目录下创建一个名为PGDATA的存储数据库文件的目录并在该目录下创建一个postgres的目录, 创建一个名为postgres的用户(专门用来操作数据库),并将postgres目录所有者指定给它。

/

完成以上动作后,切换用户为postgres后进入$PostgresqlPath/bin目录执行如下命令初始化数据目录:

./initdb -D PGDATA/postgres

/

初始化创建完了会有如下提示

/

可以用提示中的两个命令去启动数据库,我选用第一条命令:

 ./postgres -D PGDATA/postgres

/

到这里,你所创建的用户为名的数据库已经启动了,可以用pgsql对其进行操作了。 为了使数据库能在开机时启动,我们可以对其进行开机启动设置 首先我们要确认当前Ubuntu所在的运行级别,用runlevel命令

 /

由此我们可以看出N 2表明当前Ubunut的运行级别为2,我们需要在etc目录下的rc2.d中设置启动项。

/

进入rc2.d目录,我们看到如上图所示的列表,我们需要在S03rc.local中添加Postgresql的启动命令。在此我们需要对S03rc.local的文件命令做下诠释:可以看到该目录下的文件名大多是以 S+数字+文件名 组成,S 代表为该文件开机就执行,与其对应的有 K 开头的文件,代表开机不运行,这与Windows下的服务有启动与停止类似。数字 代表运行优先级,数字越大,越优先。 我们用VI对S03rc.local进行编辑:

/

我们在上图箭头所指处添加如下代码:

su -c "/softwares/postgresql/bin/pg_ctl start -D /softwares/postgresql/bin/PGDATA/postgres" postgres

保存后退出文件编辑,先别急着重启测试,先需要改一下Ubuntu的Shell设置,自Ubuntu 6.0以上开始,Shell由原来的Bash成了体积更小的Dash,后者比前者的体积更小,效率高,但同时有些以前Bash下支持很好的Shell无法在Dash下运行,因此建议将其换回Bash。具体步骤如下:

 键入:sudo dpkg-reconfigure dash

 /

在以上界面中选择"No",会出现以下界面:

 /

从上图我们可以发现ubuntu删除了指向dash的链接,加入了bash的链接及库。

到此我们的在Ubuntu上配置Postgresql就结束了,让我们用shutdown -r now去重启下Ubuntu试试看开机启动Postgresql的效果吧。

 

作者 記憶の碎片