按照「官方說法」,PostgreSQL 9 的 Ubuntu 套件會在 11.04 版釋出時隨著釋出。所以這篇文章的時效性可能只有一個月不到,但是我仍然決定丟上來。因為世事難料,誰都不會想到日本會發生 9.0 強震,並且引發史上第二大的海嘯,還一併發生史上第二嚴重的核子安全事件;那誰又能預知 PostgreSQL 或 pgAdmin III 在下一版的 Ubuntu (11.04) 發行後,是不是還能保持最新版本的更新。別忘了,RHEL/CentOS/Fedora Core 版本的 PostgreSQL rpm 套件,仍然是社群版本的更新速度是最快的。如果你一直只是跟隨 Redhat 官方版本,那恐怕早就被怪客搞得七葷八素了。
自從 Ubuntu 10.04 後,我發現 Ubuntu 官方的 PostgreSQL 相關核心套件的更新速度,好像整個停頓下來了。尤其是 pgAdmin III,不但新的 1.12.0 版一直沒出現,連舊的版本,你都無法用軟體中心或者是 apt-* 工具來更新。PostgreSQL 更是停留在 8.4.x 版。當然,如果你是舊版使用者,那麼停留在舊版無所謂,但是 9.0 自從 2010 年 9 月發布至今,都已經半年了,而且連 9.0 版的相關書籍都出版了半年了,Ubuntu 的 PostgreSQL 套件還停留在 8.X 版,對於開發者來說,這個停滯的時間也太久了一點。幸好社群中有位 Martin Pitt,幫大家把新版套件整理好,只要照著以下的方式,就可以繼續「無縫地」繼續利用 Ubuntu 的「更新管理員」保持最新版本的 PostgreSQL,謝謝 Mr. Pitt!
Martin 把更新套件放到 Ubuntu Launchpad 上了,他也在下列這個網頁,有一些些的說明,我這篇文章也是參考他的說明的:
https://launchpad.net/~pitti/+archive/postgresql
首先,要讓 Ubuntu 軟體中心可以參考到更新套件,你必需把新的套件庫參考網址,加到 /etc/apt/sources.list 中。
https://launchpad.net/~pitti/+archive/postgresql
首先,要讓 Ubuntu 軟體中心可以參考到更新套件,你必需把新的套件庫參考網址,加到 /etc/apt/sources.list 中。
$ sudo vi /etc/apt/sources.list
要把 Pitt 維護的 PostgreSQL 套件加入參考,就要在 /etc/apt/sources.list 中加入下面幾行:
## Postgres 9 hasn't been backported yet. Manually added repos.
deb http://ppa.launchpad.net/pitti/postgresql/ubuntu lucid main
deb-src http://ppa.launchpad.net/pitti/postgresql/ubuntu lucid main
deb http://ppa.launchpad.net/pitti/postgresql/ubuntu lucid main
deb-src http://ppa.launchpad.net/pitti/postgresql/ubuntu lucid main
第一行說明得很清楚,官方還沒支援 PostgreSQL 9,目前這個套件庫只是「暫時」性的。加上後,接著要把更新者的數位簽章加進來:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8683D8A2
這裏需要解釋的是 --recv-keys 8683D8A2。這個是 Pitt 這個更新的 PPA Signing Key。什麼是 PPA Signing Key 呢?那是給第三方套件維護者的一個數位簽章,這個簽章在套件更新時可以判別套件是「合法」的由原始維護者放上去,而不用擔心是不是來源被怪客拿去放木馬。如果你沒有把數位簽章放進來,那麼將來一旦有新的版本要更新時,更新管理員會更新失敗。接著要更新「軟體來源」清單,方法是:
$ sudo apt-get update
好了,再來就可以開開心心地在 Ubuntu 上安裝 PostgreSQL 9,以及 pgAdmin III 了!
$ sudo apt-get install postgresql-9.0
$ sudo apt-get install pgadmin3
$ sudo apt-get install pgadmin3
除此之外,如果你打算把 server instrumentation 也裝起來也行,按照以下指令,一下子就可以裝好了:
$ sudo apt-get install postgresql-contrib-9.0
$ sudo -u postgres psql -U postgres -d postgres < /usr/share/postgresql/9.0/contrib/adminpack.sql
$ sudo -u postgres psql -U postgres -d postgres < /usr/share/postgresql/9.0/contrib/adminpack.sql
後續更新:最近我迷上一套新的 Linux 發行套件:Linux Mint,Linux Mint 是由 Ubuntu 延伸出來的新套件,所以宣稱可以接受所有 Ubuntu 的套件。因此,我就試著在 Linux Mint 上按照 Ubuntu 的安裝方法試著裝裝看。結果是令人十分滿意,一字不改的就可以在 Linux Mint 上安裝 PostgreSQL。沒圖沒真相嗎?好,我貼一下 pgAdmin III 看看,雖然看不出所安裝的套件,但是有接觸過 LInux Mint 的朋友們,應該對它的桌面一片綠色印象深刻吧。

沒有留言:
張貼留言