2023-09-30

【LMDE】backports からのインストール方法が間違っていた

LMDE は Debian の backports リポジトリを標準設定で搭載しているので、かなり新しいパッケージもインストールできるようになっています。

例えば、LMDE 6 の Linux kernel は初期状態では 6.1 ですが、Debian 12 backports には 6.4 が配信されています。自動的に backports のパッケージをインストールすることはできませんが、必要に応じて手動ではインストールすることができます。

この手動インストールの方法を調べてみたところ、以下のコマンドに辿り着きました。

apt install linux-image-amd64/bookworm-backports

経験のある方はおわかりかと思いますが、正しくは以下のコマンドです。

apt install -t bookworm-backports linux-image-amd64

最初のコマンドは指定したパッケージだけをインストールしてくれます。依存パッケージや推奨パッケージはインストールされません。パッケージの構成をよく理解している場合には有効なのかと思います。

Linux kernel については最初のコマンドでも一応うごいているので誤りに気づきませんでした。


誤りに気づいたのは以下のコマンドです。

$ apt install libreoffice/bookworm-backports
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
'libreoffice' のバージョン '4:7.5.6-1~bpo12+1' (Debian Backports:stable-backports [amd64]) を選択しました
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 libreoffice : 依存: libreoffice-core (= 4:7.5.6-1~bpo12+1) しかし、4:7.4.7-1 はインストールされようとしています
               推奨: fonts-crosextra-caladea しかし、インストールされようとしていません
               推奨: fonts-crosextra-carlito しかし、インストールされようとしていません
               推奨: fonts-dejavu しかし、インストールされようとしていません
               推奨: fonts-linuxlibertine しかし、インストールされようとしていません
               推奨: fonts-noto-core しかし、インストールされようとしていません
               推奨: fonts-noto-extra しかし、インストールされようとしていません
               推奨: fonts-noto-ui-core しかし、インストールされようとしていません
               推奨: fonts-sil-gentium-basic しかし、インストールされようとしていません
               推奨: libreoffice-nlpsolver しかし、インストールされようとしていません
               推奨: libreoffice-report-builder しかし、インストールされようとしていません
               推奨: libreoffice-script-provider-bsh しかし、インストールされようとしていません
               推奨: libreoffice-script-provider-js しかし、インストールされようとしていません
               推奨: libreoffice-script-provider-python しかし、インストールされようとしていません
               推奨: libreoffice-sdbc-mysql しかし、インストールされようとしていません
               推奨: libreoffice-sdbc-postgresql しかし、インストールされようとしていません
               推奨: libreoffice-wiki-publisher しかし、インストールされようとしていません
               推奨: libreoffice-java-common (>= 4:7.5.6~) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

普段は Flatpak 版の LibreOffice を使っているのですが、ちょっと試したいことがあってアンインストール済みの deb 版の LibreOffice を再インストールすることにしたのです。

ところが apt install コマンドがエラーになってしまったので慌てて原因を調べだしたという訳です。

エラーメッセージの内容としては「依存パッケージ」である libreoffice-core のバージョンが古いものをインストールしようとしている、というものでした。

「apt コマンドってそういうのを自動で処理してくれるんじゃないの?」と思いつつも「何かオプションを指定すると解消するのでは?」ということで調べだし、試してみたのが以下のコマンドです。

$ apt install -t bookworm-backports libreoffice
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下の追加パッケージがインストールされます:
  ant ant-optional firebird3.0-common firebird3.0-common-doc firebird3.0-server-core firebird3.0-utils
  fonts-crosextra-caladea fonts-crosextra-carlito fonts-dejavu fonts-dejavu-extra fonts-linuxlibertine fonts-noto-core
  fonts-noto-extra fonts-noto-ui-core fonts-opensymbol fonts-sil-gentium fonts-sil-gentium-basic java-wrappers
  libactivation-java libapache-pom-java libbase-java libbatik-java libbcmail-java libbcpkix-java libbcprov-java
  libbcutil-java libbsh-java libcommons-collections3-java libcommons-io-java libcommons-logging-java
  libcommons-parent-java libehcache-java libfbclient2 libflute-java libfonts-java libformula-java libib-util
  libitext-java libjaxp1.3-java libjcommon-java liblayout-java liblibreoffice-java libloader-java libmail-java
  libmariadb3 libpentaho-reporting-flow-engine-java libpixie-java libpq5 libreoffice-base libreoffice-base-core
  libreoffice-base-drivers libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-impress
  libreoffice-java-common libreoffice-math libreoffice-nlpsolver libreoffice-report-builder
  libreoffice-report-builder-bin libreoffice-script-provider-bsh libreoffice-script-provider-js
  libreoffice-script-provider-python libreoffice-sdbc-firebird libreoffice-sdbc-hsqldb libreoffice-sdbc-mysql
  libreoffice-sdbc-postgresql libreoffice-style-colibre libreoffice-wiki-publisher libreoffice-writer
  librepository-java libsac-java libserializer-java libtommath1 libuno-cppu3 libuno-cppuhelpergcc3-3
  libuno-purpenvhelpergcc3-3 libuno-sal3 libuno-salhelpergcc3-3 libunoloader-java libxml-commons-external-java
  libxml-java libxmlgraphics-commons-java mariadb-common mysql-common python3-uno uno-libs-private ure ure-java
