發表文章

目前顯示的是 4月, 2013的文章

.net 連線至遠端firebird資料庫

圖片
看了文件, 說firebird的.Net data provider是不需要依靠firebird client的軟體, 我由 codeproject 下載的程式(由.Net存取firebird資料庫), 也是真的可以不安裝firebird任何軟體, 就可以正常執行。只是這個程式是使用Embedded模式的firebird資料庫。我想要試試連到遠端super server模式的firebird資料庫看看。 直接去修改它的連線字串, 改成指到遠端資料庫看看先。結果, 就是不行。試過幾次後, 我注意到這個程式的幾個問題: 1. 它使用.Net 2.0 2. 它使用的firebird data provider也是for 2.0 所以我決定另開一個專案, 並下載firebird data provider 3.0.2.0(最新)的版本, 並直接用firebird官網的範例程式來試看看。一開始也是連不上, 所以我把專案的target framework由4.0改成 2.0。 一跑, 程式報出firebird data provider所需要的.net framework版本太低, 我再由2.0改成3.0, 結果還是一樣, 改回4.0後, 才不再出現這個錯誤訊息。因此, 我可以推論, 這個firebird data provider是for .net framework 4.0使用的。這時, 再去看看firebird官網的下載網頁, 可以看到同樣一個3.0.2的data provider卻有如此多個不同下載連結, 想來是有不同用途(例如: for .net 2.0一包, for .net 4.0一包, 兩個都有的一包)才會如此! 那不是一開始使用.Net 4.0就是正確的嗎? 為什麼還是連不上呢? 所以才會先去用Flamerobin連連看, 結果是可以正常連的。那就只是連線字串的問題了, 此時想到把範例資料庫檔案移到比較好記的地方(路徑比較簡單g:\data\employee.fdb), 因為原來連線的範例資料庫放在很深的路徑(C:\Program Files\Firebird\Firebird_2_5\examples\empbuild\employee.fdb), 光是確認檔名路徑沒打錯, 就很累了。沒想到這樣一改, 就連上了。 那麼

使用Flamerobin來管理遠端firebird資料庫

圖片
之前在fedora 18安裝了firebird資料庫, 後來想在Windows電腦上連線過去使用。因為使用.NET來開發程式, 一直連不到遠端的firebird資料庫, 所以想先使用Flamerobin來連看看, 以釐清問題。下載了0.9.2-1 windows版本, 很順利安裝後, 一連到資料庫, 就報出找不到FBCLIENT.DLL, GDS32.DLL之類的訊息。想說先重開機看看, 結果也沒用。就跑去安裝MacOSX版的試看看, 結果看到ReadMe上寫說需要先安裝Firebird Framework。所以就回去Windows電腦, 下載firebird軟體來安裝。裝完之後, 再用Flamerobin來連遠端fedora 18上的firebird資料庫和本機的資料庫就都正常了。 簡單結論: 1. Flamerobin需要Firebird Framework才能正常使用 2. 所謂Firebird Framework指的是firebird的軟體, 如果不想安裝server部份, 只要client部份, 則在安裝時, 選擇不包含server部份就可以了。雖然我是全部(server + client)都安裝, Flamerobin才跑起來。但看文件(Quit start guide), 應該是只要client部份的就可以。而這個部份, 看起來比較像C/C++的程式庫。

fedora 18 obexftpd 如何啟動?

