このサイトは、T4g(ArmベースのAWS独自開発プロセッサ Graviton2 で稼働)で、WordPress を使って構築しています。
当初は Extras Library (amazon-linux-extras) リポジトリで提供していた、lamp-mariadb10.2-php7.2 をインストールして、PHP7.2 と MariaDB10.2 を使っていました。
その後、Extras Library で PHP8 と MariaDB10.5 が切り離して使えるようになったので乗り換え、さらにMariaDB の公式サイトで公開している MariaDB10.8 に乗り換えて今に至ります。
久しぶりに MariaDB を 10.10 にバージョンアップしようとしてハマったのでメモ。
MariaDB は公式サイトで、各種ディストリビューション向けのパッケージを提供してくれているので、そのリポジトリ経由でパッケージをインストールします。
前回、MariaDB10.8 にバージョンアップしたときは、公式ドキュメントを参照し、レポジトリを追加して、そこからインストールしていました。
1 |
sudo vi /etc/yum.repos.d/MariaDB.repo |
追加した内容は以下のようになっていました。
1 2 3 4 5 |
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.8/centos74-aarch64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 |
※Intel系のプロセッサなら、「aarch64」ではなく、「amd64」を指定。
あとは、yum install で素直にインストールできていました。
2022/12/6 時点で、最新版は 10.11.1 がリリースされていましたが、まだ「centos74-aarch64」がなかったので、しかたなく 10.10 系をインストールすることに。
上記の要領で「10.8」を「10.10」に書き換えただけです。
1 2 3 4 5 |
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.10/centos74-aarch64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 |
これで yum install できると思ったらできなかった。
1 |
sudo yum install MariaDB-client MariaDB-server |
以前は、これでインストールできたのになぜ?メッセージは以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd amzn2-core | 3.7 kB 00:00:00 amzn2extra-docker | 3.0 kB 00:00:00 amzn2extra-kernel-5.10 | 3.0 kB 00:00:00 amzn2extra-php8.0 | 3.0 kB 00:00:00 mariadb | 3.4 kB 00:00:00 (1/2): mariadb/updateinfo | 3.1 kB 00:00:02 (2/2): mariadb/primary_db | 34 kB 00:00:02 1 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package MariaDB-client.aarch64 0:10.10.1-1.el7.centos will be installed --> Processing Dependency: perl(DBI) for package: MariaDB-client-10.10.1-1.el7.centos.aarch64 --> Processing Dependency: perl(Data::Dumper) for package: MariaDB-client-10.10.1-1.el7.centos.aarch64 --> Processing Dependency: MariaDB-common for package: MariaDB-client-10.10.1-1.el7.centos.aarch64 --> Processing Dependency: libtinfo.so.5()(64bit) for package: MariaDB-client-10.10.1-1.el7.centos.aarch64 --> Processing Dependency: libncurses.so.5()(64bit) for package: MariaDB-client-10.10.1-1.el7.centos.aarch64 ---> Package MariaDB-server.aarch64 0:10.10.1-1.el7.centos will be installed --> Processing Dependency: galera-4 for package: MariaDB-server-10.10.1-1.el7.centos.aarch64 --> Processing Dependency: pv for package: MariaDB-server-10.10.1-1.el7.centos.aarch64 --> Running transaction check ---> Package MariaDB-common.aarch64 0:10.10.1-1.el7.centos will be installed --> Processing Dependency: MariaDB-compat for package: MariaDB-common-10.10.1-1.el7.centos.aarch64 ---> Package MariaDB-server.aarch64 0:10.10.1-1.el7.centos will be installed --> Processing Dependency: pv for package: MariaDB-server-10.10.1-1.el7.centos.aarch64 ---> Package galera-4.aarch64 0:26.4.12-1.el7a will be installed --> Processing Dependency: socat for package: galera-4-26.4.12-1.el7a.aarch64 --> Processing Dependency: libboost_program_options-mt.so.1.53.0()(64bit) for package: galera-4-26.4.12-1.el7a.aarch64 ---> Package ncurses-compat-libs.aarch64 0:6.0-8.20170212.amzn2.1.3 will be installed ---> Package perl-DBI.aarch64 0:1.627-4.amzn2.0.2 will be installed --> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.amzn2.0.2.aarch64 --> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.amzn2.0.2.aarch64 ---> Package perl-Data-Dumper.aarch64 0:2.145-3.amzn2.0.2 will be installed --> Running transaction check ---> Package MariaDB-compat.aarch64 0:10.10.1-1.el7.centos will be obsoleting ---> Package MariaDB-server.aarch64 0:10.10.1-1.el7.centos will be installed --> Processing Dependency: pv for package: MariaDB-server-10.10.1-1.el7.centos.aarch64 ---> Package boost-program-options.aarch64 0:1.53.0-27.amzn2.0.5 will be installed ---> Package mariadb-libs.aarch64 1:5.5.68-1.amzn2 will be obsoleted ---> Package perl-PlRPC.noarch 0:0.2020-14.amzn2 will be installed --> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.amzn2.noarch --> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.amzn2.noarch --> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.amzn2.noarch --> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.amzn2.noarch ---> Package socat.aarch64 0:1.7.3.2-2.amzn2.0.1 will be installed --> Running transaction check ---> Package MariaDB-server.aarch64 0:10.10.1-1.el7.centos will be installed --> Processing Dependency: pv for package: MariaDB-server-10.10.1-1.el7.centos.aarch64 ---> Package perl-IO-Compress.noarch 0:2.061-2.amzn2 will be installed --> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.amzn2.noarch --> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.amzn2.noarch ---> Package perl-Net-Daemon.noarch 0:0.48-5.amzn2 will be installed --> Running transaction check ---> Package MariaDB-server.aarch64 0:10.10.1-1.el7.centos will be installed --> Processing Dependency: pv for package: MariaDB-server-10.10.1-1.el7.centos.aarch64 ---> Package perl-Compress-Raw-Bzip2.aarch64 0:2.061-3.amzn2.0.2 will be installed ---> Package perl-Compress-Raw-Zlib.aarch64 1:2.061-4.amzn2.0.2 will be installed --> Finished Dependency Resolution Error: Package: MariaDB-server-10.10.1-1.el7.centos.aarch64 (mariadb) Requires: pv You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest |
なるほど。依存関係で「pv」を要求しているけど、見つからないらしい。
amazon-linux-extras にもない。
どうやら 10.9 から「pv」が必要になったらしい。10.8 では不要でした。
Webで検索すると、Pipe Viewer (pv) というものらしく、EPEL リポジトリには入っているらしい。EPEL は嫌いなので使いたくない。
公式サイト でバイナリも配布しているけど、Arm系はない。ソースと x86_64 と AIX(なぜ?) しかない。
しかたないので、こちらのソースをダウンロードして、RPMパッケージを作成してみる。
これは ec2-user で作業しています。
1 2 3 |
sudo yum install rpm-build wget https://www.ivarch.com/programs/sources/pv-1.6.20.tar.gz rpmbuild -tb --clean pv-1.6.20.tar.gz |
うまくいくと、/home/ec2-user/ の中に以下のようなフォルダが作成されます。
1 2 3 4 5 6 |
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS |
今回であれば、/home/ec2-user/rpmbuild/RPMS/aarch64 にRPMパッケージができています。
これをインストールします。
1 |
sudo rpm -ivh /home/ec2-user/rpmbuild/RPMS/aarch64/pv-1.6.20-1.amzn2.aarch64.rpm |
これでパッケージの依存関係が解決できたと思うので、改めて MariaDB をインストールしてみます。
1 |
sudo yum install MariaDB-client MariaDB-server |
できた。よかった。