2009年7月31日 星期五

遠端連線Postgresql

有時架站要跑得服務與資料庫是在不同機器上,這時跑服務的機器就必須透過TCP/IP來存取資料庫,而SQL通常預設只允許在本地端存取,Postgresql也不例外,因此必須透過一點小設定將遠端存取的功能打開。

1.修改pg_hba.conf

sudo vim /etc/postgresql/8.3/main/pg_hba.conf

新增一行存取規則
host all all 0.0.0.0/0 password

參數1:host表遠端存取,local表本機端存取
參數2:設定可存取的Database
參數3:設定可存取的使用者
參數4:設定可存取之網域,此設定全部網域皆可存取
參數5:trust表不需認證,password表示需要密碼

2.修改postgresql.conf
取消註解並設定為 listen_addresses ='*'
取消註解並設定為 port=5432

3.重新啟動資料庫
sudo /etc/init.d/postgresql-8.3 restart

2009年7月29日 星期三

resize inode not valid

今天莫名其妙的在開機過程中遇上filesystem error
整個系統當在那邊,只秀出小小一行resize inode not valid
只好輸入Ctrl+D後登入root,進行硬碟修復

1.硬碟修復

sudo fsck

一直按yes直到結束,再重開機就修復完成。

使用CVS@Eclipse

CVS是一個專案開發的版本控制器,它有什麼用呢?!通常一個專案由多人共同開發,成員間所修改的程式版本必須分類,避免衝突發生,也因此必須藉由CVS來統一管理版本。


為什麼獨自開發程式的我,會大費周張的去建立CVS呢!?!?

事出必有因!!就在昨天我在迷迷糊糊的狀態下,不小心把舊版的程式碼覆蓋過去了 (頓時心中的os:#$%@#%!$@# ),為了避免同樣的窘況,還是該好好學一下這套工具


1. 安装 cvs

$ sudo apt-get install cvs

2. 安装 cvsd
  
$ sudo apt-get install cvsd

3. 建立專案集工作區
$ sudo mkdir /var/lib/cvsd/myrepos

4. 初始化工作區
$ sudo cvs -d /var/lib/cvsd/myrepos init

5. 設定cvsd的專案集使用者認証方式。
$ sudo gedit /var/lib/cvsd/myrepos/CVSROOT/config

  加入以下設定
SystemAuth=no
PamAuth=no
LockDir=/tmp/myrepos
*注意這裡的/tmp/myrepos是只相對於RootJail的路徑。

6. 新增LockDir
$ sudo mkdir /var/lib/cvsd/tmp/myrepos

7. 新增CVS帳號
$ sudo cvsd-passwd /var/lib/cvsd/myrepos cvsuser

8. 編輯cvsd設定檔
$sudo gedit /etc/cvsd/cvsd.conf
RootJail /var/lib/cvsd
Repos /myrepos
Listen 192.168.2.2 2401

  注意Listen預設值是 Listen * 2401,但若用預設值似乎無法bind位址,所以位址
必須指定明確的ip址。

9. 設定目錄權限
$ sudo chown cvsd:cvsd /var/lib/cvsd -R

10.重新啟動cvsd
$sudo /etc/init.d/cvsd restart

11.將專案放置/var/lib/cvsd/myrepos

這樣就可以用你的開發工具連上cvs作備份或版本管理了 :)

12.測試CVS連線
$cvs -d :pserver:cvsuser@localhost:/myrepos login
$cvs -d :pserver:cvsuser@localhost:/myrepos checkout


13.新增CVS專案@Eclipse
"File->New->Project"選擇"Projects form CVS",點選Next

13.選擇CVS儲藏庫
選擇"Create a new repository location",點選Next

14.設定CVS伺服器
Host:192.168.2.2
Repository path:/myrepos
user:cvsuser
pasword:密碼
connection type:pserver

15.選擇遠端專案
選擇"use an existing module",選則要開發的專案。

16.設定本地端專案名稱
選擇"checkout as project in the workspace"
project name:本地端專案名稱

點選下一步直到完成。

17.專案提交/更新
提交專案:"專案按右鍵->Team->commit"
更新專案:"專案按右鍵->Team->update"

ubuntu 9.04安裝FlashPlugin

ubuntu 9.04版似乎已經將FlashPlugin加入軟體頻道,以後要看youtube再也不是難事

1.安裝flashplugin

sudo apt-get install flashplugin-installer


2.安裝flashblock
sudo apt-get install flashblock

因為Firefox上若開過多的flash會莫名其妙使得Loading飆升,所以只好暫時將flash擋下來,直到使用者按下play才將flash載入。

消失的chkconfig

一般Liunx distros都有chkconfig,這個指令可拿來查看/設定服務再開機時是否自動啟動,很不幸的ubuntu下似乎沒這個指令,沒關係還有另一套軟體sysv-rc-conf跟chkconfig有一樣功用。

1.安裝sysv-rc-config

sudo apt-get install sysv-rc-config

2.查看/設定全部服務狀態
sudo sysv-rc-config


3.設定服務狀態
sysv-rc-conf --list
sysv-rc-conf --list|grep ssh
sysv-rc-conf --level 5 ssh on

2009年7月27日 星期一

