2018-10-22現在、Debian sidにおけるcalibreの最新版はqtbase-abi-5-11-2へ対応したversionへ更新されたので、以下の不整合は発生しない。
*** 更新情報ここまで ***
calibreというebook readerがある。
読むだけではなく、formatの変換なども行える (swiss army knife的に)多機能なsoftwareで、個人的に使えないと非常に困るのだが、先にupdateされるQt libraryへのdependencyで不整合を起こしuninstallされ (かけ)ることがままある。
最近も、Qt relatedなpackagesが更新されて、これらが提供するvirtual packageであるqtbase-abi-5-11-0がqtbase-abi-5-11-2へ上がった。calibreの実体programを提供するpackageであるcalibre-bin 3.32.0_dfsg-1+b1はqtbase-abi-5-11-0にdependしているため不整合を起こしてuninstallされかけた。
calibreを新しいQtとlinkしてbuildした上でcontrolを修正するのが最も真っ当な方法だが、たかが5.11.0 → 5.11.2の変化ならどうにかなるだろう、という根拠のない推測からdependencyをごまかしてuninstallされないようにした。実際、calibreは無事立ち上がり、特に問題なく動作しているので、ひとまずこの状態で使ってみる。
無論、ABIのversionが変わっている以上互換性は保証されず、強制的にinstallしても動作しなかったり、意図しない動作になったりする可能性があるので注意。
やり方の概要
以前にも同じようなことをした記憶があったので検索してみた所、
cf. https://typeinf-memo.blogspot.com/2015/08/debian-unstable-sidexperimental.html
に似たような記事を書いていた。
前回はcontrolから不要なdependencyを削除していたが、今回もやることは余り変わらない (今回はversionを書き換えるだけ)。
* binary packageをdownloadして展開
* control.tar.xzを展開してcontrolを書き換える
* 改編したcontrolを含むcontrol.tar.xzを生成
* 変更したcontrol.tar.xzを含むbinary packageを生成
* installして動作確認
具体的な手順
* calibre-binのbinary packageをdownload
% apt-get download calibre-bin
* arでbinary packageを展開
% ar x calibre-bin_3.32.0_dfsg-1+b1_amd64.deb
control.tar.xz、data.tar.xz、debian-binaryが生成される。
* control.tar.xzを展開
% tar xJf control.tar.xz
control、md5sumsが生成される
* 適当なtext editor (vimなど)でcontrolを書き換える。今回の場合"qtbase-abi-5-11-0"を"qtbase-abi-5-11-2"へ書き換えて保存する
* 書き換えたcontrolを含むcontrol.tar.xzを作る
% tar --create --file control.tar.xz --xz md5sums control
* 作り直したcontrol.tar.xzを含むbinary packageを生成する
% ar rcs calibre-bin_3.32.0_dfsg-1+b1_amd64.deb debian-binary control.tar.xz data.tar.xz
* dpkg -iでinstallし動作確認
% sudo dpkg -i calibre-bin_3.32.0_dfsg-1+b1_amd64.deb
* aptitudeなどを使っている場合はupdateによる書き換えを防ぐためにcalibre-binをholdしておくとよい
おつかれさまでした。
0 件のコメント:
コメントを投稿