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的效果吧。
記憶の碎片 发布于Ubuntu 下源码安装Postgresql | CnTechs.tk