2018-09-30

NetBSDのパッケージにあるmisc/libreoffice5-binの解析

NetBSD/i386でパッケージmisc/libreoffice5-binからインストールしたLibreOffice 5.1.0.3を使っています。このバージョンは旧いので、もっと新しいバージョンにしたいと思っています。しかしpkgsrcの枠組みでインストールしているため、勝手にLibreOfficeのバージョンを上げても構わないものなのか気になっています。要するに、LibreOfficeのWebサイトに最新版のrpmが置いてあるのは確認していますが、これを勝手にNetBSD上のディレクトリに展開しても構わないのでしょうか。NetBSDのpkgが管理している情報と不整合を生じたり、またはpkgが変更を加えている情報と合わせておくなどの対処をしなくても良いのでしょうか。ちょっと心配です。

どこから調べていったら良いのか困ってしまいましたが、Webで検索していたら、PKG_DEBUG_LEVEL=2を指定すると、pkgsrcでビルドしている途中の詳細情報が得られることが分かりました。つまり以下のようにコマンドを打つことになります。
# make PKG_DEBUG_LEVEL=2 install
処理中の詳細な情報が出力されますが、次のような部分がありました。
: commands for target extract-rpm; set -x; set -e; /usr/pkg/sbin/rpm2pkg -d /usr/pkgsrc/misc/libreoffice5-bin/work/.destdir/usr/pkg -f /usr/pkgsrc/misc/libreoffice5-bin/work/.PLIST.rpm2pkg -s 1 /usr/pkgsrc/misc/libreoffice5-bin/work/LibreOffice_5.1.0.3_Linux_x86_rpm/RPMS/*.rpm
LibreOfficeのサイトで入手できるLibreOffice_5.1.0_Linux_x86_rpm.tar.gzを展開すると、中にrpmが46個入っています。そのrpmを全て展開するために、上述したコマンドが使われているようです。全rpmを展開すると、2,300個くらいのファイルが展開されます。どうやらそれらを/usr/pkgの下に置いているだけのように見えます。ただし一部のファイルはNetBSDの環境に整合するようにパッチがあてられているようです。

LibreOfficeのサイトにはLibreOffice_5.4.7_Linux_x86_rpm.tar.gzというファイルがありますから、これを上述した手順で展開し、/usr/pkgの下に強制的に上書きすれば良いのではないかと考えています。もしLibreOfficeが動かなくなったら、pkg deleteして再インストールすれば復活できると思うので、それほど致命的な事態には陥らないだろうと思います。

調査している最中に、ログを確認していると、次のようなメッセージが出ていることに気付きました。
==========================================================================
The following variables will affect the build process of this package,
libreoffice5-bin-5.1.0.  Their current value is shown below:

        * RPMFILES = /usr/pkgsrc/misc/libreoffice5-bin/work/LibreOffice_5.1.0.3_Linux_x86_rpm/RPMS/*.rpm

You may want to abort the process now with CTRL-C and change their value
before continuing.  Be sure to run `/usr/bin/make clean' after
the changes.
==========================================================================
もしかするとRPMFILESという変数を上手く利用すれば、 もっと簡単にLibreOffice 5.4.7にバージョンアップできるということでしょうか。こちらも試してみる価値がありそうです。

0 件のコメント:

コメントを投稿