删除某些软件包后无法在 AIX 中安装任何 rpm 软件包

删除某些软件包后无法在 AIX 中安装任何 rpm 软件包

我们有一台正在运行的 AIX 6.1 服务器;它没有大多数免费软件包:

root@srv/ins:rpm -qa
cdrecord-1.9-7
mkisofs-1.13-4
vnc-3.3.3r2-6
openssl-0.9.7l-2
unzip-5.51-1
bash-4.2-3
AIX-rpm-6.1.8.15-12

我们需要 node.js,因此我尝试使用该命令从 bullfreeware.com 网站安装其依赖项rpm -ivh。最后,我让node程序在这种状态下运行:

root@srv/ins:rpm -qa
cdrecord-1.9-7.ppc
mkisofs-1.13-4.ppc
AIX-rpm-6.1.8.15-29.ppc
gdbm-1.12-1.ppc
bzip2-1.0.6-3.ppc
libffi-3.2.1-3.ppc
libstdc++-devel-6.3.0-2.ppc
info-6.4-1.ppc
sqlite-3.27.1-1.ppc
mpfr-3.1.2-3.ppc
gcc-cpp-6.3.0-2.ppc
gcc-c++-6.3.0-2.ppc
ca-certificates-2017.07.17-1.ppc
rsync-3.1.3-2.ppc
gettext-0.19.8.1-3.ppc
openssl-1.1.0g-1withsslv2.ppc
python-2.7.16-1.ppc
libidn-1.24-1.ppc
openldap-2.4.46-1.ppc
xz-libs-5.2.4-1.ppc
libunistring-0.9.9-2.ppc
libICE-1.0.8-1.ppc
shared-mime-info-1.6-1.ppc
libpng-1.6.27-2.ppc
libtiff-4.0.6-2.ppc
vim-common-7.4-4.ppc
pixman-0.34.0-1.ppc
fontconfig-2.11.95-2.ppc
atk-2.20.0-2.ppc
xcb-proto-1.12-1.ppc
libX11-1.6.3-1.ppc
libXrandr-1.4.2-1waixX11.ppc
unzip-5.51-1.ppc
bash-4.2-3.ppc
vnc-3.3.3r2-6.ppc
libgcc-6.3.0-2.ppc
perl-5.28.1-1.ppc
expat-2.2.6-1.ppc
libstdc++-6.3.0-2.ppc
ncurses-6.1-2.ppc
readline-8.0-1.ppc
zlib-1.2.11-1.ppc
gmp-6.1.2-1.ppc
libmpc-1.0.3-1.ppc
gcc-6.3.0-2.ppc
grep-3.1-1.ppc
db-6.2.32-2.ppc
less-487-1.ppc
glib2-2.56.1-2.ppc
libssh2-1.8.0-1.ppc
libiconv-1.14-1.ppc
cyrus-sasl-2.1.26-3.ppc
curl-7.64.0-1ldapssl.ppc
libxml2-2.9.7-1.ppc
libyaml-0.1.7-1.ppc
libSM-1.2.1-1.ppc
libjpeg-9b-2.ppc
jbigkit-libs-2.0-3.ppc
gdk-pixbuf-2.35.1-1waixX11.ppc
freetype2-2.4.4-3.ppc
lzo-2.10-1.ppc
harfbuzz-1.2.6-1.ppc
pkg-config-0.25-3.ppc
libxcb-1.12-1waixX11.ppc
libXrender-0.9.9-1.ppc
root@srv:/opt/freeware/bin/node app.js 

...但npm由于 git 软件包而无法工作,并且 git 需要另一个版本的 gettext 软件包,而 gettext 是许多软件包(包括 AIX-rpm-6.1.8.15-30.ppc)的依赖项。我开始使用rpm -e删除其依赖项来安装它们;我最后的命令是:

root@srv/ins:rpm -e sqlite
root@srv/ins:rpm -e readline
error: Failed to initialize NSS library

此后我无法安装任何东西!这是错误:

