在上一篇文章中已经向您介绍了IBM i Access Client Solutions应用程序软件包。 在本文中,将对Linux应用程序包进行更详细的说明,包括相对于现有的iSeries Access for Linux产品所带来的好处。 如果您使用过Linux的iSeries Access,则可能会因缺少主题库,由于在64位平台上无法与最新版本的unixODBC配合使用而导致安装困难而感到沮丧。基于Debian的发行版。 幸运的是,IBM i Access客户端解决方案Linux应用程序软件包弥补了iSeries Access for Linux不足之处。
完整的64位支持
大多数(如果不是全部)较新的Linux发行版都包括unixODBC 2.2.14或更高版本,该版本最终添加了完整的64位支持。 这意味着SQLLEN现在是64位体系结构上的64位值。 不幸的是,这是以完全向后不兼容的方式完成的(为此,责任归咎于Microsoft®,因为他们编写了标准)。 这意味着在最近的64位Linux系统上编译的ODBC应用程序将无法与iSeries Access for Linux附带的ODBC驱动程序一起使用。 使用unixODBC的早期版本(2.2.14之前的版本)编译的应用程序将继续工作,但不会完全兼容64位。 通过应用程序实现,这还意味着使用绑定到libodbc.so的抽象层或库的任何程序,例如php-ODBC,pdo_odbc,ruby-odbc等。 这些通常包含在发行版中,并且已经用发行版的unixODBC进行了编译,该版本可能现在与Linux的iSeries Access不兼容。 好消息是,IBM i Access Client解决方案Linux应用程序软件包中随附的ODBC驱动程序现在完全兼容64位,并且现在可以在最新的Linux发行版上正常工作。
申请变更
可能需要更新应用程序才能与新驱动程序一起正常使用。 使用SQLLEN的应用程序很可能只需要重新编译。 Microsoft将许多应用程序编程接口(API)中SQLINTEGER参数更改为SQLLEN-混合使用这两种方法的应用程序现在可能会遇到有关类型冲突的错误。 这要求将应用程序修改为使用SQLLEN而不是SQLINTEGER。 有关完全64位兼容性更改的详细信息,请参阅Microsoft文章ODBC 64位信息 。 使用抽象层(例如,通过PHP,Ruby或其他脚本语言)的应用程序应该没有任何问题。
基于Debian的发行版的软件包
用于Linux iSeries的访问只有永远支持基于RPM的发行版,但很多客户使出脚本或工具(比如外星人 )的RPM包转换为deb包安装在基于Debian的发行版,如Ubuntu Linux系统。 现在,IBM i Access Client解决方案Linux应用程序软件包同时包含RPM和deb软件包。 这应该对使用Debian或Ubuntu来访问IBM i的人们有所帮助。
32位可同时安装的库
在Linux的iSeries Access中,如果同时具有32位和64位应用程序,则没有提供安装两组库的方法。 许多用户诉诸于强制安装32位和64位软件包。 这意味着RPM现在无法完全卸载所有内容,因为32位软件包信息覆盖了64位软件包信息(或者64位软件包信息覆盖了32位软件包信息)。 通过IBM i Access Client解决方案Linux应用程序包的Service Pack 1,我们现在包括附加的RPM和deb包,以与32位库一起安装32位库。 例如,要在SUSE上安装64位软件包和32位库,您将使用以下命令:
zypper in ibm-iaccess-1.1.0.1-1.0.x86_64.rpm ibm-iaccess-32bit-1.1.0.1-1.0.x86_64.rpm
这将安装64位软件包(包括64位库,实用程序二进制文件,消息文件和转换表)和32位软件包(仅包括32位库)。 由于除了库之外的所有内容都是在RPM之间共享的,因此无需安装两次。
支持Linux on Power
通过Service Pack 1,IBM i Access Client解决方案Linux应用程序包已获得对Linux on Power的支持。 对于希望通过除IBM i之外还运行Linux来充分利用IBM Power Systems™硬件的客户而言,这非常有用。 对于同时拥有IBM i和Linux的客户来说,在Power Systems硬件上运行Linux服务器非常有用,因为它可以利用现有硬件上的多余容量并可以重用现有知识。 所有相同的工具[虚拟I / O服务器(VIOS),集成虚拟化管理器(IVM),硬件管理控制台(HMC),IBMPowerVM®等]都可以管理IBM i和Linux逻辑分区(LPAR),因此,管理员无需学习新工具。
附加信息
服务包
iSeries Access Linux的最新版本是7.1,于2010年9月发行。此后进行了许多更改和修复,并且发布了许多MicrosoftWindows®Service Pack,但是Linux从未得到过相同的待遇。 使用IBM i Access Client Solutions,Linux应用程序包不再是二等公民。 IBM承诺发布定期Service Pack,以修复遇到的问题并酌情添加新功能。
DSN变更
使用IBM i Access客户端解决方案Linux应用程序包,驱动程序名称从“ iSeries Access ODBC驱动程序”更改为“ IBM i Access ODBC驱动程序”。 确保相应地调整odbc.ini。 此外,IBM i Access ODBC驱动程序允许您与32位和64位驱动程序共享数据源名称。 正确的选项将由unixODBC选择,以与您的应用程序一致。
符号链接兼容性
不幸的是,当项目的unixODBC unixODBC的中加2.2.14完整的64位支持,他们并没有增加从s O.1共享库版本so.2。 最终在unixODBC 2.3.1中修复了该问题,但是许多发行版目前尚未包括该版本。 许多发行版确实意识到兼容性方面存在中断,并更新了其软件包以反映这一点。 在Red Hat,Fedora和其他产品上,尝试安装IBM i Access Client Soutions Linux应用程序软件包时,可能会看到关于libodbcinst.so.1缺少依赖项的错误。 要解决此问题,您需要强制安装软件包并创建从libodbcinst.so.2到libodbcinst.so.1的符号链接:
- 基于64位RPM的发行版:
ln -s libodbcinst.so.2 /usr/lib64/libodbcinst.so.1
- 基于32位RPM的发行版:
ln -s libodbcinst.so.2 /usr/lib/libodbcinst.so.1
- 基于64位Debian的发行版:
ln -s libodbcinst.so.2 /usr/lib/
x86_64-Linux-gnu/
libodbcinst.so.1
- 32位基于Debian的发行版:
ln -s libodbcinst.so.2 /usr/lib/
i386-Linux-gnu/
libodbcinst.so.1
我们希望在将来的版本中修复此问题。
功能集更改
IBM i Access客户端解决方案Linux应用程序软件包中已删除了iSeries Access Linux版的一些功能。 本质上,IBM i Access Client解决方案Linux应用程序包现在仅仅是ODBC驱动程序和工具箱。 这是一个有意识的决定,因为其中许多功能现在都是跨平台解决方案IBM i Access Client Solutions的一部分。 努力使旧的ibm5250模拟器在Linux上运行的客户现在可以下载IBM i Access Client Solutions,并获得更好,更现代的模拟器。 此外,IBM i Access Client Solutions还包括数据传输客户端,集成的安全套接字层(SSL)支持,假脱机文件查看器以及连接到LAN控制台和HMC的功能。 有关更多信息,请参阅IBM i。 Tim Rowe 撰写的访问客户端解决方案 文章 。
结论
在支持完整的64位ODBC接口,Debian软件包,用于64位Linux的32位可同时安装的软件包以及IBM i Access Client解决方案中发现的经过改进的5250仿真器和其他功能之间,我们希望您同意IBM i Access客户端解决方案和Linux应用程序软件包是iSeries Access Linux版产品的重大升级。 可以从IBM授权软件支持(ESS)下载IBM i Access Client解决方案和Linux应用程序包。 有关如何轻松下载软件包的信息,请参阅获取访问客户端Soluti 附件 。
翻译自: https://www.ibm.com/developerworks/ibmi/library/i-ibmi-access-client-solutions-linux/index.html