帆子
作者帆子·2020-08-04 00:08
售前技术支持·国内某服务器生产商

如何在离线方式下利用YUM工具在IBM i 上安装开源软件包

字数 3367阅读 7060评论 1赞 1

如今,对于开源应用,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 7.2
IBM i 7.3
IBM i 7.4

好了,让我们开始吧!

一,首先我们需要做的,是在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

具体的实施,可参看如下网页:

https://bitbucket.org/ibmi/opensource/src/master/docs/yum/#markdown-header-2-create-a-local-repository-mirror

另外,如果我们喜欢直接通过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

4,搭建IBM i上的RPM环境

5,Setup Bash on IBM i and Make it Friendly

6,SSH on the IBM i with BASH, PUTTY and WINSCP

7,TechTip: Qshell vs. PASE

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论1 条评论

ajggajgg工程师绿盟
2022-09-28 22:47
收藏
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广