在AIX上安装开源软件曾经是一个比较麻烦的问题,因为开源软件包的依赖关系比较复杂,用户往往需要花费大量时间来解决依赖问题。对于RPM包依赖问题,曾经的解决方案是去Perzl的网站下载相关开源包的依赖关系:
http://www.perzl.org/aix/index.php?n=FAQs.FAQs
从2016年开始,AIX上引入了yum来自动处理依赖关系,RPM依赖的问题就迎刃而解了。了解Redhat Linux的朋友对yum应该不陌生了,下面我们介绍下在AIX上安装、配置yum的过程。
AIX 6.1 TL9 SP6 或更新
AIX 7.1 TL4 或更新
AIX 7.2 或更新
确认rpm.rte版本不低于4.13.0.3:
# lslpp -l rpm.rte
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
rpm.rte 4.13.0.3 COMMITTED RPM Package Manager
Path: /etc/objrepos
rpm.rte 4.13.0.3 COMMITTED RPM Package Manager
安装/升级rpm.rte的方法为smitty install_latest/update_all. rpm.rte下载地址:
https://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/INSTALLP/ppc/
下载最新yum包并解压之后,rpm -Uvh *.rpm安装。
yum依赖包下载地址:
https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/
# tar -xvf yum_bundle_v6.tar
x ca-certificates-2016.10.7-2.aix6.1.ppc.rpm, 214726 bytes, 420 tape blocks
x curl-7.52.1-1.aix6.1.ppc.rpm, 533288 bytes, 1042 tape blocks
x db-4.8.24-3.aix6.1.ppc.rpm, 2897799 bytes, 5660 tape blocks
x gdbm-1.8.3-5.aix5.2.ppc.rpm, 56991 bytes, 112 tape blocks
x gettext-0.19.7-1.aix6.1.ppc.rpm, 4036762 bytes, 7885 tape blocks
x glib2-2.14.6-2.aix5.2.ppc.rpm, 1686134 bytes, 3294 tape blocks
x pysqlite-1.1.7-2.aix6.1.ppc.rpm, 51749 bytes, 102 tape blocks
x python-2.7.10-1.aix6.1.ppc.rpm, 23333701 bytes, 45574 tape blocks
x python-devel-2.7.10-1.aix6.1.ppc.rpm, 15366474 bytes, 30013 tape blocks
x python-iniparse-0.4-1.aix6.1.noarch.rpm, 37912 bytes, 75 tape blocks
x python-pycurl-7.19.3-1.aix6.1.ppc.rpm, 162093 bytes, 317 tape blocks
x python-tools-2.7.10-1.aix6.1.ppc.rpm, 830446 bytes, 1622 tape blocks
x python-urlgrabber-3.10.1-1.aix6.1.noarch.rpm, 158584 bytes, 310 tape blocks
x readline-6.1-2.aix6.1.ppc.rpm, 489547 bytes, 957 tape blocks
x sqlite-3.15.2-1.aix6.1.ppc.rpm, 3570302 bytes, 6974 tape blocks
x yum-3.4.3-8.aix6.1.noarch.rpm, 1385622 bytes, 2707 tape blocks
x yum-metadata-parser-1.1.4-2.aix6.1.ppc.rpm, 62283 bytes, 122 tape blocks
# ls -lrt
total 214512
-rw-r----- 1 sshd staff 4036762 Feb 25 2017 gettext-0.19.7-1.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 56991 Feb 25 2017 gdbm-1.8.3-5.aix5.2.ppc.rpm
-rw-r----- 1 sshd staff 2897799 Feb 25 2017 db-4.8.24-3.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 533288 Feb 25 2017 curl-7.52.1-1.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 51749 Feb 25 2017 pysqlite-1.1.7-2.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 1686134 Feb 25 2017 glib2-2.14.6-2.aix5.2.ppc.rpm
-rw-r----- 1 sshd staff 3570302 Feb 25 2017 sqlite-3.15.2-1.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 489547 Feb 25 2017 readline-6.1-2.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 158584 Feb 25 2017 python-urlgrabber-3.10.1-1.aix6.1.noarch.rpm
-rw-r----- 1 sshd staff 830446 Feb 25 2017 python-tools-2.7.10-1.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 162093 Feb 25 2017 python-pycurl-7.19.3-1.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 37912 Feb 25 2017 python-iniparse-0.4-1.aix6.1.noarch.rpm
-rw-r----- 1 sshd staff 15366474 Feb 25 2017 python-devel-2.7.10-1.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 23333701 Feb 25 2017 python-2.7.10-1.aix6.1.ppc.rpm
-rw-r----- 1 sshd staff 62283 Feb 25 2017 yum-metadata-parser-1.1.4-2.aix6.1.ppc.rpm
-rw-r--r-- 1 sshd staff 214726 May 12 2017 ca-certificates-2016.10.7-2.aix6.1.ppc.rpm
-rw-r----- 1 root system 1385622 Dec 4 22:59 yum-3.4.3-8.aix6.1.noarch.rpm
-rw-r----- 1 root system 54896640 Apr 2 17:53 yum_bundle_v6.tar
# rpm -Uvh *.rpm
Preparing... ################################# [100%]
Updating / installing...
1:readline-6.1-2 ################################# [ 6%]
2:sqlite-3.15.2-1 ################################# [ 12%]
/
3:gettext-0.19.7-1 ################################# [ 18%]
add libintl.so.1 (32bits) shared member to /opt/freeware/lib/libintl.a
add libintl.so.1 (64bits) shared member to /opt/freeware/lib/libintl.a
/
4:glib2-2.14.6-2 ################################# [ 24%]
5:yum-metadata-parser-1.1.4-2 ################################# [ 29%]
6:gdbm-1.8.3-5 ################################# [ 35%]
7:db-4.8.24-3 ################################# [ 41%]
8:python-2.7.10-1 ################################# [ 47%]
9:pysqlite-1.1.7-2 ################################# [ 53%]
10:python-iniparse-0.4-1 ################################# [ 59%]
11:ca-certificates-2016.10.7-2 ################################# [ 65%]
12:curl-7.52.1-1 ################################# [ 71%]
13:python-pycurl-7.19.3-1 ################################# [ 76%]
14:python-urlgrabber-3.10.1-1 ################################# [ 82%]
15:yum-3.4.3-8 ################################# [ 88%]
16:python-devel-2.7.10-1 ################################# [ 94%]
17:python-tools-2.7.10-1 ################################# [100%]
AIX环境安装完yum后,yum配置文件存放在/opt/freeware/etc/yum/yum.conf,其默认的安装源地址为:
https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/
考虑到大部分AIX部署的环境通常与外网有隔离,建议使用下载工具按上述安装源地址一次性下载所有安装包,在本地配置http/ftp服务,然后修改配置文件/opt/freeware/etc/yum/yum.conf,选择本地安装源;
例如本次示例使用的即是本地安装源:
# cat /opt/freeware/etc/yum/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
plugins=1
[AIX_Toolbox]
name=AIX generic repository
baseurl=ftp://anonymous:anonymous@172.16.10.10/os/aix/aixtoolbox/RPMS/ppc/
enabled=1
gpgcheck=0
[AIX_Toolbox_noarch]
name=AIX noarch repository
baseurl=ftp://anonymous:anonymous@172.16.10.10/os/aix/aixtoolbox/RPMS/noarch/
enabled=1
gpgcheck=0
[AIX_Toolbox_72]
name=AIX 7.2 specific repository
baseurl=ftp://anonymous:anonymous@172.16.10.10/os/aix/aixtoolbox/RPMS/ppc-7.2/
enabled=1
gpgcheck=0
接下来的一切与Linux环境没有太大差别了,下面是安装gcc/gcc-c++/gcc-go的示例:
# yum repolist
repo id repo name status
AIX_Toolbox AIX generic repository 2,561
AIX_Toolbox_72 AIX 7.2 specific repository 172
AIX_Toolbox_noarch AIX noarch repository 236
repolist: 2,969
# yum install gcc
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc.ppc 0:8.3.0-2 will be installed
--> Processing Dependency: libgcc = 8.3.0-2 for package: gcc-8.3.0-2.ppc
--> Processing Dependency: gcc-cpp = 8.3.0-2 for package: gcc-8.3.0-2.ppc
--> Processing Dependency: info for package: gcc-8.3.0-2.ppc
--> Processing Dependency: libiconv.a(libiconv.so.2) for package: gcc-8.3.0-2.ppc
--> Running transaction check
---> Package gcc-cpp.ppc 0:8.3.0-2 will be installed
--> Processing Dependency: mpfr >= 4.0.2 for package: gcc-cpp-8.3.0-2.ppc
--> Processing Dependency: libmpc >= 1.1.0 for package: gcc-cpp-8.3.0-2.ppc
--> Processing Dependency: zlib >= 1.2.3-3 for package: gcc-cpp-8.3.0-2.ppc
--> Processing Dependency: gmp >= 6.1.2 for package: gcc-cpp-8.3.0-2.ppc
--> Processing Dependency: libmpc.a(libmpc.so.3) for package: gcc-cpp-8.3.0-2.ppc
--> Processing Dependency: libmpfr.a(libmpfr.so.6) for package: gcc-cpp-8.3.0-2.ppc
--> Processing Dependency: libgmp.a(libgmp.so.10) for package: gcc-cpp-8.3.0-2.ppc
---> Package info.ppc 0:6.6-2 will be installed
--> Processing Dependency: ncurses >= 6.1-2 for package: info-6.6-2.ppc
--> Processing Dependency: gettext >= 0.19.8.1-4 for package: info-6.6-2.ppc
--> Processing Dependency: libncurses.a(libncurses.so.6) for package: info-6.6-2.ppc
---> Package libgcc.ppc 0:8.3.0-2 will be installed
---> Package libiconv.ppc 0:1.16-1 will be installed
--> Running transaction check
---> Package gettext.ppc 0:0.19.7-1 will be updated
---> Package gettext.ppc 0:0.19.8.1-5 will be an update
--> Processing Dependency: glib2 >= 2.56.1-2 for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libunistring >= 0.9.9-2 for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libxml2 >= 2.9.7 for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libunistring.a(libunistring.so.2) for package: gettext-0.19.8.1-5.ppc
---> Package gmp.ppc 0:6.1.2-1 will be installed
--> Processing Dependency: libstdc++ >= 4.2.3-2 for package: gmp-6.1.2-1.ppc
--> Processing Dependency: libstdc++.a(libstdc++.so.6) for package: gmp-6.1.2-1.ppc
---> Package libmpc.ppc 0:1.1.0-1 will be installed
---> Package mpfr.ppc 0:4.0.2-2 will be installed
---> Package ncurses.ppc 0:6.2-1 will be installed
---> Package zlib.ppc 0:1.2.11-1 will be installed
--> Running transaction check
---> Package glib2.ppc 0:2.14.6-2 will be updated
---> Package glib2.ppc 0:2.56.1-2 will be an update
--> Processing Dependency: libffi >= 3.0.10-1 for package: glib2-2.56.1-2.ppc
--> Processing Dependency: libffi.a(libffi.so.6) for package: glib2-2.56.1-2.ppc
---> Package libstdc++.ppc 0:8.3.0-2 will be installed
---> Package libunistring.ppc 0:0.9.9-2 will be installed
---> Package libxml2.ppc 0:2.9.9-1 will be installed
--> Processing Dependency: xz-libs >= 5.2.2-1 for package: libxml2-2.9.9-1.ppc
--> Processing Dependency: liblzma.a(liblzma.so.5) for package: libxml2-2.9.9-1.ppc
--> Running transaction check
---> Package libffi.ppc 0:3.2.1-3 will be installed
---> Package xz-libs.ppc 0:5.2.5-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
gcc ppc 8.3.0-2 AIX_Toolbox_72 28 M
Installing for dependencies:
gcc-cpp ppc 8.3.0-2 AIX_Toolbox_72 10 M
gmp ppc 6.1.2-1 AIX_Toolbox 1.6 M
info ppc 6.6-2 AIX_Toolbox 664 k
libffi ppc 3.2.1-3 AIX_Toolbox 47 k
libgcc ppc 8.3.0-2 AIX_Toolbox_72 977 k
libiconv ppc 1.16-1 AIX_Toolbox 1.6 M
libmpc ppc 1.1.0-1 AIX_Toolbox 224 k
libstdc++ ppc 8.3.0-2 AIX_Toolbox_72 12 M
libunistring ppc 0.9.9-2 AIX_Toolbox 1.5 M
libxml2 ppc 2.9.9-1 AIX_Toolbox 5.4 M
mpfr ppc 4.0.2-2 AIX_Toolbox 1.9 M
ncurses ppc 6.2-1 AIX_Toolbox 3.5 M
xz-libs ppc 5.2.5-1 AIX_Toolbox 540 k
zlib ppc 1.2.11-1 AIX_Toolbox 174 k
Updating for dependencies:
gettext ppc 0.19.8.1-5 AIX_Toolbox 7.6 M
glib2 ppc 2.56.1-2 AIX_Toolbox 28 M
Transaction Summary
===============================================================================================================================================
Install 15 Packages
Upgrade 2 Packages
Total download size: 104 M
Is this ok [y/N]: y
Downloading Packages:
(1/17): gcc-8.3.0-2.aix7.2.ppc.rpm | 28 MB 00:00:02
(2/17): gcc-cpp-8.3.0-2.aix7.2.ppc.rpm | 10 MB 00:00:00
(3/17): gettext-0.19.8.1-5.aix6.1.ppc.rpm | 7.6 MB 00:00:00
(4/17): glib2-2.56.1-2.aix6.1.ppc.rpm | 28 MB 00:00:02
(5/17): gmp-6.1.2-1.aix6.1.ppc.rpm | 1.6 MB 00:00:00
(6/17): info-6.6-2.aix6.1.ppc.rpm | 664 kB 00:00:00
(7/17): libffi-3.2.1-3.aix6.1.ppc.rpm | 47 kB 00:00:00
(8/17): libgcc-8.3.0-2.aix7.2.ppc.rpm | 977 kB 00:00:00
(9/17): libiconv-1.16-1.aix6.1.ppc.rpm | 1.6 MB 00:00:00
(10/17): libmpc-1.1.0-1.aix6.1.ppc.rpm | 224 kB 00:00:00
(11/17): libstdcplusplus-8.3.0-2.aix7.2.ppc.rpm | 12 MB 00:00:01
(12/17): libunistring-0.9.9-2.aix6.1.ppc.rpm | 1.5 MB 00:00:00
(13/17): libxml2-2.9.9-1.aix6.1.ppc.rpm | 5.4 MB 00:00:00
(14/17): mpfr-4.0.2-2.aix6.1.ppc.rpm | 1.9 MB 00:00:00
(15/17): ncurses-6.2-1.aix6.1.ppc.rpm | 3.5 MB 00:00:00
(16/17): xz-libs-5.2.5-1.aix6.1.ppc.rpm | 540 kB 00:00:00
(17/17): zlib-1.2.11-1.aix6.1.ppc.rpm | 174 kB 00:00:00
-----------------------------------------------------------------------------------------------------------------------------------------------
Total 10 MB/s | 104 MB 00:10
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgcc-8.3.0-2.ppc 1/19
Installing : zlib-1.2.11-1.ppc 2/19
Installing : libstdc++-8.3.0-2.ppc 3/19
Installing : gmp-6.1.2-1.ppc 4/19
Installing : mpfr-4.0.2-2.ppc 5/19
Installing : ncurses-6.2-1.ppc 6/19
Installing : libmpc-1.1.0-1.ppc 7/19
Installing : xz-libs-5.2.5-1.ppc 8/19
Installing : libffi-3.2.1-3.ppc 9/19
Installing : libiconv-1.16-1.ppc 10/19
add shr4.o shared members from /usr/lib/libiconv.a to /opt/freeware/lib/libiconv.a
add shr.o shared members from /usr/lib/libiconv.a to /opt/freeware/lib/libiconv.a
add shr4_64.o shared members from /usr/lib/libiconv.a to /opt/freeware/lib/libiconv.a
/
Installing : libxml2-2.9.9-1.ppc 11/19
Updating : glib2-2.56.1-2.ppc 12/19
Installing : libunistring-0.9.9-2.ppc 13/19
Updating : gettext-0.19.8.1-5.ppc 14/19
Installing : info-6.6-2.ppc 15/19
Please check that /etc/info-dir does exist.
You might have to rename it from /etc/info-dir.rpmsave to /etc/info-dir.
Installing : gcc-8.3.0-2.ppc 16/19
Installing : gcc-cpp-8.3.0-2.ppc 17/19
Cleanup : glib2-2.14.6-2.ppc 18/19
Cleanup : gettext-0.19.7-1.ppc 19/19
Ignore the error about AIX-rpm dependency since the older libintl.a is already preserved and will be reverted back
Installed:
gcc.ppc 0:8.3.0-2
Dependency Installed:
gcc-cpp.ppc 0:8.3.0-2 gmp.ppc 0:6.1.2-1 info.ppc 0:6.6-2 libffi.ppc 0:3.2.1-3 libgcc.ppc 0:8.3.0-2 libiconv.ppc 0:1.16-1
libmpc.ppc 0:1.1.0-1 libstdc++.ppc 0:8.3.0-2 libunistring.ppc 0:0.9.9-2 libxml2.ppc 0:2.9.9-1 mpfr.ppc 0:4.0.2-2 ncurses.ppc 0:6.2-1
xz-libs.ppc 0:5.2.5-1 zlib.ppc 0:1.2.11-1
Dependency Updated:
gettext.ppc 0:0.19.8.1-5 glib2.ppc 0:2.56.1-2
Complete!
# yum install gcc-c++
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc-c++.ppc 0:8.3.0-2 will be installed
--> Processing Dependency: libstdc++-devel = 8.3.0-2 for package: gcc-c++-8.3.0-2.ppc
--> Running transaction check
---> Package libstdc++-devel.ppc 0:8.3.0-2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
gcc-c++ ppc 8.3.0-2 AIX_Toolbox_72 11 M
Installing for dependencies:
libstdc++-devel ppc 8.3.0-2 AIX_Toolbox_72 3.3 M
Transaction Summary
===============================================================================================================================================
Install 2 Packages
Total download size: 15 M
Installed size: 15 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): gcc-cplusplus-8.3.0-2.aix7.2.ppc.rpm | 11 MB 00:00:01
(2/2): libstdcplusplus-devel-8.3.0-2.aix7.2.ppc.rpm | 3.3 MB 00:00:00
-----------------------------------------------------------------------------------------------------------------------------------------------
Total 10 MB/s | 15 MB 00:01
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libstdc++-devel-8.3.0-2.ppc 1/2
Installing : gcc-c++-8.3.0-2.ppc 2/2
Installed:
gcc-c++.ppc 0:8.3.0-2
Dependency Installed:
libstdc++-devel.ppc 0:8.3.0-2
Complete!
# yum install gcc-go
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc-go.ppc 0:8.3.0-2 will be installed
--> Processing Dependency: libgo-devel = 8.3.0-2 for package: gcc-go-8.3.0-2.ppc
--> Processing Dependency: libgo = 8.3.0-2 for package: gcc-go-8.3.0-2.ppc
--> Processing Dependency: libgo.a(libgo.so.13) for package: gcc-go-8.3.0-2.ppc
--> Running transaction check
---> Package libgo.ppc 0:8.3.0-2 will be installed
---> Package libgo-devel.ppc 0:8.3.0-2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
gcc-go ppc 8.3.0-2 AIX_Toolbox_72 47 M
Installing for dependencies:
libgo ppc 8.3.0-2 AIX_Toolbox_72 62 M
libgo-devel ppc 8.3.0-2 AIX_Toolbox_72 1.5 M
Transaction Summary
===============================================================================================================================================
Install 3 Packages
Total download size: 111 M
Installed size: 111 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): gcc-go-8.3.0-2.aix7.2.ppc.rpm | 47 MB 00:00:04
(2/3): libgo-8.3.0-2.aix7.2.ppc.rpm | 62 MB 00:00:05
(3/3): libgo-devel-8.3.0-2.aix7.2.ppc.rpm | 1.5 MB 00:00:00
-----------------------------------------------------------------------------------------------------------------------------------------------
Total 11 MB/s | 111 MB 00:10
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgo-8.3.0-2.ppc 1/3
Installing : libgo-devel-8.3.0-2.ppc 2/3
Installing : gcc-go-8.3.0-2.ppc 3/3
Installed:
gcc-go.ppc 0:8.3.0-2
Dependency Installed:
libgo.ppc 0:8.3.0-2 libgo-devel.ppc 0:8.3.0-2
Complete!
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞6
添加新评论0 条评论