由于开源软件包的依赖关系比较复杂,曾使得在AIX上安装开源软件比较麻烦,对于RPM包依赖问题,用户往往需要花费大量时间,去Perzl的网站下载相关开源包的依赖关系,以解决依赖问题:
http://www.perzl.org/aix/index.php?n=FAQs.FAQs
AIX自2016引入了yum用以自动处理依赖关系以来,RPM依赖问题即迎刃而解。了解Redhat Linux,对yum亦不陌生。以下即为在AIX上安装、配置yum的操作过程:
1
建议AIX版本
AIX 6.1 TL9 SP6 或更新版本
AIX 7.1 TL4 或更新版本
AIX 7.2 或更新版本
2
确认AIX上RPM的版本
确认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/
3
安装yum包
下载最新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%]
4
yum安装源配置
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
5
安装软件
接下来的一切与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 InstallProcess
ResolvingDependencies
-->Running transaction check
--->Package gcc.ppc 0:8.3.0-2 will be installed
-->ProcessingDependency: libgcc =8.3.0-2forpackage: gcc-8.3.0-2.ppc
-->ProcessingDependency: gcc-cpp =8.3.0-2forpackage: gcc-8.3.0-2.ppc
-->ProcessingDependency: info forpackage: gcc-8.3.0-2.ppc
-->ProcessingDependency: libiconv.a(libiconv.so.2)forpackage: gcc-8.3.0-2.ppc
-->Running transaction check
--->Package gcc-cpp.ppc 0:8.3.0-2 will be installed
-->ProcessingDependency: mpfr >=4.0.2forpackage: gcc-cpp-8.3.0-2.ppc
-->ProcessingDependency: libmpc >=1.1.0forpackage: gcc-cpp-8.3.0-2.ppc
-->ProcessingDependency: zlib >=1.2.3-3forpackage: gcc-cpp-8.3.0-2.ppc
-->ProcessingDependency: gmp >=6.1.2forpackage: gcc-cpp-8.3.0-2.ppc
-->ProcessingDependency: libmpc.a(libmpc.so.3)forpackage: gcc-cpp-8.3.0-2.ppc
-->ProcessingDependency: libmpfr.a(libmpfr.so.6)forpackage: gcc-cpp-8.3.0-2.ppc
-->ProcessingDependency: libgmp.a(libgmp.so.10)forpackage: gcc-cpp-8.3.0-2.ppc
--->Package info.ppc 0:6.6-2 will be installed
-->ProcessingDependency: ncurses >=6.1-2forpackage: info-6.6-2.ppc
-->ProcessingDependency: gettext >=0.19.8.1-4forpackage: info-6.6-2.ppc
-->ProcessingDependency: libncurses.a(libncurses.so.6)forpackage: 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
-->ProcessingDependency: glib2 >=2.56.1-2forpackage: gettext-0.19.8.1-5.ppc
-->ProcessingDependency: libunistring >=0.9.9-2forpackage: gettext-0.19.8.1-5.ppc
-->ProcessingDependency: libxml2 >=2.9.7forpackage: gettext-0.19.8.1-5.ppc
-->ProcessingDependency: libunistring.a(libunistring.so.2)forpackage: gettext-0.19.8.1-5.ppc
--->Package gmp.ppc 0:6.1.2-1 will be installed
-->ProcessingDependency: libstdc++>=4.2.3-2forpackage: gmp-6.1.2-1.ppc
-->ProcessingDependency: libstdc++.a(libstdc++.so.6)forpackage: 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
-->ProcessingDependency: libffi >=3.0.10-1forpackage: glib2-2.56.1-2.ppc
-->ProcessingDependency: libffi.a(libffi.so.6)forpackage: 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
-->ProcessingDependency: xz-libs >=5.2.2-1forpackage: libxml2-2.9.9-1.ppc
-->ProcessingDependency: liblzma.a(liblzma.so.5)forpackage: 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
-->FinishedDependencyResolution
DependenciesResolved
===============================================================================================================================================
PackageArchVersionRepositorySize
===============================================================================================================================================
Installing:
gcc ppc 8.3.0-2 AIX_Toolbox_72 28 M
Installingfor 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
Updatingfor dependencies:
gettext ppc 0.19.8.1-5 AIX_Toolbox 7.6 M
glib2 ppc 2.56.1-2 AIX_Toolbox 28 M
TransactionSummary
===============================================================================================================================================
Install15Packages
Upgrade2Packages
Total download size:104 M
Isthis ok [y/N]: y
DownloadingPackages:
(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
-----------------------------------------------------------------------------------------------------------------------------------------------
Total10 MB/s |104 MB 00:10
RunningTransactionCheck
RunningTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing: libgcc-8.3.0-2.ppc1/19
Installing: zlib-1.2.11-1.ppc2/19
Installing: libstdc++-8.3.0-2.ppc3/19
Installing: gmp-6.1.2-1.ppc4/19
Installing: mpfr-4.0.2-2.ppc5/19
Installing: ncurses-6.2-1.ppc6/19
Installing: libmpc-1.1.0-1.ppc7/19
Installing: xz-libs-5.2.5-1.ppc8/19
Installing: libffi-3.2.1-3.ppc9/19
Installing: libiconv-1.16-1.ppc10/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.ppc11/19
Updating: glib2-2.56.1-2.ppc12/19
Installing: libunistring-0.9.9-2.ppc13/19
Updating: gettext-0.19.8.1-5.ppc14/19
Installing: info-6.6-2.ppc15/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.ppc16/19
Installing: gcc-cpp-8.3.0-2.ppc17/19
Cleanup: glib2-2.14.6-2.ppc18/19
Cleanup: gettext-0.19.7-1.ppc19/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
DependencyInstalled:
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
DependencyUpdated:
gettext.ppc 0:0.19.8.1-5 glib2.ppc 0:2.56.1-2
Complete!
# yum install gcc-c++
Setting up InstallProcess
ResolvingDependencies
-->Running transaction check
--->Package gcc-c++.ppc 0:8.3.0-2 will be installed
-->ProcessingDependency: libstdc++-devel =8.3.0-2forpackage: gcc-c++-8.3.0-2.ppc
-->Running transaction check
--->Package libstdc++-devel.ppc 0:8.3.0-2 will be installed
-->FinishedDependencyResolution
DependenciesResolved
===============================================================================================================================================
PackageArchVersionRepositorySize
===============================================================================================================================================
Installing:
gcc-c++ ppc 8.3.0-2 AIX_Toolbox_72 11 M
Installingfor dependencies:
libstdc++-devel ppc 8.3.0-2 AIX_Toolbox_72 3.3 M
TransactionSummary
===============================================================================================================================================
Install2Packages
Total download size:15 M
Installed size:15 M
Isthis ok [y/N]: y
DownloadingPackages:
(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
-----------------------------------------------------------------------------------------------------------------------------------------------
Total10 MB/s |15 MB 00:01
RunningTransactionCheck
RunningTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing: libstdc++-devel-8.3.0-2.ppc1/2
Installing: gcc-c++-8.3.0-2.ppc2/2
Installed:
gcc-c++.ppc 0:8.3.0-2
DependencyInstalled:
libstdc++-devel.ppc 0:8.3.0-2
Complete!
# yum install gcc-go
Setting up InstallProcess
ResolvingDependencies
-->Running transaction check
--->Package gcc-go.ppc 0:8.3.0-2 will be installed
-->ProcessingDependency: libgo-devel =8.3.0-2forpackage: gcc-go-8.3.0-2.ppc
-->ProcessingDependency: libgo =8.3.0-2forpackage: gcc-go-8.3.0-2.ppc
-->ProcessingDependency: libgo.a(libgo.so.13)forpackage: 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
-->FinishedDependencyResolution
DependenciesResolved
===============================================================================================================================================
PackageArchVersionRepositorySize
===============================================================================================================================================
Installing:
gcc-go ppc 8.3.0-2 AIX_Toolbox_72 47 M
Installingfor 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
TransactionSummary
===============================================================================================================================================
Install3Packages
Total download size:111 M
Installed size:111 M
Isthis ok [y/N]: y
DownloadingPackages:
(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
-----------------------------------------------------------------------------------------------------------------------------------------------
Total11 MB/s |111 MB 00:10
RunningTransactionCheck
RunningTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing: libgo-8.3.0-2.ppc1/3
Installing: libgo-devel-8.3.0-2.ppc2/3
Installing: gcc-go-8.3.0-2.ppc3/3
Installed:
gcc-go.ppc 0:8.3.0-2
DependencyInstalled:
libgo.ppc 0:8.3.0-2 libgo-devel.ppc 0:8.3.0-2
Complete!
AIX技术知识集锦
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.