root@srv/ins:rpm -ivh sqlite-3.27.1-1.ppc.rpm
error: Failed dependencies:
    libc.a(shr.o) is needed by sqlite-3.27.1-1.ppc
    libc.a(shr_64.o) is needed by sqlite-3.27.1-1.ppc
    libgcc >= 6.3.0 is needed by sqlite-3.27.1-1.ppc
    libgcc_s.a(shr.o) is needed by sqlite-3.27.1-1.ppc
    libncurses.a(libncurses.so.6) is needed by sqlite-3.27.1-1.ppc
    libpthread.a(shr_xpg5.o) is needed by sqlite-3.27.1-1.ppc
    libpthread.a(shr_xpg5_64.o) is needed by sqlite-3.27.1-1.ppc
    libreadline.a(libreadline.so.7) is needed by sqlite-3.27.1-1.ppc
    libz.a(libz.so.1) is needed by sqlite-3.27.1-1.ppc
    ncurses >= 6.1 is needed by sqlite-3.27.1-1.ppc
    readline >= 7.0-5 is needed by sqlite-3.27.1-1.ppc
    zlib is needed by sqlite-3.27.1-1.ppc

我现在应该怎么做?

答案1

我终于解决了这个问题

1-从 ibm 站点下载 rpm.rte 包并执行:

 installp -aXYF -d /path/to/rpm/rpm_rte rpm.rte

2-从 bullfreeware.com 下载 aix6.1 的完整 gcc zip 包(94mb)并将其解压到文件夹中并使用

rpm -Uvh *rpm

3-下载完整的 git zip 包,不包括上一步中安装的包(130mb),然后像步骤 2 一样安装它并执行以下命令:

export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib:/usr/lib

4-从 bullfreeware.com 下载并安装 cpio,并按照与 2018 年 1 月 17 日相关的步骤修复 libintl.so.9 问题,如下所示:

rpm2cpio gettext-0.19.8-1.aix6.1.ppc.rpm | /opt/freeware/bin/cpio -iv opt/freeware/lib/libintl.a 
--> opt/freeware/lib/libintl.a 
# ar xv opt/freeware/lib/libintl.a libintl.so.9 
x - libintl.so.9 
# ar q /opt/freeware/lib/libintl.a libintl.so.9 
# ar -X64 xv opt/freeware/lib/libintl.a libintl.so.9 
x - libintl.so.9 
# ar -X64 q /opt/freeware/lib/libintl.a libintl.so.9 

我已经安装了 cdrecord、vnc 和 mkisofs ,只是因为它们是上次安装的。对 rpm 的最终查询如下:

root@srv:/ins>rpm -qa
cdrecord-1.9-7.ppc
libgcc-8.3.0-1.ppc
libstdc++-8.3.0-1.ppc
mpfr-3.1.4-1.ppc
libmpc-1.0.3-2.ppc
libffi-3.2.1-2.ppc
libxml2-2.9.4-2.ppc
libiconv-1.14-22.ppc
bash-4.4-4.ppc
gcc-8.3.0-1.ppc
vnc-3.3.3r2-6.ppc
mkisofs-1.13-4.ppc
db-4.8.24-4.ppc
perl-5.28.0-1.ppc
expat-2.2.6-1.ppc
sqlite-3.7.15.2-3.ppc
rsync-3.1.2-3.ppc
unixODBC-2.3.6-2.ppc
libidn-1.35-1.ppc
less-481-1.ppc
python-2.7.15-5.ppc
git-2.21.0-6.ppc
lynx-2.8.4-2.ppc
AIX-rpm-6.1.8.15-7.ppc
zlib-1.2.11-1.ppc
gmp-6.1.1-1.ppc
ncurses-6.1-1.ppc
xz-libs-5.2.2-2.ppc
glib2-2.48.1-2.ppc
libunistring-0.9.6-2.ppc
gettext-0.19.8-1.ppc
info-6.4-1.ppc
gcc-cpp-8.3.0-1.ppc
unzip-6.0-3.ppc
readline-7.0-1.ppc
gdbm-1.10-1.ppc
openssl-1.1.0g-1withsslv2.ppc
libssh2-1.8.0-1.ppc
vim-common-7.4-4.ppc
libtool-ltdl-2.4.6-2.ppc
openldap-2.4.44-5.ppc
curl-7.64.0-1ldapssl.ppc
bzip2-1.0.6-2.ppc
vim-enhanced-7.4-4.ppc
cpio-2.12-2.ppc

4-现在在 aix 中提取 node.js tar 文件并执行以下命令:

export PATH=$PATH:/path/to/nodejs/bin

5-终于完成了

node app.js

相关内容