Firefox加速密技

  用了Ubuntu那麼久總覺得Firefox的效率不甚理想,相較於Windows版的可說是天差地別,直到最近無意間翻到一篇改善效率的文章,主要方法就是將存取頻繁Cache移到RamDisk上。

方法一
1建立Ramdisk
  例如要放在/tmp/cache,大小128MB。可編輯/etc/fstab,加上

tmpfs /tmp/cache tmpfs size=128M 0 0

掛載快取磁區
sudo mkdir /tmp/cache
sudo mount -a
2.設定FireFox的cache資料夾
  在Firefox網址列中輸入
about:config
右鍵>新增>字串,名稱輸入browser.cache.disk.parent_directory,內容輸入快取的放置位置/tmp/cache

方法二
  在Ubuntu中有內建快取磁區/dev/shm,這個磁區是系統內建的而且可動態的調整大小所以不必考慮容量問題,想要看系統中有無這個磁區,可以輸入mount|grep /dev/shm即可得知。若有內建快取磁區,只要在Firefox中只要將快取位置設為/dev/shm即可。

2009年7月24日 星期五

解決MP3 TAG亂碼

  在Linux下通常使用的編碼通常是UTF-8,所以若mp3 tag編碼是big5就會發生亂碼,在這裡有一個好用的軟體Easy TAG能夠處理這種惱人的狀況。


1.安裝Easy TAG

sudo apt-get install easytag
2.掃描mp3
 打開EasyTAG選擇所要得資料夾,EasyTAG會自動掃描所有的MP3檔。

3.設定讀取編碼
 進入"設定>偏好設定>ID3標籤設定>讀取ID3標籤所用的字元集"設定為BIG5。

3.變更編碼
 選擇所要變更的MP3,按下存檔即可完成轉碼。

2009年7月23日 星期四

VirtualBox設定NAT Forwar

VirtualBox內建的管理視窗,在網路設定方面還頗陽春的,只有簡單幾個選項NAT Bridge Host等選項,如果想在虛擬作業系統中開Service,這麼陽春的選項實在令人頭痛,請教google大神,原來VirtualBox有隱藏密技,不過這密技似乎只能靠指令完成。


$VBoxManage setextradata winxp "VBoxInternal/Devices/pcnet/0/LUN#0/Config/BT/Protocol" TCP

$VBoxManage setextradata winxp "VBoxInternal/Devices/pcnet/0/LUN#0/Config/BT/GuestPort" 3661

$VBoxManage setextradata winxp "VBoxInternal/Devices/pcnet/0/LUN#0/Config/BT/HostPort" 3661


在這裡winxp是要開個虛擬os的名稱,而BT則是要開的PORT名稱可自訂。

2009年7月21日 星期二

ubuntu 9.04安裝skype

skype對Linux的User真的是滿友善的,支援滿多Linux版本
當然Ubuntu也不例外,只要到skype官網就能找到相對應版本


1.安裝libqt4-gui

sudo apt-get install libqt4-gui

2.安裝skype
sudo dpkg -i skype-debian_2.0.0.72-1_i386.deb


3.設定skype

 若登入後發現skype無聲,可到"選項>音效裝置>聲音進來/出去/鈴響"選擇"HDA Intel(hw:Intel,0)",注意這個設定依據各個硬體不同而有所不同。

2009年7月20日 星期一

在postgresql建立auto-increment

在資料庫中常用的一個欄位就是auto-increment,這個欄位的資料通常是不可重複的,可以用來作商品或會員名單的流水號,很可惜的是postgresql沒有這個屬性的欄位。但雖然預設沒有這個欄位,但其實可以透過手動的方式建立這一流水號。


1.建立sequence


CREATE SEQUENCE myserial INCREMENT 1 MINVALUE 10000 MAXVALUE 99999 CACHE 1 CYCLE;


2.建立流水號欄位
CREATE TABLE profile
(
id regclass NOT NULL DEFAULT nextval(('myserial'::text)::regclass),
"name" character(8) NOT NULL,
CONSTRAINT pmky PRIMARY KEY (id)
);


2009年7月19日 星期日

install postgresql in ubuntu

這次實驗室專題需要使用資料庫,本來決定使用MySql,不幸的是根據MySql授權如果搭配硬體出售必須付費,所以只好選擇了較不熟悉的Postgresql來使用,在這裡順便安裝postgresql的圖形管理工具pgadmin3。


1.安裝postgresql與管理工具

sudo apt-get install postgresql
sudo apt-get install pgadmin3


2.啟動sql
sudo /etc/init.d/postgresql-8.3 restart


3.設定postgres本機密碼
sudo passwd postgres


4.設定postgres連線密碼
注意!!這裡必須先將使用者身份轉為postgres
su postgres
psql postgres
postgres=# alter user postgres with password '密碼';


5.重新啟動sql
sudo /etc/init.d/postgresql-8.3 restart


6.新增/刪除使用者
新增使用者:

su postgres
createuser 使用者名稱 -P (-P)加上密碼
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n

刪除使用者:
dropuser 使用者名稱


7.新增/刪除資料庫

createdb 資料庫名稱
dropdb 資料庫名稱


步驟到此資料庫設定完成
接下來就可以使用pgadmin3登入資料庫。