如今,对于开源应用,IBM i已经不再通过类似5733-OPS这种传统的LICPGM形式来提供了,而是转而采用更加开放的RPM-形式的软件包来提供开源软件,并采取与许多Linux平台一致的做法,即通过YUM(前端软件包管理器)工具来进行软件安装。
考虑到许多公司里的IBM i服务器,都是在内网里的,不能直接访问互联网,所以本文所要介绍的,就是如何在离线方式下,搭建YUM环境,并利用这一工具在IBM i上安装开源软件。
在此之前,我们需要:
1, 搭建好ACS客户端
2, 确认5733-SC1 *BASE和Option1 是否已经安装
ACS是IBM i AS400 Client Solution的简称,它是一个免费的Java程序。ACS既能提供传统的5250仿真界面,又能开启SSH终端界面来访问IBM i里的开源环境。(当然,如果仅需要SSH访问,我们也可使用诸如putty,或者MobaXterm这样的常规工具)
我们可以从下面的网站来下载ACS:
https://www.ibm.com/support/pages/ibm-i-access-client-solutions
注意:由于ACS是一个Java程序,所以我们需要安装Oracle JRE。
而针对5733-SC1是否安装,我们可以简单地在IBM i的5250会话命令行里通过键入如下命令来获得:
DSPSFWRSC
通常,它会附随在B_GROUPx_04这张光盘上。
参看各版本的Media Labels and their contents:
好了,让我们开始吧!
一,首先我们需要做的,是在IBM i上搭建好YUM环境。
1,访问如下网址:
https://public.dhe.ibm.com/software/ibmi/products/pase/rpms/
2,下载bootstrap.sh和bootstrap.tar.Z这两个文件,然后将它们通过FTP上传到IBM i上的/tmp目录下。注意,本次以及后续所有的FTP传输,都请采用BIN(二进制)模式。
3,接下来,在IBM i上键入如下命令:
QSH CMD('touch -C 819 /tmp/bootstrap.log; /QOpenSys/usr/bin/ksh /tmp/bootstrap.sh > /tmp/bootstrap.log 2>&1')
如果成功完成,那就说明YUM环境已经Setup好了。如果出错,可以具体参看/tmp/bootstrap.log 这个文件来确定出错原因。
二,接下来,就是建构一个pseudo local repo资源镜像。
1,再次访问下面的网站:
https://public.dhe.ibm.com/software/ibmi/products/pase/rpms/
下载ibm.repo,并通过FTP上传至IBM i的/QOpenSys/etc/yum/repos.d 目录下
2,在上面的网站上,点击repo目录
这里包含了所有适用于IBM i的开源软件的rpm软件包。
我们将它们下载下来,并FTP到/QOpenSys/QIBM/UserData/rpm_repos/ibm 目录下。注意,要保持原有的目录结构。(好在它们都是单层目录)
为了方便大家,我已经将 2020 年 12 月 17 日的镜像下载下来,并上传至百度网盘。以下是下载链接:
链接: https://pan.baidu.com/s/1-NJFA30ia7guiCDEF2cg3A
提取码: n7ev
3,修改yum安装配置文件(/QOpenSys/etc/yum/repos.d/ibm.repo)中的baseurl参数值,将repo地址指向本地目录,也就是/QOpenSys/QIBM/UserData/rpm_repos/ibm
至此,适合于本地离线安装的YUM环境构建完成。
三,现在,我们就可以通过YUM来离线安装所需的开源软件包了。
1,启动SSH Damon。
2,然后,通过ACS中的工具对服务器上的开源软件资源进行管理。
在菜单上,点击“工具”,再点击“开放式源代码程序包管理”,ACS就会弹出SSH客户端连接窗口,并给出服务器上的开源软件资源信息。
我们可以安装开源软件,也可以对已安装的开源软件进行更新。
好了,至此我们就可利用YUM工具在IBM i上安装开源软件包了。
不过,大家可能已经注意到,我们这里的local repo资源镜像,并不是真正意义上的资源镜像,因为它无法和外界保持镜像同步,这也就是为何我会将其称之为pseudo local repo mirror的缘故了。
更为专业的做法,是在DMZ区安置一台连接Internet的服务器,在上面构建真正意义上的local repo mirror,并通过share相关的目录,让组织内部的其它服务器都能获取repo资源。这里会用到两个命令,reposync和createrepo,而这两个命令可以通过下面的安装命令来获得:
yum install yum-utils createrepo
具体的实施,可参看如下网页:
另外,如果我们喜欢直接通过SSH终端工具,例如putty,或者MobaXterm,来访问IBM i,你会发现,这里的Shell环境和Linux上的有所不同。
确实,IBM i上有多种Shell。有Qshell,它是IBM i自身的一个满足POSIX和X/Open标准的命令运行环境(通过QSH或STRQSH命令启动),可视作为一个类似ksh和bsh的混合体;有从AIX操作系统移植过来的PASE(Portable Application Solutions Environment)环境(通过CALL QP2TERM启动),其中提供了三种Shell选择(ksh,bsh和csh)。在IBM i上启动的PASE Shell,缺省是ksh,而通过SSH访问IBM i所获得的PASE Shell,缺省是bsh。如今,在开源软件的时代,为了更好地适应Linux操作环境,我们建议将PASE SHELL改成bash。
只需在 ACS 左侧功能栏点击“运行 SQL 脚本”启动 SQL 会话界面,并运行以下命令,就可将自己的 PASE Shell 改为 bash 。
CALL QSYS2.SET_PASE_SHELL_INFO('CURRENT', '/QOpenSys/QIBM/ProdData/OPS/tools/bin/bash')
现在,用你的账号重新连接并登录一个 SSH 会话,是不是有种熟悉的感觉?
同样,在你的 $HOME 目录下,你可以尝试键入如下命令:
echo 'export PS1="[bash-\v:\u@\h \w]\$ "' >> $HOME/.profile
下次登录时,看看命令行前缀有什么改变。
总结一下,通过在 IBM i 上建构 YUM 工具并用它来安装开源软件,会有更多的解决方案组合涌现出来,让 IBM i 变得更加开放,变得更加 Cool 。
最后,真诚感谢IBM中国实验室的朱丽君女士和IBM GTS部门的顾青先生对此文的帮助与和支持。
参考网页:
1,IBM i opensource website - yum
2,Getting started with Open Source Package Management in IBM i ACS
3,Installation of Open Source Products using RPM method
5,Setup Bash on IBM i and Make it Friendly
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论1 条评论
2022-09-28 22:47