今天博主在ubuntu 10.04安裝從enterprisedb下載的postgresql安裝包是出現一個問題,運行後提示「Segmentation fault」錯誤,安裝失敗。以前我在12.04版的系統中有安裝過,一切正常。以後公司領導說這個多是系統不兼容的關係,因此須要用源碼安裝。固然,源碼安裝比安裝包麻煩了許多。html
###1.下載源碼包並解壓。源碼下載地址:http://www.postgresql.org/ftp/source/,這裏博主選用的是9.3.2版本。sql
root@vm-199:~# wget http://ftp.postgresql.org/pub/source/v9.3.2/postgresql-9.3.2.tar.gz數據庫
root@vm-199:~# tar zxvf postgresql-9.3.2.tar.gzubuntu
###2.編譯安裝,安裝到/opt/PostgreSQL/9.3目錄。post
root@vm-199:~# cd postgresql-9.3.2ui
root@vm-199:~# ./configure --prefix=/opt/PostgreSQL/9.3.net
root@vm-199:~# makepostgresql
root@vm-199:~# make installcomponent
###3.看到PostgreSQL installation complete.說明安裝成功。htm
###4.建立postgres用戶和數據目錄/opt/PostgreSQL/9.3/data,修改數據目錄全部者和權限。
root@vm-199:~# adduser postgres
root@vm-199:~# mkdir -p /opt/PostgreSQL/9.3/data
root@vm-199:~# chown -R postgres.postgres /opt/PostgreSQL/9.3/data
root@vm-199:~# chmod -R go-rwx /opt/PostgreSQL/9.3/data
###5.設置全局環境變量
root@vm-199:~# vi /etc/profile
###添加以下配置到打開文件中。
export PATH=/opt/PostgreSQL/9.3/bin:$PATH
export PGDATA=/opt/PostgreSQL/9.3/data
export PGHOME=/opt/PostgreSQL/9.3
export.UTF-8
export PGPORT=5432
###6.初始化數據庫,啓動。
postgres@vm-199:~$ initdb -D /opt/PostgreSQL/9.3/data --locale=zh_CN.UTF8
postgres@vm-199:~$ pg_ctl start
這裏博主在第二步的時候碰到過一個問題,運行./configure –prefix=/opt/PostgreSQL/9.3後提示「configure: error: readline library not found」的錯誤,在askubuntu上看到解決辦法是先安裝libreadline-dev依賴。
最後咱們把postgresql添加到服務中,設置開機自動啓動。
root@vm-199:~# cd /etc/init.d
root@vm-199:/etc/init.d# wget http://download.chekiang.info/blog/postgresql-9.3
root@vm-199:/etc/init.d# chmod +x postgresql-9.3
root@vm-199:/etc/init.d# update-rc.d postgresql-9.3 defaults
至此postgresql的安裝應該已經所有結束,可是博主在導入數據的時候發現postgres_fdw擴展沒有安裝。按照以前這篇文章http://www.sijitao.net/1434.html介紹的postgres_fdw安裝時出現錯誤,提示以下。
postgres=# create extension postgres_fdw;
ERROR: could not open extension control file "/opt/PostgreSQL/9.3/share/postgresql/extension/postgres_fdw.control": No such file or directory
查看postgresql官方文檔,原來編譯安裝的時候擴展默認是不安裝的,「When building from the source distribution, these components are not built automatically」。手動安裝postgres_fdw擴展比較簡單,進入源碼目錄下的/contrib/postgres_fdw,分別運行make和make install進行安裝,成功再運行create extension postgres_fdw就不會提示錯誤了。
有關擴展安裝能夠查看官方介紹:http://www.postgresql.org/docs/current/static/contrib.html 。