PowerDesigner 是Sybase 的一款優(yōu)秀的數(shù)據(jù)庫輔助設(shè)計軟件,目前沒有開發(fā)Linux 版本,同時我在Linux 下也找不到可替代的產(chǎn)品。經(jīng)過嘗試,通過wine 可以在Linux 下將PowerDesinger 版本15 很好的運行起來,加上一些額外的努力,還可以啟用PowerDesigner 對VB Script 以及數(shù)據(jù)庫連接的支持。我把主要步驟列出來,供有興趣的朋友參考。
測試環(huán)境:
- Gentoo Linux 2.6.24-r3
- wine-1.1.0
- PowerDesigner 15 Beta 2
由于缺乏VC80的支持,PowerDesigner 15 Beta 2 的安裝程序默認(rèn)在wine 下面無法正常運行,安裝會失敗。一種解決方法是移植已有的Windows 安裝版本。
移植已有的Windows 安裝版本
在Windows 下安裝好PowerDesigner,然后將以下目錄copy至Linux :
然后在Windows 運行注冊表,將以下keys 分別導(dǎo)出:
- [HKEY_CURRENT_USER"Software"Sybase"PowerDesigner 15]
- [HKEY_LOCAL_MACHINE"SOFTWARE"Sybase"PowerDesigner 15]
- [HKEY_USERS".Default"Software"Sybase"PowerDesigner 15]
在Linux 下運行wine regedit 導(dǎo)入以上keys, 如果出錯,那么可能需要先對文件的編碼進(jìn)行轉(zhuǎn)換:
$ recode UCS2.. *Sybase*.reg
NOTE:如果沒有recode 命令,$ emerge -av1 recode
如果一切順利,就可以用以下命令來運行PowerDesigner了。
env WINEPREFIX="$HOME/.wine" wine "C:"Program Files"Sybase"PowerDesigner 15"pdshell15.exe"
另外一種方法是在Linux wine 下安裝VC80 支持,然后在Linux 下運行安裝程序。
在Linux 下進(jìn)行安裝
在運行安裝程序之前,按照自己的需求先準(zhǔn)備好如下環(huán)境:
- 隔離的wine 環(huán)境
- .Net FrameWork 2.0 Support
- VB Script Support
- VC80 dll support (必需)
- Connection Profile Support(可在安裝完成之后進(jìn)行)
隔離的wine 環(huán)境
NOTE:如果省略這一步,請?zhí)鎿Q下面各節(jié)命令中的路徑.winePD/ 為.wine/
如果不希望影響原有的wine 環(huán)境,或者用于測試,可以為PowerDesigner 新建一個獨立的wine 目錄。
$ wineprefixcreate --prefix $HOME/.winePD $ export WINEPREFIX="$HOME/.winePD"
.Net FrameWork 2.0 Support
PowerDesigner 在Beta 2中引入了.Net FrameWork 2.0 支持,用于更漂亮的模型自動排版功能,如果希望使用需要先安裝.Net 2.0 ,但.Net 2.0需要IE 5.0以上支持,安裝IE 6 可以參考 Wine AppDB - Internet Explorer 6.0,經(jīng)過嘗試是可行的。
IE 6.0安裝好之后到MS 網(wǎng)站下載.Net 2.0 安裝文件 dotnetfx.exe,放至 $HOME/.winePD/drive_c/,運行安裝文件完成安裝。
$ wine "c:"dotnetfx.exe"
VB Script Support
這一步是可選。
首先到MS 網(wǎng)站下載合適版本的VB Script 安裝文件:WindowsXP-Windows2000-Script56-KB917344-x86-chs.exe
安裝過程參考 Wine AppDB - Visual Basic 6.0 Enterprise Edition,所不同之處是安裝的文件不一樣。
NOTE: 下面的/win/目錄是我的 Windows XP安裝分區(qū)。
$ winecfg # add libraries overwrite; set OS to Windows ME; $ cd .winePD/drive_c/windows/system32/$ for i in riched20.dll riched32.dll oleaut32.dll urlmon.dll hhctrl.ocx ; do mv $i $i.bak; done $ for i in riched20.dll riched32.dll oleaut32.dll urlmon.dll hhctrl.ocx ; do cp /win/windows/system32/$i .; done$ cp /win/windows/system32/mfc42.dll .winePD/drive_c/windows/system32$ wine "c:"WindowsXP-Windows2000-Script56-KB917344-x86-chs.exe"$ winecfg # set OS back to Windows XP
VC80 dll support
這一步必需完成以運行PowerDesigner 15 Beta 2 安裝程序。
在網(wǎng)上下載msvbvm60.dll 和MS-VC80.MSI ,還需要去MS 網(wǎng)站下載Vitual C++ 2005 support 安裝文件 vcredist_x86.exe。然后參考以下步驟完成安裝。
$ cp Desktop/msvbvm60.dll .winePD/drive_c/windows/system32$ msiexec /i "c:"MS-VC80.MSI"$ wine "c:"vcredist_x86.exe"$ ls .winePD/drive_c/windows/winsxs/ # 確認(rèn)vcredist_x86.exe 安裝成功
Connection Profile Support
這一步是可選。
PowerDesigner 當(dāng)中支持對數(shù)據(jù)庫的連接,這是通過ODBC 驅(qū)動程序?qū)崿F(xiàn)的,此外,PowerDeisnger也加入了對JDBC 驅(qū)動程序的支持,其稱作Connection Profile。在Linux 下為wine 程序配置ODBC,我沒有經(jīng)驗,可能需要安裝MDAC,而通過JDBC則比較容易實現(xiàn)。對于DB2 類型的數(shù)據(jù)庫,IBM 提供一種TYPE 4的JDBC 驅(qū)動程序,可以不需要在連接的客戶端安裝DB2 Client,僅僅擁有TYPE 4驅(qū)動程序以及JRE 支持即可。下面的配置就是通過在wine 中配置JRE 以及DB2 JDBC TYPE 4 驅(qū)動程序來實現(xiàn)在PowerDesigner 中對DB2 數(shù)據(jù)庫的訪問。
NOTE:Linux 世界中的libiodbc 和unixODBC 并不適用這個場景,其提供的ODBC 數(shù)據(jù)源并不是為wine 程序使用的。
首先需要下載Sun 的JRE安裝程序(1.4.2 for windows) 和IBM 的DB2 JDBC TYPE 4 驅(qū)動程序(跨平臺)。
NOTE:IBM 的JRE 安裝程序會檢測ibmpc 系統(tǒng)兼容性,我在wine中無法通過檢測(甚至在vmware 這樣的虛擬機中也不行),具體原因不知道,導(dǎo)致安裝失敗,因此選擇Sun的JRE。
$ winecfg # 在Libraries 中將 urlmon 臨時改為 Builtin$ wine "c:"j2re-1_4_2_18-windows-i586-p.exe"$ winecfg # 在Libraries 中將 urlmon 改回 Native$ mkdir ~/.winePD/drive_c/db2java$ cp /opt/IBM/db2/V8.1/java/db2jcc_license_cu.jar ~/.winePD/drive_c/db2java/$ cp /opt/IBM/db2/V8.1/java/db2jcc.jar ~/.winePD/drive_c/db2java/
運行wine regedit,找到key:
[HKEY_LOCAL_MACHINE"System"CurrentControlSet"Control"Session Manager"Environmen]
添加或者修改以下2個鍵值:
CLASSPATH=C:"db2java"db2jcc.jar;C:"db2java"db2jcc_license_cu.jar;. PATH=C:"windows"system32;C:"windows;C:"Program Files"Java"j2re1.4.2_18"bin
$ regedit #add values to CLASSPATH , PATH
開始安裝PowerDesigner 15 Beta 2
下面開始真正安裝PowerDesigner。
$ winecfg # 在Libraries 中將 oleaut32 臨時改為 Builtin$ wine "c:"PowerDesigner15.exe"$ winecfg # 在Libraries 中將 oldaut32 改回 Native$ wine "C:"Program Files"Sybase"PowerDesigner 15"pdshell15.exe"
整個安裝過程應(yīng)該很順暢,如果遇到問題,可以重頭檢查一下必需的步驟。
測試VB Script
測試Connection Profile
點擊Test Connection,如果出錯,查看output (alt+1)中的messages,有助于解決問題。
TroubleShooting
Could not find dependent assembly L"Microsoft.VC80.CRT" (On running PowerDesigner.exe)
Runtime error: R6034 - An application has made an attempt to load the C runtime library incorrectly (On running PowerDesigner.exe)
Failed to load DLL: pdflm15 (On running PowerDesigner.exe)
err:module:import_dll Library MSVBVM60.DLL (which is needed by ...
解決方法:在Windows 安裝中復(fù)制msvbvm60.dll 或者網(wǎng)上下載到wine 的system32 目錄。
err:module:import_dll Library MFC42.DLL (which is needed by L"C:""windows""system32""vbscript.dll") not found (On Installing VBScript.exe)
解決方法:在Windows 安裝中復(fù)制mfc42.dll 或者網(wǎng)上下載到wine 的system32 目錄。
Required property "serverName" is unknown host
解決方法:檢查網(wǎng)絡(luò)連接,服務(wù)器設(shè)置,服務(wù)器地址,端口,數(shù)據(jù)庫名稱等。
Non SQL Error : Could not load class com.ibm.db2.jcc.DB2Driver。
解決方法:檢查wine 注冊表中CLASSPATH 是否包含正確的db2jcc.jar 全路徑,注冊表修改之后,應(yīng)該重新運行PowerDesigner 應(yīng)用程序。
Could not Initialize JavaVM!
解決方法:檢查wine 注冊表中PATH 是否包含正確的到JRE bin 路徑,注冊表修改之后,應(yīng)該重新運行PowerDesigner 應(yīng)用程序。