2020-12-18

R のパッケージ依存問題は解消? ~ CentOS Stream ~

R を使うか、それとも Python を使うか?個人的には、状況や用途に応じて、使いやすい方を使えば良いと思っていますが、最近は Python を使う場面が多くなりました。とは言え、R が使えないと不便な場面もまだまだあります。

CentOS 8.3 から CentOS Stream 8 へ移行して R でトラブりましたが、crontab で毎日定時に動かしている R のスクリプトがあるので焦りました。また、なんとか SELinux を無効にせずに(Enforcing のままで)RStudio ServerShiny Server のアプリケーションを動かせるようにしたのだから、R が使えなくなるのはやはり困ります。

そういうわけで、パッケージの依存性問題を解消するためにあれこれリビルドしたのでした [1]

RStudio (Server) の画面

今日、CentOS Stream の更新可能なパッケージを調べました。

[bitwalk@centos-pc ~]$ sudo dnf check-update
[sudo] bitwalk のパスワード:
CentOS Stream 8 - AppStream                                                             4.9 kB/s | 4.4 kB     00:00
CentOS Stream 8 - AppStream                                                             4.0 MB/s | 6.3 MB     00:01
CentOS Stream 8 - BaseOS                                                                6.5 kB/s | 3.9 kB     00:00
CentOS Stream 8 - BaseOS                                                                1.6 MB/s | 2.4 MB     00:01
CentOS Stream 8 - Extras                                                                4.7 kB/s | 1.5 kB     00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64                                   10 kB/s | 9.6 kB     00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64                                  162 kB/s | 104 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                           12 kB/s | 9.7 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                          4.0 MB/s | 8.6 MB     00:02
nginx stable repo                                                                       3.8 kB/s | 2.9 kB     00:00
nginx mainline repo                                                                     5.5 kB/s | 2.9 kB     00:00
nginx mainline repo                                                                      39 kB/s |  58 kB     00:01
PostgreSQL 12 for RHEL/CentOS 8 - x86_64                                                2.0 kB/s | 3.8 kB     00:01

autocorr-en.noarch                                                  1:6.4.7.2-4.el8                            appstream
autocorr-ja.noarch                                                  1:6.4.7.2-4.el8                            appstream
libreoffice-core.x86_64                                             1:6.4.7.2-4.el8                            appstream
libreoffice-data.noarch                                             1:6.4.7.2-4.el8                            appstream
libreoffice-graphicfilter.x86_64                                    1:6.4.7.2-4.el8                            appstream
libreoffice-gtk3.x86_64                                             1:6.4.7.2-4.el8                            appstream
libreoffice-help-en.x86_64                                          1:6.4.7.2-4.el8                            appstream
libreoffice-help-ja.x86_64                                          1:6.4.7.2-4.el8                            appstream
libreoffice-langpack-en.x86_64                                      1:6.4.7.2-4.el8                            appstream
libreoffice-langpack-ja.x86_64                                      1:6.4.7.2-4.el8                            appstream
libreoffice-ogltrans.x86_64                                         1:6.4.7.2-4.el8                            appstream
libreoffice-opensymbol-fonts.noarch                                 1:6.4.7.2-4.el8                            appstream
libreoffice-pyuno.x86_64                                            1:6.4.7.2-4.el8                            appstream
libreoffice-ure.x86_64                                              1:6.4.7.2-4.el8                            appstream
libreoffice-ure-common.noarch                                       1:6.4.7.2-4.el8                            appstream
libreoffice-x11.x86_64                                              1:6.4.7.2-4.el8                            appstream
poppler.x86_64                                                      20.11.0-1.el8                              appstream
poppler-utils.x86_64                                                20.11.0-1.el8                              appstream
texlive-ae.noarch                                                   7:20180414-20.el8                          appstream
texlive-algorithms.noarch                                           7:20180414-20.el8                          appstream
...
(途中省略)
...
texlive-zapfchan.noarch                                             7:20180414-20.el8                          appstream
texlive-zapfding.noarch                                             7:20180414-20.el8                          appstream

SRPMS をリビルドするのに必要な依存パッケージが多く、やむなく CentOS 8.3 の RPM パッケージを持ってきてインストールした poppler、パッケージが多すぎて既存のパッケージを使うしかなかった texlive のパッケージ群が更新対象になっています。

今回は出来るかもしれないと思いアップデートしようとしたところ、あいかわらずのパッケージの依存性の問題でエラーになりましたが、前回とはちょっと様子が異なりました。

