建立不用執行sudo可綠色的PostgreSQL

2021-09-23 19:00:40 字數 1466 閱讀 8301

原文鍵接

感謝原文作者給出的精彩方法

postgresql安裝的時候(僅指linux和macosx),往往會安裝系統目錄中,這樣做有幾點不方便。

安裝多個版本的時候會衝突,尤其是想安裝測試版或不同的小版本的時候。

安裝路徑散落在系統的好幾個目錄中,記起來不方便。

因為安裝到了系統目錄,我們有時候需要用sudo執行或者需要用su 切換到postgres使用者許可權下去執行。

尤其是pg的開發人員,可能需要安裝不同的版本,或者要自己統計不同的時間的測試版,如何快速在的不同的測試版之間進行啟停資料庫,有沒有好辦法解決這兩個問題呢?

下面我們演示在mac os x 和linux下解決這些問題的辦法。

在mac os x下(譯者親測 10.11.4)

> cd /tmp

> mkdir pg-build

> cd postgresql原始碼目錄中

> ./configure --prefix=/tmp/pg-build

> make

> make install

在ubuntu下(譯者親測ubuntu16.04)

> cd /tmp

> mkdir pg-build

> cd postgresql原始碼目錄中

> ./configure --prefix=/tmp/pg-build --disable-rpath

> export ld_run_path='$origin/../lib'

> make

> make install

然後,我們對編譯的動態支援庫檔案進行讞整引用重定位

在mac os x下

find /tmp/pg-build/bin -type f | \

xargs -l 1 install_name_tool -change \

/tmp/pg-build/lib/libpq.5.dylib \

'@executable_path/../lib/libpq.5.dylib'

然後就可以了。

> cd $home

> cp -r /tmp/pg-build pg

> mkdir data

> ./pg/bin/initdb data

> ./pg/bin/pg_ctl -d data start

現在,你的pg就執行起來了,並且你可以把這個目錄任意改名,放到你自己的任意目錄,都可以執行了。 我一般測試多個版本的pg,都在自己的目錄下建立pg931,pg943,pg952,pg6b1這樣的目錄,想用哪個用哪個。很方便。

為了自動化的實現這個功能,我寫了乙個小指令碼,可以很方便的編譯、執行不同時期原始碼的資料庫。**很短,自己根據自己的需要改改,放到自己的path目錄下,就會很方便了。

[git-hub]

sudo命令不用密碼的方法

通常我們並不以root身份登入,但是當我們執行某些命令 command 時需要用到root許可權,我們通常都是用 sudo command 來執行command。由於使用ubuntu,所以經常都都用sudo,而使用sudo時,又得輸入密碼,所以我就尋找sudo不輸入密 碼的方法。前陣子google了...

docker取消sudo執行

docker為什麼要用sudo執行?docker的守護執行緒繫結的是unix socket,這個套接字預設屬於root使用者。docker服務程序都是以root賬戶執行的。解決方法 建立docker使用者組,把當前使用者加入到docker使用者組裡面。這樣就可以直接執行docker命令了。sudo ...

php 呼叫 sudo 不執行問題

第一種方式 exec cmd,str,result echo result result if result 0 print r str 沒有輸出結果 第二種方式 output shell exec usr bin sudo usr bin whoami 2 1 echo output output...