1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM i yum update エラー(gcc が古い時

Last updated at Posted at 2022-09-21

5733-OPS が廃止された直後の頃から、IBMi(AS/400) に yum をインストールしていると、初期導入済み gcc が、現在の最新 gcc では廃止された依存ライブラリが、存在しているようで、 yum update or yum upgrade がエラーになり、上手いこといってくれない。今回はそんな時の対処法。

TL;DR

# 念のためIFSをバックアップ
SAV DEV('/QSYS.lib/QGPL.lib/IFS_PKGS.file')
    OBJ(('/QOpenSys/pkgs'))
    SAVACT(*SYNC) CLEAR(*REPLACE) DTACPR(*YES)
# 手動で古いgccを削除
rpm -e --nodeps  gcc-c++-6.3.0-1.ppc
rpm -e --nodeps  gcc-cpp-6.3.0-1.ppc
rpm -e --nodeps  gcc-6.3.0-1.ppc
rpm -e --nodeps  libgcc-6.3.0-1.ppc
# 新しいgccを導入
yum install gcc
# パッケージを更新
yum update

現象

初期の頃に yum を導入している場合、おそらく installed(←コレ初期バンドルのパッケージ) になっている、gcc が古く、依存ライブラリ等が、削除されている関係等で上手く更新されないと思われる。

yum update
更新処理の設定をしています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package gcc-aix.fat 0:6.3.0-25 will be 不要
---> Package gcc-cplusplus-aix.fat 0:6.3.0-25 will be 不要
---> Package gcc-cpp-aix.fat 0:6.3.0-25 will be 不要
---> Package gcc-gfortran-aix.fat 0:6.3.0-25 will be 不要
---> Package gcc6-aix.fat 0:6.3.0-29 will be obsoleting
---> Package gcc6-cplusplus-aix.fat 0:6.3.0-29 will be obsoleting
---> Package gcc6-cpp-aix.fat 0:6.3.0-29 will be obsoleting
---> Package gcc6-gfortran-aix.fat 0:6.3.0-29 will be obsoleting
---> Package gmp-aix.fat 0:5.1.3-13 will be 更新
---> Package gmp-aix.fat 0:5.1.3-14 will be an update
---> Package libgcc-aix.fat 0:6.3.0-25 will be 更新
---> Package libgcc-aix.fat 0:6.3.0-29 will be an update
---> Package libgcc_s1.ppc64 0:6.3.0-25 will be 更新
---> Package libgcc_s1.ppc64 0:6.3.0-29 will be an update
---> Package libmpc.ppc 0:1.0.3-1 will be 不要
--> 依存性の処理をしています: libmpc.a(libmpc.so.3) のパッケージ: gcc-cpp-6.3.0-1.ppc
--> 依存性の処理をしています: libmpc.a(libmpc.so.3) のパッケージ: gcc-c++-6.3.0-1.ppc
--> 依存性の処理をしています: libmpc >= 0.8.1 のパッケージ: gcc-cpp-6.3.0-1.ppc
--> 依存性の処理をしています: libmpc >= 0.8.1 のパッケージ: gcc-c++-6.3.0-1.ppc
---> Package libmpc-aix.fat 0:1.0.3-14 will be 更新
---> Package libmpc-aix.fat 0:1.0.3-15 will be obsoleting
---> Package libstdcplusplus-aix.fat 0:6.3.0-25 will be 更新
---> Package libstdcplusplus-aix.fat 0:6.3.0-29 will be an update
---> Package libstdcplusplus-devel.ppc64 0:6.3.0-25 will be 更新
---> Package libstdcplusplus-devel.ppc64 0:6.3.0-29 will be an update
---> Package libstdcplusplus6.ppc64 0:6.3.0-25 will be 更新
---> Package libstdcplusplus6.ppc64 0:6.3.0-29 will be an update
---> Package mpfr-aix.fat 0:3.1.2-12 will be 更新
---> Package mpfr-aix.fat 0:3.1.2-13 will be an update
--> 依存性解決を終了しました。
エラー: パッケージ: gcc-cpp-6.3.0-1.ppc (installed)
             要求: libmpc.a(libmpc.so.3)
            削除: libmpc-1.0.3-1.ppc (installed)
                libmpc.a(libmpc.so.3)
            次のものにより不要にされた: : libmpc-aix-1.0.3-15.fat (ibm)
                見つかりません
エラー: パッケージ: gcc-c++-6.3.0-1.ppc (installed)
             要求: libmpc.a(libmpc.so.3)
            削除: libmpc-1.0.3-1.ppc (installed)
                libmpc.a(libmpc.so.3)
            次のものにより不要にされた: : libmpc-aix-1.0.3-15.fat (ibm)
                見つかりません
エラー: パッケージ: gcc-c++-6.3.0-1.ppc (installed)
             要求: libmpc >= 0.8.1
            削除: libmpc-1.0.3-1.ppc (installed)
                libmpc = 1.0.3-1
            次のものにより不要にされた: : libmpc-aix-1.0.3-15.fat (ibm)
                見つかりません
エラー: パッケージ: gcc-cpp-6.3.0-1.ppc (installed)
             要求: libmpc >= 0.8.1
            削除: libmpc-1.0.3-1.ppc (installed)
                libmpc = 1.0.3-1
            次のものにより不要にされた: : libmpc-aix-1.0.3-15.fat (ibm)
                見つかりません
 問題を回避するために --skip-broken を用いることができません
** Found 34 pre-existing rpmdb problem(s), 'yum check' output follows:
figlet-2.2.5-1.ppc は次の要求が不足ています:  libc.a(shr.o)
gcc-6.3.0-1.ppc は次の要求が不足ています:  info
gcc-6.3.0-1.ppc は次の要求が不足ています:  /sbin/install-info
gcc-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm >= ('0', '7.1.0.0', None)
gcc-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm < ('0', '7.2.0.0', None)
gcc-6.3.0-1.ppc は次の要求が不足ています:  libc.a(shr.o)
gcc-6.3.0-1.ppc は次の要求が不足ています:  libiconv.a(shr4.o)
gcc-c++-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm >= ('0', '7.1.0.0', None)
gcc-c++-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm < ('0', '7.2.0.0', None)
gcc-c++-6.3.0-1.ppc は次の要求が不足ています:  libc.a(shr.o)
gcc-c++-6.3.0-1.ppc は次の要求が不足ています:  libiconv.a(shr4.o)
gcc-cpp-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm >= ('0', '7.1.0.0', None)
gcc-cpp-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm < ('0', '7.2.0.0', None)
gcc-cpp-6.3.0-1.ppc は次の要求が不足ています:  libc.a(shr.o)
gcc-cpp-6.3.0-1.ppc は次の要求が不足ています:  libiconv.a(shr4.o)
gmp-5.1.3-2.ppc は次の要求が不足ています:  libc.a(shr.o)
iperf-2.0.9-1.ppc は次の要求が不足ています:  libC.a(ansi_32.o)
iperf-2.0.9-1.ppc は次の要求が不足ています:  libC.a(shr.o)
iperf-2.0.9-1.ppc は次の要求が不足ています:  libc.a(shr.o)
iperf-2.0.9-1.ppc は次の要求が不足ています:  libpthreads.a(shr_comm.o)
iperf-2.0.9-1.ppc は次の要求が不足ています:  libpthreads.a(shr_xpg5.o)
libgcc-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm >= ('0', '7.1.0.0', None)
libgcc-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm < ('0', '7.2.0.0', None)
libgcc-6.3.0-1.ppc は次の要求が不足ています:  libc.a(shr.o)
libgcc-6.3.0-1.ppc は次の要求が不足ています:  libpthreads.a(shr_xpg5.o)
libmpc-1.0.3-1.ppc は次の要求が不足ています:  libc.a(shr.o)
libstdc++-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm >= ('0', '7.1.0.0', None)
libstdc++-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm < ('0', '7.2.0.0', None)
libstdc++-6.3.0-1.ppc は次の要求が不足ています:  libc.a(shr.o)
libstdc++-6.3.0-1.ppc は次の要求が不足ています:  libpthreads.a(shr_comm.o)
libstdc++-6.3.0-1.ppc は次の要求が不足ています:  libpthreads.a(shr_xpg5.o)
libstdc++-devel-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm >= ('0', '7.1.0.0', None)
libstdc++-devel-6.3.0-1.ppc は次の要求が不足ています:  AIX-rpm < ('0', '7.2.0.0', None)
mpfr-3.1.2-3.ppc は次の要求が不足ています:  libc.a(shr.o)

対処手順

yum remove で削除すると、依存しているパッケージが全て削除されしまうので、rpm -e --nodeps コマンドで依存関係を無視して、必要な分だけ手動で削除する。

①念のためIFSをバックアップ


SAV DEV('/QSYS.lib/QGPL.lib/IFS_PKGS.file')
    OBJ(('/QOpenSys/pkgs'))
    SAVACT(*SYNC) CLEAR(*REPLACE) DTACPR(*YES)

②次に古いgccを手動で削除

rpm -e --nodeps  gcc-c++-6.3.0-1.ppc
rpm -e --nodeps  gcc-cpp-6.3.0-1.ppc
rpm -e --nodeps  gcc-6.3.0-1.ppc
rpm -e --nodeps  libgcc-6.3.0-1.ppc

③新しいgccをインストール

yum install gcc
======================================================================================================================================================================
 パッケージ                                       アーキテクチャ                      バージョン                               リポジトリー                      容量
======================================================================================================================================================================
インストールしています:
 gcc                                              noarch                              6-2                                      ibm                              6.3 k
 gcc6-aix                                         fat                                 6.3.0-29                                 ibm                               25 M
     置き換えています  gcc-aix.fat 6.3.0-25
 gcc6-cplusplus-aix                               fat                                 6.3.0-29                                 ibm                              9.1 M
     置き換えています  gcc-cplusplus-aix.fat 6.3.0-25
 gcc6-cpp-aix                                     fat                                 6.3.0-29                                 ibm                              8.2 M
     置き換えています  gcc-cpp-aix.fat 6.3.0-25
 gcc6-gfortran-aix                                fat                                 6.3.0-29                                 ibm                              8.8 M
     置き換えています  gcc-gfortran-aix.fat 6.3.0-25
 libmpc-aix                                       fat                                 1.0.3-15                                 ibm                               63 k
     置き換えています  libmpc.ppc 1.0.3-1
依存性関連での更新をします。:
 gmp-aix                                          fat                                 5.1.3-14                                 ibm                              294 k
 libgcc-aix                                       fat                                 6.3.0-29                                 ibm                              189 k
 libstdcplusplus-aix                              fat                                 6.3.0-29                                 ibm                              3.3 M
 libstdcplusplus6                                 ppc64                               6.3.0-29                                 ibm                              3.3 M
 mpfr-aix                                         fat                                 3.1.2-13                                 ibm                              223 k

トランザクションの要約
======================================================================================================================================================================
インストール        6 Packages
Upgrade       5 Packages

総ダウンロード容量: 59 M

④パッケージを更新

yum update

======================================================================================================================================================================
 パッケージ                                         アーキテクチャ                     バージョン                              リポジトリー                      容量
======================================================================================================================================================================
更新:
 libgcc_s1                                          ppc64                              6.3.0-29                                ibm                              198 k
 libstdcplusplus-devel                              ppc64                              6.3.0-29                                ibm                              1.3 M

トランザクションの要約
======================================================================================================================================================================
Upgrade       2 Packages

総ダウンロード容量: 1.5 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
(1/2): libgcc_s1-6.3.0-29.ibmi7.2.ppc64.rpm                                                                                                    | 198 kB  00:00:00
(2/2): libstdcplusplus-devel-6.3.0-29.ibmi7.2.ppc64.rpm                                                                                        | 1.3 MB  00:00:03
--------------------------------------------------------------------------------------------------------------------------------------------------------------------

以上で正常に戻った、めでたしめでたし。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?