圖片
在Ubuntu最近的版本, 在桌面右上角藍牙icon按下選設定值後, 可以找到打開允許傳檔的設定選項。打開後就可以在別台電腦用藍牙來傳送檔案(aks. obexftp)。但是fedora 18, 我沒看到有這個選項可以選!找了一下,好像就是要安裝obexftp這個套件: yum install obexftp 裝好之後,不知道要如何打開它,再找一下,看到文件 obexftpd 都是說直接下指令: obexftpd -c /tmp/inbox -b obexftpd -c /tmp/inbox -b &>/dev/null &  之後就可以由別台電腦以藍牙連入來看目錄內容,以及傳送接收檔案了。 我試著去看systemd的目錄,並沒有看到相關的檔案: ls -l /usr/lib/systemd/system/*ftp* 也許fedora 18沒有把obexftpd的啟動關閉功能做到systemd去! 後來在 Fedora_Features/Bluetooth 找到以下說明: Prerequisites:  gnome-user-share   Select  Share Public files over Bluetooth  (ObexFTP) or  Receive files in Downloads folder over Bluetooth  (ObexPush) in the  Personal  File Sharing  preferences. 所以就先安裝套件:yum install gnome-user-share,然後再去找應用程式: 果然看到一個「個人檔案分享」的程式,打開後:  這不就是ubuntu的藍牙設定工具嗎?玩了幾天後,發現這個UI控制的是另一個程式(obex-data-server),使用ps aux | grep obex指令可以觀察到,在UI把藍牙分享檔案打勾後,就會看到這支程式。但是在勾掉藍牙分享後,它可能還是會存在,不會立刻消失! 使用sdptool browse local指令來觀察就會看到,當我們打勾藍牙分享時,OPUSH和FTP兩個服務就會註冊到sdp去。當把勾勾拿掉時,OPUSH和FTP兩個服務就會取消註冊。 那那一個是那一個呢?

fedora 18 firebird db 安裝

圖片
我使用[軟體]來安裝firebird,如下圖所示: 不過, sqlrelay  提到可以使用以下指令: yum install firebird-superserver 不管用那個方法來安裝,裝好之後第一個問題是:firebird如何啟動?在fedora 18是使用以下指令就可以: systemctl start firebird-superserver.service 因為firebird有兩個版本:super server, classic server. 所以安裝不同的版本,啟動的指令也不同。這裡使用的是super server。如果要啟動classic server, 指令要改一下。可以用以下指令找出要如何下指令: ls -l  /usr/lib/systemd/system/firebird* 第二個問題:firebird的程式和資料安裝到那些目錄了?在fedora 18用我的方裝方式,我使用find指令: find / -name firebird 發現 1. 資料放在 /var/lib/firebird   其下的 data 目錄 放的是使用者的資料庫檔案   其下的 system 目錄 放的是系統的資料庫檔案 2. 執行檔(程式)放在 /usr/lib64/firebird/bin (因為安裝64位元版的關係!) # ls -l /usr/lib64/firebird/bin/ 總計 3340 -rwxr-xr-x. 1 root root   2952  3月 11 02:59 fb_config -rwxr-xr-x. 1 root root 141400  3月 11 03:00 fbsvcmgr -rwxr-xr-x. 1 root root 138968  3月 11 03:00 fbtracemgr -rwxr-xr-x. 1 root root 370176  3月 11 03:00 gbak -rwxr-xr-x. 1 root root 442264  3月 11 03:00 gdef -rwxr-xr-x. 1 root root 165848  3月 11 03:00 gfix -rwxr-xr-x. 1 root root 477216  3月 11 03:00 gp

fedora 18 預設防火牆

當我第一次打開fedora 18的「防火牆設定程式」時,它就是Hold住在那裡,不知道在等什麼?後來找了一些資料,發現有人說fedora 18的防火牆已改用firewalld,而不再是原來的iptables。而「防火牆設定程式」是使用新的firewalld,所以我把iptables關掉,並且把firewalld打開,就是下這兩個指令: $ sudo systemctl stop iptables $ sudo systemctl start firewalld.service 然後,再打開「防火牆設定程式」,就可以正常操作了。 至於其功能如何操作,有一篇文章可以參考: SiB 在部落格說過

(MacOSX之)VirtualBox的Host only網卡如何設成可以連外網

因為在MacOSX(Host OS)上使用VirtualBox安裝了Windows Server(Guest OS)來做測試,才注意到VirtualBox的虛擬網路有些和我原本想的不一樣,所以筆記整理一下: 依照VirtualBox的手冊說明其可使用的網路卡及其功能如下: 1. NAT:VM可以連外網,但外網不能連VM 2. 橋接:VM可視為和Host連在同一交換器上 3. 內部:只有VM之間可互通 4. 僅限主機:只有Host和VM之間可互通 5. 專用:(尚未研究) 比較奇特的特性是: 1. NAT的模式下,Host和VM之間不能互通 2. 橋接模式下,橋接的網卡若為Wifi無線網卡,其行為會不太正常。若為有線網卡,則行為合符預期的可以和外連相連,也可以和Host互通。 所以有些人的做法是為VM設兩個虛擬網卡: 1. NAT,用來連外網,可以更新軟體。 2. 僅限主機,用來和Host相連。 這樣做,至少可以在VM裡正常的更新軟體,而且也可以由Host連到VM做一些測試。(只是不能由外網連到VM,所以不能用來架設伺服器在VM) 也看到有人只用一張「僅限主機」虛擬網卡,就完成剛才所提的功用,作法是在Host上利用分享網路的方式,讓「僅限主機」虛擬網卡可以分享Host上的無線網卡來連外網。不過他只提到Host為Windows的情形。 以下文章則提到Host為MacOSX的情況: building-a-better-os-x-firewall-or-how-i-solved-the-nat-problem-for-virtualbox/ 筆記要做的事情: A 打開封包轉送功能,並啟用轉址程式 $sudo sysctl -w net.inet.ip.forwarding=1 $sudo natd -use_sockets -same_ports -dynamic -interface en1 B 設定防火牆規則,並啟用防火牆 $ /sbin/ipfw -f flush $ /sbin/ipfw add divert natd all from any to any via en1 $/sbin/ipfw add pass all from any to any $sysctl -w net.inet.