- 论坛徽章:
- 0
|
5.3 AIX 5L下的Linux应用
本节讨论怎样使用开放源代码工具将Linux应用部署到AIX 5L平台。
5.3.1 LINUX亲和力
AIX 5L的Linux亲和力给你提供了在AIX 5L下很容易的编译并运行Linux应用的能力。AIX的Linux应用工具包是一组用来在AIX 5L环境下构建和部署Linux应用的GNU和开放源代码工具和实用程序,它包括一些已经在AIX 5L环境重新编译和测试过的Linux应用。
AIX 5L是使用UNIX工业标准发展的,因此它在AIX 5L和Linux应用之间在API级别上具有高度的兼容性,这种高度的兼容性使得大多数的Linux应用都可以使用AIX的Linux应用工具箱来在AIX 5L下进行重新编译并运行。
AIX 5L的Linux亲和力使用API来提供Linux应用和AIX 5L的互用性。这种途径不是让Linux应用运行在一个环境、或者一个附加层或者包装中,它是在AIX 5L中集成了Linux兼容的API和头文件。因此,重新编译的Linux应用被AIX 5L当作专门给它写的应用一样具有所有的可靠性、可扩展性和可用性,结果是它成为了一个AIX操作系统紧密结合的应用并且可以达到应用二进制接口(ABI)途径。
部署到AIX 5L的Linux应用就像AIX 5L自己的应用一样具有所有的AIX 5L功能的全部访问。
在工具箱中的开放源代码软件
下列站点包含当前的工具箱的内容的详细信息:
http://www.ibm.com/servers/aix/products/aixos/linux/rpmgroups.html
下面是工具箱中包含的软件示例:
GNU base utilities tar,cpio,diffutils,fileutils, findutils,and sh-utils
System utilities bzip2, gzip, ncftp, rsync, wget, lsof, and zip
System shells bash, tcsh, and zsh
Graphics applications xfig, xpdf, ghostscript, gv, and mpage
Desktop environments Gnome and KDE
Window managers enlightenment and sawfish
Application development gcc, gplusplus, gdb, cvs, make, automake,
autoconf, libtool, bison, flex, and m4
Programming languages PHP, Python, C, and C++ compilers
工具箱RPM包装格式
工具箱中的工具和应用都是RPM格式的包。RPM包管理器是一个可以在Linux系统和其他UNIX系统上工作的包装系统,最初它是作为一个工具被Red Hat分发的,现在,它是一个开放源代码的软件。它可以很容易的使用并提供安装、卸载、更新、删除以及构建包的特性。
如何在AIX 5L下重新编译并运行Linux应用
要在AIX 5L下重新编译并运行你的应用,拿到你当前使用的应用的源代码,从AIX的Linux工具箱中得到GNU工具(例如,make,automake,gcc等),使用这些工具创建AIX 5L的二进制代码,然后在AIX 5L下运行这些应用,该应用会使用API和头文件与AIX 5L连接。如果你不能得到应用的源代码,那你可以向提供商要求该应用的AIX 5L版本。
被重新编译并运行在AIX 5L下的Linux应用必须使用标准的Linux API编写,并使用GNU gcc和g++编译器。
5.3.2 怎样在AIX 5L下安装LINUX应用
本节讨论将AIX的Linux应用工具箱光盘中的开放源代码软件添加到你的AIX 5L系统中这一主题。
AIX的Linux应用工具箱光盘和你的基本操作系统在一起包装发行,它包括你在AIX 5L操作系统中最常用的一些开放源代码应用。你从光盘中安装的选项如下:
Ø 使用smitty install_software快速路径来从AIX的Linux应用工具箱光盘中安装RPM包
Ø 使用geninstall命令来从AIX的Linux应用工具箱光盘中安装RPM包
Ø 安装一个捆绑(bundle)。捆绑将你需要的基本Linux操作环境、基本桌面使用、GNOME或者KDE桌面使用或者应用发展所需的应用组成一组
Ø 从一个按功能分类的包的目录中安装。这些目录分组涵盖了大范围的应用、shell环境、网络应用、部署工具、应用库等等。
Ø 为特定应用安装一个包
安装RPM包
要使用SMIT安装cdrecord和mtools的RPM包,做如下操作:
1. 运行smitty install_software快速路径
2. 输入AIX的Linux应用工具箱光盘的设备路径(例如/dev/cd0)并回车
3. 按F4显示设备内容
4. 接受静止安装软件菜单项的默认值并回车
5. 确认你要安装软件并回车
软件开始安装。
使用geninstall命令安装
要使用命令行安装cdrecord和mtools的RPM包,输入命令:
# geninstall -d /dev/cd0 R:cdrecord R:mtools
软件开始安装。
5.3.3 使用rpm命令安装
使用rpm(AIX 5L基本操作系统安装过程中自动安装该命令)命令来安装GNOME桌面和bc应用包所需要的捆绑,在AIX的Linux工具箱里的readme文件里有完全的指令介绍。
1. 在运行AIX 5L系统上插入AIX的Linux工具箱光盘并运行系统
2. 以root用户的身份运行以下命令加载光盘:
# mount -v cdrfs -o ro /dev/cd0 /mnt
-v标志指定虚拟文件系统的类型是cdrfs,-o标志指定ro(只读)选项。设备名称是/dev/cd0,文件系统的加载点是/mnt。
3. 使用以下命令进入/mnt目录:
# cd /mnt
4. 使用ls命令列出CD中的内容,列表包括如下内容:
- 本光盘装指令说明的文档readme文件
- 对本光盘中可用的包的内容以及对包的功能的简短介绍的CONTENTS文件
5. 在你的Web浏览器上打开/mnt/LICENSES/index.html文件以察看软件许可信息
6. 在你的终端窗口,使用以下命令进入ezinstall/ppc目录:
# cd /mnt/ezinstall/ppc
在下一步使用rpm命令通过安装4个捆绑(Base、Desktop Base、GNOME Base和GNOME Apps),你也可以使用smitty install_bundle快速路径并选择GNOME捆绑来安装所有必须的包。
7. 使用如下顺序的命令安装GNOME:
# rpm -Uhv ezinstall/ppc/base/*
# rpm -Uhv ezinstall/ppc/desktop.base/*
# rpm -Uhv ezinstall/ppc/gnome.base/*
# rpm -Uhv ezinstall/ppc/gnome.apps/*
-U标志将更新每个系统中原有的包的早期版本,-h标志在安装处理的间隔打印一个#号指示安装进程,-v标志显示安装过程中产生的相关消息和错误消息。
如果rpm命令返回一个错误,有可能是下列原因之一造成的:
- 文件系统空间不足。扩大文件系统或者改变你的加载点。
- 包已经安装。rpm程序发现一个同名的包已经存在并且和将要安装的包版本相同,因此,它不会替换已有的包。CD上的脚本只安装这些你的系统上没有的包,如下所示:
# /mnt/contrib./installmissing.sh ezinstall/ppc/desktop.base/*
- 依赖性失败。该包被安装以前它所依赖的包(错误消息中列出的)必须先被安装在系统上。
8. 使用以下命令安装bc应用包:
# rpm -Uhv RPMS/ppc/bc-*.rpm
怎样使工具箱命令可以使用
要在安装Linux版(工具箱版)的命令之后执行这些命令,你应该采用如下方式之一:
Ø 使用相对路径或者绝对路径调用该命令
Ø 创建一个命令名称的别名
Ø 改变PATH变量,使得开始的路径中包括/usr/linux/bin
注意:改变PATH变量可能会引起一些AIX 5L应用冲突,特别是SMIT,依赖于将要执行的任务,PATH变量可能有必要改变。
不要在/etc/environment,/etc/profile或者被init进程在引导的时候调用的进程使用的其他用户环境文件中改变PATH变量。
对系统管理员,我们不建议您在登录时设置PATH环境变量或者使用/usr/linux/bin在AIX 5L目录之前。使用一个手动运行或者指定应用运行的环境加载脚本,例如aixterm(在Korn Shell下使用ENV变量的机制),或者使用到希望使用的命令的别名。
对用户和开发者,按自己的喜好进行设置使用。
使用相对或绝对路径
要通过相对或绝对路径访问Linux工具箱RPM包命令,你当然必须知道它保存在你的文件系统中的哪一处。在接下来的两个例子中,我们运行从工具箱Web站点下载的RPM包fileutils中的/usr/linux/bin/ls命令,我们当前的目录是/home/work目录。
第一个例子使用绝对路径运行ls命令加--color选项:
# /usr/linux/bin/ls --color
第二个例子使用相对路径运行ls命令加--help选项(当前目录为/home/work):
# ../../../usr/linux/bin/ls --help
使用PATH搜索引用
要使运行Korn Shell(或者其他类似的Shell)时工具箱RPM包命令首先被找到,我们可以使用PATH变量,并在变量中指定/usr/linux/bin路径位于其他搜索路径之前。在Korn Shell环境下设置PATH变量如下:
# export PATH=/usr/linux/bin:$PATH
在接下来的例子中,首先我们使用AIX 5L的nl命令,然后导出新的PATH环境变量,最先指向/usr/linux/bin,然后再次运行nl命令(/usr/linux/bin/nl是一个符号链接,它指向/opt/freeware/bin/nl),就像你所看到的输出结果,两次运行nl执行的是不同的命令:
#root@fenris:/: print $PATH
/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin
#root@fenris:/: nl -?
nl: 0653-467 illegal option: -?
Usage: nl [-b Type] [-d Delimiter1 Delimiter2] [-f Type] [-h Type]
[-i Number] [-l Number] [-n Format] [-p] [-s Separator]
[-v Number] [-w Number] [File]
#root@fenris:/: export PATH=/usr/linux/bin:$PATH
#root@fenris:/: print $PATH
/usr/linux/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin
#root@fenris:/: nl -?
/usr/linux/bin/nl: invalid option -- ?
Try `/usr/linux/bin/nl --help' for more information.
使用命令别名
要设置使用工具箱中命令取代AIX 5L支持的命令,可以设置一个命令的别名,在Korn Shell下可以使用内建的别名功能(在其他的Shell中也有类似的机制),其语法如下:
alias 命令=命令的绝对路径,其它选项(可选)
下面的例子显示如何为rm命令创建一个别名,该别名定义指向/usr/linux/bin/rm命令:
alias rm=/usr/linux/bin/rm
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6482/showart_114314.html |
|