RealPlayer のバージョン番号が…

vine-users-forum:290 realplayer が投稿されていて、少し気になったので調べてみました。

現時点において、Vine Linux 5.1 上で RealPlayer for Linux http://www.real.com/realplayer/linuxrpm パッケージ RealPlayer11GOLD.rpm がインストールできなくなっています。
実際に、実際に試してみました。

$ sudo apt-get install install-assist-RealPlayer

または、直接ダウンロードしてきて、

$ sudo apt-get install RealPlayer11GOLD.rpm

を実行すると、

エラー: 依存性の欠如:
	rpmlib(PayloadIsLzma) <= 4.4.6-1 は realplay-11.0.2.1744-1.i386 に必要とされています

となりました。

当然ながら、強引に突っ込むこともできません orz

$ sudo rpm -Uvh --force --nodeps RealPlayer11GOLD.rpm 
準備中...                ########################################### [100%]
   1:realplay               ########################################### [100%]
エラー: アーカイブの伸長に失敗: cpio: 不正なマジック

以前はインストールできたんですけど…

そこで、私の手元の Vine Linux 5.1 x86_64 には、apt-get install install-assist-RealPlayer で入れた環境があり、以前ダウンロードされた RealPlayer11GOLD.rpm がキャッシュされていましたので、こいつを調べてみました。

[Vine Linux 5.1 x86_64]
$ cd /var/cache/apt/archives
$ rpm -qp RealPlayer11GOLD.rpm 
RealPlayer-11.0.2.1744-20091006.i586
$ rpm -qp -R RealPlayer11GOLD.rpm 
lsb >= 3.1
/bin/sh  
/bin/sh  
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1

一方、現時点(2010-08-22)の RealPlayer for Linux http://www.real.com/realplayer/linuxhttp://forms.real.com/real/player/download.html?f=unix/RealPlayer11GOLD.rpm から取ってきて調べてみますと、

$ rpm -qp RealPlayer11GOLD.rpm 
realplay-11.0.2.1744-1.i386
$ rpm -qp -R RealPlayer11GOLD.rpm 
/bin/sh  
/bin/sh  
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
/bin/bash  
/bin/sh  
libasound.so.2  
libasound.so.2(ALSA_0.9)  
libasound.so.2(ALSA_0.9.0rc4)  
libatk-1.0.so.0  
libcairo.so.2  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.2)  
libc.so.6(GLIBC_2.3)  
libc.so.6(GLIBC_2.3.2)  
libc.so.6(GLIBC_2.3.4)  
libdl.so.2  
libdl.so.2(GLIBC_2.0)  
libdl.so.2(GLIBC_2.1)  
libfontconfig.so.1  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libgcc_s.so.1(GLIBC_2.0)  
libgdk_pixbuf-2.0.so.0  
libgdk-x11-2.0.so.0  
libglib-2.0.so.0  
libgmodule-2.0.so.0  
libgobject-2.0.so.0  
libgtk-x11-2.0.so.0  
libm.so.6  
libm.so.6(GLIBC_2.0)  
libm.so.6(GLIBC_2.1)  
libpango-1.0.so.0  
libpangocairo-1.0.so.0  
libpthread.so.0  
libpthread.so.0(GLIBC_2.0)  
libpthread.so.0(GLIBC_2.1)  
libpthread.so.0(GLIBC_2.3.2)  
libstdc++.so.6  
libstdc++.so.6(CXXABI_1.3)  
libstdc++.so.6(GLIBCXX_3.4)  
libX11.so.6  
libXcursor.so.1  
libXext.so.6  
libXfixes.so.3  
libXinerama.so.1  
libXi.so.6  
libXrandr.so.2  
libXrender.so.1  
libXv.so.1  
rpmlib(PayloadIsLzma) <= 4.4.6-1


……
………!!!

[以前]
$ rpm -qp RealPlayer11GOLD.rpm 
RealPlayer-11.0.2.1744-20091006.i586

[]
$ rpm -qp RealPlayer11GOLD.rpm 
realplay-11.0.2.1744-1.i386

ダウンロードできる表の rpm のファイル名は変わっていないのに、こっそりと実際のパッケージ名はずいぶんと変わっている!
パッケージ名やバージョン番号の管理がめちゃめちゃじゃないですかー(笑 ヒドイ!

さらに、このパッケージマネージャ rpm に関わる依存:

rpmlib(PayloadIsLzma) <= 4.4.6-1

があると、どうしようもないです。

どうしても Vine Linux 5.1 に最新版の RealPlayer11GOLD.rpm = realplay-11.0.2.1744-1.i386 をインストールしたい場合は、

  1. VineSeedFedora などの適当な rpmLinux ディストリビューションを用意
  2. その Linux にて、RealPlayer11GOLD.rpm を一旦インストール
  3. /opt/real/ を tar で固める
  4. Vine Linux 5.1 で固めた tar を展開して、%post で実行される処理を別途実行する

ことで、事が足りるとと思います。

[別途、rpm 系 Linux ディストリビューションを用意]
$ rpm -qp RealPlayer11GOLD.rpm 
realplay-11.0.2.1744-1.i386
$ sudo rpm -Uvh RealPlayer11GOLD.rpm
$ tar jcvfp realplay-11.0.2.1744-1.tar.bz2 /opt/real

[Vine Linux 5.1]
($ sudo apt-get remove RealPlayer ←必要に応じて、以前の RealPlayer を削除)
$ cd /
$ tar jxcfp /some/where/realplay-11.0.2.1744-1.tar.bz2
$ sudo bash /opt/real/RealPlayer/postinst/postinst.sh

ちなみに、最新版の RealPlayer11GOLD.rpm = realplay-11.0.2.1744-1.i386 の %post で実行される処理は、以下の処理です。

$ rpm -qp --scripts RealPlayer11GOLD.rpm postinstall scriptlet (using /bin/sh):
#!/bin/sh
# postinst script for Helix and RealPlayer
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)
        echo "postinst..."
        if [ -x /opt/real/RealPlayer/postinst/postinst.sh ] ; then
            /opt/real/RealPlayer/postinst/postinst.sh
        fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.



exit 0
preuninstall scriptlet (using /bin/sh):
#!/bin/sh
# prerm script for Helix and RealPlayer
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <prerm> `remove'
#        * <old-prerm> `upgrade' <new-version>
#        * <new-prerm> `failed-upgrade' <old-version>
#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
#        * <deconfigured's-prerm> `deconfigure' `in-favour'
#          <package-being-installed> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    remove|upgrade|deconfigure)
        echo "prerm..."
        if [ -x /opt/real/RealPlayer/postinst/postuninst.sh ] ; then
            /opt/real/RealPlayer/postinst/postuninst.sh
        fi
    ;;

    failed-upgrade)
    ;;

    *)
        echo "prerm called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.



exit 0

RealPlayer って、もう全然使わへんなー(笑