不可不说
随心所欲,无往不利!
posts - 88,  comments - 92,  trackbacks - 0

PowerDesigner 是Sybase 的一款优秀的数据库辅助设计软件,目前没有开发Linux 版本,同时我在Linux 下也找不到可替代的产品。经过尝试,通过wine 可以在Linux 下将PowerDesinger 版本15 很好的运行起来,加上一些额外的努力,还可以启用PowerDesigner 对VB Script 以及数据库连接的支持。我把主要步骤列出来,供有兴趣的朋友参考。

测试环境:

  • Gentoo Linux 2.6.24-r3
  • wine-1.1.0
  • PowerDesigner 15 Beta 2

由于缺乏VC80的支持,PowerDesigner 15 Beta 2 的安装程序默认在wine 下面无法正常运行,安装会失败。一种解决方法是移植已有的Windows 安装版本。

移植已有的Windows 安装版本

在Windows 下安装好PowerDesigner,然后将以下目录copy至Linux :

然后在Windows 运行注册表,将以下keys 分别导出:

在Linux 下运行wine regedit 导入以上keys, 如果出错,那么可能需要先对文件的编码进行转换:

$ recode UCS2..  *Sybase*.reg

NOTE:如果没有recode 命令,$ emerge -av1 recode

导入成功之后,在Linux 下运行注册表工具,修改key :[HKEY_LOCAL_MACHINE"SOFTWARE"Sybase"PowerDesigner 15"License"LicenseDirectory],将目录修改为License 在Linux 下存放的目录,例如 "C:""Documents and Settings""All Users""Application Data""PowerDesigner 15"

如果一切顺利,就可以用以下命令来运行PowerDesigner了。

env WINEPREFIX="$HOME/.wine" wine "C:"Program Files"Sybase"PowerDesigner 15"pdshell15.exe"

另外一种方法是在Linux wine 下安装VC80 支持,然后在Linux 下运行安装程序。

在Linux 下进行安装

NOTE: 命令中跟在#后面的是注释文本 

在运行安装程序之前,按照自己的需求先准备好如下环境:

隔离的wine 环境

此步为可选。

NOTE:如果省略这一步,请替换下面各节命令中的路径.winePD/ 为.wine/

如果不希望影响原有的wine 环境,或者用于测试,可以为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,经过尝试是可行的。

IE 6.0安装好之后到MS 网站下载.Net 2.0 安装文件 dotnetfx.exe,放至 $HOME/.winePD/drive_c/,运行安装文件完成安装。

$ wine "c:"dotnetfx.exe"
VB Script Support

这一步是可选。

首先到MS 网站下载合适版本的VB Script 安装文件:WindowsXP-Windows2000-Script56-KB917344-x86-chs.exe

安装过程参考 Wine AppDB - Visual Basic 6.0 Enterprise Edition,所不同之处是安装的文件不一样。

NOTE: 下面的/win/目录是我的 Windows XP安装分区。

$ 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 安装程序。

在网上下载msvbvm60.dll 和MS-VC80.MSI ,还需要去MS 网站下载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/ # 确认vcredist_x86.exe 安装成功
Connection Profile Support

这一步是可选。

PowerDesigner 当中支持对数据库的连接,这是通过ODBC 驱动程序实现的,此外,PowerDeisnger也加入了对JDBC 驱动程序的支持,其称作Connection Profile。在Linux 下为wine 程序配置ODBC,我没有经验,可能需要安装MDAC,而通过JDBC则比较容易实现。对于DB2 类型的数据库,IBM 提供一种TYPE 4的JDBC 驱动程序,可以不需要在连接的客户端安装DB2 Client,仅仅拥有TYPE 4驱动程序以及JRE 支持即可。下面的配置就是通过在wine 中配置JRE 以及DB2 JDBC TYPE 4 驱动程序来实现在PowerDesigner 中对DB2 数据库的访问。

NOTE:Linux 世界中的libiodbc 和unixODBC 并不适用这个场景,其提供的ODBC 数据源并不是为wine 程序使用的。

首先需要下载Sun 的JRE安装程序(1.4.2 for windows) 和IBM 的DB2 JDBC TYPE 4 驱动程序(跨平台)。

NOTE:IBM 的JRE 安装程序会检测ibmpc 系统兼容性,我在wine中无法通过检测(甚至在vmware 这样的虚拟机中也不行),具体原因不知道,导致安装失败,因此选择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"

整个安装过程应该很顺畅,如果遇到问题,可以重头检查一下必需的步骤。

测试VB Script

执行Tools - Execute Commands - Edit/Run Script,在代码编辑框中写入一句简单的VB Script代码,比如: "dim s",然后点击Run,如果没有任何错误弹出,说明VB Script 支持正常。

测试Connection Profile

在File 菜单中点击 Revers Engineer - Databases,选择IBM DB2 UDB 8.x Common Server - Using a datasource,浏览datasource,选择Connection Profile,Configure 一个新的数据库连接。

点击Test Connection,如果出错,查看output (alt+1)中的messages,有助于解决问题。

TroubleShooting

Could not find dependent assembly L"Microsoft.VC80.CRT" (On running PowerDesigner.exe)

解决方法:安装VC80 dll support。

Runtime error: R6034 - An application has made an attempt to load the C runtime library incorrectly (On running PowerDesigner.exe)

解决方法:安装VC80 dll support。

Failed to load DLL: pdflm15 (On running PowerDesigner.exe)

解决方法:安装VC80 dll support。

err:module:import_dll Library MSVBVM60.DLL (which is needed by ...

解决方法:在Windows 安装中复制msvbvm60.dll 或者网上下载到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 安装中复制mfc42.dll 或者网上下载到wine 的system32 目录。

Required property "serverName" is unknown host

解决方法:检查网络连接,服务器设置,服务器地址,端口,数据库名称等。

Non SQL Error : Could not load class com.ibm.db2.jcc.DB2Driver。

解决方法:检查wine 注册表中CLASSPATH 是否包含正确的db2jcc.jar 全路径,注册表修改之后,应该重新运行PowerDesigner 应用程序。

Could not Initialize JavaVM!

解决方法:检查wine 注册表中PATH 是否包含正确的到JRE bin 路径,注册表修改之后,应该重新运行PowerDesigner 应用程序。

posted on 2009-08-30 22:31 蓝剑 阅读(4362) 评论(0)  编辑  收藏 所属分类: Linux

只有注册用户登录后才能发表评论。


网站导航:
 


<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(6)

随笔分类(62)

随笔档案(90)

文章档案(9)

相册

友情链接

搜索

  •  

积分与排名

  • 积分 - 305141
  • 排名 - 162

最新评论

阅读排行榜

评论排行榜