提案パッケージ:
  ant-doc default-jdk | java-compiler | java-sdk antlr javacc junit junit4 jython libbcel-java libbsf-java
  libcommons-net-java libjdepend-java libjsch-java liblog4j1.2-java liboro-java libregexp-java libxalan2-java
  libxml-commons-resolver1.1-java libxz-java firebird3.0-server firebird3.0-doc librhino-java
  libcommons-collections3-java-doc libcommons-io-java-doc libavalon-framework-java libcommons-logging-java-doc
  libexcalibur-logkit-java libfonts-java-doc libformula-java-doc libjcommon-java-doc libloader-java-doc
  libmail-java-doc libjfreereport-java-doc gpa hyphen-hyphenation-patterns imagemagick
  | graphicsmagick-imagemagick-compat libreoffice-gnome | libreoffice-plasma libreoffice-grammarcheck libreoffice-help
  libreoffice-l10n libreoffice-librelogo myspell-dictionary mythes-thesaurus openclipart-libreoffice pstoedit
  libofficebean-java libjtds-java libsqliteodbc | tdsodbc | odbc-mdbtools default-mysql-server | virtual-mysql-server
  postgresql mediawiki librepository-java-doc libxmlgraphics-commons-java-doc
以下のパッケージが新たにインストールされます:
  ant ant-optional firebird3.0-common firebird3.0-common-doc firebird3.0-server-core firebird3.0-utils
  fonts-crosextra-caladea fonts-crosextra-carlito fonts-dejavu fonts-dejavu-extra fonts-linuxlibertine fonts-noto-core
  fonts-noto-extra fonts-noto-ui-core fonts-sil-gentium fonts-sil-gentium-basic java-wrappers libactivation-java
  libapache-pom-java libbase-java libbatik-java libbcmail-java libbcpkix-java libbcprov-java libbcutil-java
  libbsh-java libcommons-collections3-java libcommons-io-java libcommons-logging-java libcommons-parent-java
  libehcache-java libfbclient2 libflute-java libfonts-java libformula-java libib-util libitext-java libjaxp1.3-java
  libjcommon-java liblayout-java liblibreoffice-java libloader-java libmail-java libmariadb3
  libpentaho-reporting-flow-engine-java libpixie-java libpq5 libreoffice libreoffice-base libreoffice-base-core
  libreoffice-base-drivers libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-impress
  libreoffice-java-common libreoffice-math libreoffice-nlpsolver libreoffice-report-builder
  libreoffice-report-builder-bin libreoffice-script-provider-bsh libreoffice-script-provider-js
  libreoffice-script-provider-python libreoffice-sdbc-firebird libreoffice-sdbc-hsqldb libreoffice-sdbc-mysql
  libreoffice-sdbc-postgresql libreoffice-wiki-publisher libreoffice-writer librepository-java libsac-java
  libserializer-java libtommath1 libxml-commons-external-java libxml-java libxmlgraphics-commons-java mariadb-common
  mysql-common python3-uno ure ure-java
以下のパッケージはアップグレードされます:
  fonts-opensymbol libreoffice-style-colibre libuno-cppu3 libuno-cppuhelpergcc3-3 libuno-purpenvhelpergcc3-3
  libuno-sal3 libuno-salhelpergcc3-3 libunoloader-java uno-libs-private
アップグレード: 9 個、新規インストール: 82 個、削除: 0 個、保留: 48 個。
218 MB のアーカイブを取得する必要があります。
この操作後に追加で 774 MB のディスク容量が消費されます。
続行しますか? [Y/n] 

大成功です。

ていうか、「apt install パッケージ名/bookworm-backports」と「apt install -t bookworm-backports パッケージ名」は同じ動作だと思い込んでいたのですが、これが全然違う動作であったというのが原因でした。勉強になりました。