[bitwalk@centos-pc ~]$ sudo dnf update
メタデータの期限切れの最終確認: 0:00:40 時間前の 2020年12月18日 16時28分08秒 に実施しました。
エラー:
 問題: cannot install both poppler-20.11.0-1.el8.x86_64 and poppler-0.66.0-27.el8.x86_64
  - package poppler-devel-0.66.0-27.el8.x86_64 requires libpoppler.so.78()(64bit), but none of the providers can be installed
  - package poppler-devel-0.66.0-27.el8.x86_64 requires poppler(x86-64) = 0.66.0-27.el8, but none of the providers can be installed
  - cannot install the best update candidate for package poppler-0.66.0-27.el8.x86_64
  - problem with installed package poppler-devel-0.66.0-27.el8.x86_64
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
[bitwalk@centos-pc ~]$ 

今回は poppler 関係の問題だけのようです。誘いに乗って --allowerasing オプションを付けて更新する価値があるかもしれないと思い切ってやってみました。

[bitwalk@centos-pc ~]$ sudo dnf --allowerasing update
メタデータの期限切れの最終確認: 0:01:11 時間前の 2020年12月18日 16時28分08秒 に実施しました。
依存関係が解決しました。
========================================================================================================================
 パッケージ                                   Arch            バージョン                   リポジトリー           サイズ
========================================================================================================================
アップグレード:
 autocorr-en                                  noarch          1:6.4.7.2-4.el8              appstream              175 k
 autocorr-ja                                  noarch          1:6.4.7.2-4.el8              appstream              148 k
 libreoffice-core                             x86_64          1:6.4.7.2-4.el8              appstream              109 M
...
(途中省略)
...
 libreoffice-x11                              x86_64          1:6.4.7.2-4.el8              appstream              314 k
 poppler                                      x86_64          20.11.0-1.el8                appstream              1.1 M
 poppler-utils                                x86_64          20.11.0-1.el8                appstream              247 k
 texlive-ae                                   noarch          7:20180414-20.el8            appstream              113 k
 texlive-algorithms                           noarch          7:20180414-20.el8            appstream              317 k
...
(途中省略)
...
 texlive-zapfchan                             noarch          7:20180414-20.el8            appstream              111 k
 texlive-zapfding                             noarch          7:20180414-20.el8            appstream               73 k
依存関係パッケージの削除:
 poppler-devel                                x86_64          0.66.0-27.el8                @@commandline          1.1 M

トランザクションの概要
========================================================================================================================
アップグレード  233 パッケージ
削除              1 パッケージ

ダウンロードサイズの合計: 487 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/233): autocorr-ja-6.4.7.2-4.el8.noarch.rpm                                           842 kB/s | 148 kB     00:00
...
(途中省略)
...
(233/233): texlive-zapfchan-20180414-20.el8.noarch.rpm                                  1.7 MB/s | 111 kB     00:00
------------------------------------------------------------------------------------------------------------------------
合計                                                                                    9.9 MB/s | 487 MB     00:49
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                1/1
  scriptletの実行中: texlive-base-7:20180414-20.el8.noarch                                                        1/467
  アップグレード中 : texlive-base-7:20180414-20.el8.noarch                                                        1/467
...
(途中省略)
...
  検証             : texlive-zapfding-7:20180414-19.el8.noarch                                                  466/467
  検証             : poppler-devel-0.66.0-27.el8.x86_64                                                         467/467
Installed products updated.

アップグレード済み:
  autocorr-en-1:6.4.7.2-4.el8.noarch
  autocorr-ja-1:6.4.7.2-4.el8.noarch
  libreoffice-core-1:6.4.7.2-4.el8.x86_64
...
(途中省略)
...
  texlive-zapfchan-7:20180414-20.el8.noarch
  texlive-zapfding-7:20180414-20.el8.noarch

削除しました:
  poppler-devel-0.66.0-27.el8.x86_64

完了しました!
[bitwalk@centos-pc ~]$

リビルドしてインストールした R 関係のパッケージは削除されませんでした。

よく確認もせずに --allowerasing オプションを付けて更新した結果、本来必要なパッケージまでアンインストールされてしまった、という悲劇にはならず、やれやれといったところです。

R 関係のトラブルは、たまたまピンポイントで踏んでしまったのかもしれませんが、もしかすると CentOS Stream はまだそれほど成熟しておらず、パッケージの更新頻度も CentOS に比べればかなり高いのかもしれないと思いました。パッケージの更新頻度については使い続ける中で確認していきます。

参考サイト

  1. bitWalk's: CentOS Stream を使い始めて [2020-12-16]
  2. Rocky Linux

 

ブログランキング・にほんブログ村へにほんブログ村

0 件のコメント: