级别: 中级 Paul-John To, IDS 安装开发人员,
IBM
Ranjani M. Bettadahalli, IDS Client-SDK 开发人员,
IBM
2008 年 11 月 17 日 在本文中,理解如何在 Mac OS X 上安装 IBM Informix Dynamic Server 11.50.FC2。理解安装的不同阶段,包括配置系统内核参数,访问数据库服务器,以及定制与嵌入式应用程序一起使用的安装。
简介
在 UNIX® 上安装 IBM Informix Dynamic Server(IDS)一直都很简单,新用户在几分钟内就可以拥有一个完全配置好的数据库。现在,Mac OS X 操作系统采用了基于 BSD 的内核,所以 UNIX 和 Linux® 用户可以轻松转换到这个操作系统,而不会失去一些熟悉的工具,比如终端仿真和 shell 脚本编写。由于 Mac OS X 用户喜欢富图形用户界面,同时也为了克服使用 root 登录的安装限制,我们现在有了 Mac OS X 的 IDS 安装程序。这个安装程序将常规的 UNIX 组合安装程序打包到一个 PackageMaker 包中。PackageMaker 是与 Apple Developer Toolkit 捆绑的一个本地软件部署实用程序。
Mac OS X 上的 IDS 安装程序是一个组合安装程序,它由以下三个产品组成:
- IBM Informix Dynamic Server
- IBM Informix Client-SDK
- IBM Informix Connect
为了切换几个关键二进制文件的所有权和设置它的用户切换,必须始终以 root 身份运行安装。虽然大多数 UNIX 用户都习惯以 root 运行程序,但是 Mac OS X 用户却不喜欢这样做。这有以下几点原因:
- root 权限允许访问系统上的任何东西,如果使用不当,可能造成系统无法使用。
- 在新的 OS X 系统上,默认情况下 root 登录是被禁用的。
Mac 用户喜欢富 GUI 体验,以 root 运行 IDS 安装程序需要打开一个 Terminal 窗口并运行 sudo。Mac OS X 上的 IDS 安装通过 Apple PackageMaker 框架为组合安装程序提供了新的界面,从而克服了这些限制。
Mac OS X 上新 IDS Installer 的结构
新的 IDS Mac OS X 安装程序的结构可以描述为一个三层拓扑,如 图 1 所示:
图 1. 新安装程序的三层拓扑
我们更仔细地看看这三个层。
交付工具:DMG
安装程序的最顶层是一个 .dmg(磁盘镜像)文件。很多可下载的 OS X 应用程序都采用 .dmg 格式。通常可以将这些文件保存在一个常见的位置(桌面),然后双击运行。当双击一个 .dmg 文件时,操作系统会把它当作文件系统来挂载它,并打开一个新的 Finder 窗口(类似于 OS X Desktop 上的 Windows Explorer)。
助手:PackageMaker
在 dmg 层之下是 PackageMaker,这是由 Apple 开发的一个框架,它有一些精巧的特性,例如:
- 以图形化的方式提示输入管理用户名和密码。
- 将软件拆分成多个可单独安装的组件。
- 作为元安装程序
- 安装到用户指定的卷(逻辑驱动器)
PackageMaker 文档的扩展名为 .pmdoc。与常规的 UNIX 文档不同,PackageMaker 文档实际上是目录。这种文档包含一个文件列表(其中有为包文件和目录设置的所有权和许可)、一个描述组件分解的说明,以及一个索引(它列出了不同的特性和非标准修改)。PackageMaker 允许在安装前后执行用 shell 或 Perl 脚本编写的操作。IDS 安装程序使用 PackageMaker 确定用户是否有系统的管理权限,以便将可安装的媒介提取到 /Applications/IBM/informix 中,并启动 ISMP。
工作者:InstallShield MultiPlatform(ISMP)
最底层(核心层)由启用了 Mac OS X 支持的 ISMP UNIX 安装程序组成。它在系统内建的 Java 运行时环境(Java Runtime Environment,JRE)中运行。ISMP 虽然不是 PackageMaker 那样的本地 OS X 实现,但是它利用 Swing 技术为用户提供了一个 Mac 友好的用户界面。ISMP 安装程序驱动所有主要的安装逻辑,包括复制应用程序和支持文件,配置内核参数,创建 informix 用户和组,配置角色分离,以及初次设置服务器实例。
安装过程逐步说明
要开箱即用地使用 IDS,最简单的方法是使用默认选项运行安装程序。虽然可以仅仅执行安装,在安装前后不进行任何配置,但是我们建议目标系统至少有 1GB 的空闲 RAM 和 1GB 的空闲磁盘空间。如果不想安装所有的可用特性,需要的空间可以少一些。请阅读 README 文件、机器说明和发行说明,获取最新的信息。
运行安装程序
- 将 .dmg 文件下载到桌面。
- 双击 .dmg 文件,挂载 iif.11.50 卷。
- 接着,双击 iif.11.50 卷图标。
图 2. 桌面上的 .dmg 文件
- 此时出现一个 Finder 窗口,其中有一个包图标。双击这个包图标,开始安装过程。
图 3. Finder 中的 .pkg
- 在 PackageMaker 安装程序的第一个屏幕上,选择 Continue。
图 4. PackageMaker 安装程序
- 选择 Install。
图 5. 安装
- 提供管理凭证。
图 6. 用户认证
- 此时提取 IDS Bundle。提取完之后,PackageMaker 启动
ISMP bundle 安装程序。
图 7. PackageMaker 启动 ISMP
- ISMP 安装程序允许安装服务器和客户机 Software Development Kit(Client-SDK)或连接驱动程序(IConnect)。
图 8. 通过 ISMP Installer 调用 IDS 安装程序 ids_install
- 安装程序确认内核共享内存设置是否足以运行 IDS。如果检测到设置太低,安装程序将调整设置。默认情况下,安装程序会自动进行更改。但是,如果要更精确地控制内存设置,可以手动编辑 /etc/sysctl.conf。(要了解更多信息,请参阅 “配置内核” 小节)。
图 9. 自动配置内核参数
- 当 ISMP 安装程序完成时,PackageMaker 安装程序将通知安装成功。
图 10. 安装成功
配置内核
分配给一个运行的进程的默认文件句柄数量和共享内存不足以在 Mac OS X 上运行 IBM Informix Dynamic Server。IDS 安装程序检测是否需要分配更多的内存,并建议使用自动更改。这些更改要在 /etc/sysctl.conf 中进行。如果该文件存在,安装程序在更改前会创建一个备份。如果管理员选择不要安装程序进行更改,那么他必须手动编辑 /etc/sysctl.conf,设置以下 System V 内核参数,然后才可以使用 IDS:
表 1. System V 内核参数设置
| 内核设置名称 | IDS 要求的最小值 |
|---|
| kern.sysv.shmmax | 4398046511104 |
|---|
| kern.sysv.shmmin | 1 |
|---|
| kern.sysv.shmmni | 512 |
|---|
| kern.sysv.shmseg | 512 |
|---|
| kern.sysv.shmall | 1073741824 |
|---|
| kern.sysv.semume | 10 |
|---|
| kern.sysv.semmsl | 87381 |
|---|
| kern.sysv.semmnu | 87381 |
|---|
| kern.sysv.semmns | 87381 |
|---|
| kern.sysv.semmni | 87381 |
|---|
| kern.maxfiles | 2147483647 |
|---|
| kern.maxfilesperproc | 40000 |
|---|
| kern.maxvnodes | 150000 |
|---|
| net.inet.tcp.sendspace | 524288 |
|---|
| net.inet.tcp.recvspace | 524288 |
|---|
要查看一个参数(比如 kern.sysv.shmmax)的值,可以在一个终端运行以下命令:
如果这个值小于要求的值,则通过在终端发出以下命令来更改它:
sysctl -w kern.sysv.shmmax=4398046511104 |
此外,为了使这些更改持久化,可以创建或编辑 /etc/sysctl.conf,以 setting=value 的形式行逐指定所有这些设置。
访问 demo 服务器
在安装期间,安装程序提供了一个选项,即通过创建一个基本的 IDS 服务器实例来验证安装是否成功。Mac OS X 的安装程序还创建了一个启动器,通过它可以访问一个其服务器环境已设置并且可用的终端窗口。在这个终端中可以启动和停止服务器、使用 dbaccess,以及使用 Client SDK。可以在 /Applications/IBM/informix/demo_on.terminal 下找到这个启动器。如果在安装期间提供的服务器名称不是 demo_on,那么启动器的名称就是 server_name.terminal。下面的图 11 显示了在终端内运行的 dbaccess,这个终端是在双击 ids_server.terminal 图标后运行的:
图 11. Demo 服务器启动器
将 IDS 嵌入到 Mac OS X 产品中
独立软件供应商(Independent Software Vendors,ISV)有时会将 IDS 和 Client SDK 嵌入到他们的应用程序中,这种做法并不少见。在本节中,看看如何使用 Mac 安装程序生成一个可嵌入的安装。
提取可重新发行的媒介
- 启动 PackageMaker 安装程序。
- 当 ISMP 安装开始后,选择 Cancel。
- 然后就可以在 /Applications/IBM/informix 下找到可重新发行的媒介。
为重新发行定制媒介
组合安装程序允许覆盖默认的安装位置,以及禁用不需要的组件。如果要这样做,可以:
- 复制一个 bundle.ini,并将它保存为 myresponses.ini。
- 编辑 myresponses.ini,根据需要覆盖默认值。下面的表 2 提供了关于一些可定制的参数的信息:
表 2. 可定制的参数和值
| 参数 | 值 | 详细信息 |
|---|
| -P installLocation | Valid Path | 如何将产品安装到有效路径 |
|---|
| -P csdk.active | True 或 False | 是否安装 CSDK |
|---|
| -SW SERVER/IIF.jar
setupTypes.selectedSetupTypeId | Typical 或 Custom | IDS Server 的安装类型 |
|---|
| -SP SERVER/IIF.jar IDS-GLS.active | True 或 False | 是否安装 Global Language Support for IDS |
|---|
非交互式地嵌入和运行安装
以 root 身份使用以下命令运行组合安装:
ids_install -silent -options myresponses.ini -log install.log |
结束语
本文演示了一个安装程序,这个安装程序不要求用户以 root 登录,不需要使用 Terminal 窗口,并且保留了 UNIX 和 Linux 上 IDS 图形化安装的所有功能。对客户和开发人员而言,这非常有利于创建新的基于 Mac OS X 的 Package Maker 框架的安装程序。这也使得各种不同的客户和开发人员都可以使用易用的富 GUI 安装程序在 Mac OS 上安装 IBM Informix Dynamic Server。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| Apple Mac OS X 上的 IDS Server 组合安装 | idsmacdemo.zip | 14MB | HTTP |
|---|
参考资料 学习
获得产品和技术
讨论
作者简介  | 
|  | Paul-John "PJ" A. To 是 IDS Install Development Team 的专职软件工程师。他除了领导 Mac OS X 的 IDS 安装程序开发外,他还参与作为安装的一部分的 IDS Deployment Wizard、 Configuration Wizard 和自动 DRDA 配置方面的工作。 |
 | 
|  | Ranjani 是 Common Application Development 小组的软件开发人员,专门从事 Informix Client-SDK(CSDK)方面的工作。她做过 Mac OS X 的 CSDK 的移植和增强方面的工作,目前正在研究其他平台。 |
对本文的评价
|