ルギア君の戯言

雑多な記事。

Momonga Linux に Skype を入れる

他の人誰かやっているとは思うけど、Wiki にはなさそうなのでメモ。


Skype は 32 bit 版しか rpm が提供されていないため、32 bit 版の人は楽ですが、64 bit 版の人は針山を登る覚悟で作業してください。なお、PowerPCPowerPC 64 の方々は問題外ですので悪しからず。


以下 64 bit 環境 / development の 2012/12/29 現在の最新バイナリで説明する。
development へのアップデートの方法は こちら


Momonga Linux で、Nonfree 提供している lame を自分でビルドしてインストールしていない場合は (usolame のままの場合) は lame をビルドする作業を飛ばせますので、飛ばしてください。なお、usolame のままの場合も、デフォルトでは /etc/yum.conf で除外する設定になってますので外す必要があります。

レポジトリの設定

development の 32bit バイナリのレポジトリを足します。momonga-trunk の内容は basearch に依存するため、mirrorlist から 32bit 版のバイナリを取ってくることができません。直接 URL 指定してください。可能であれば、これもミラーをご利用ください。(ミラー一覧)


なお、この設定はプロジェクトとしてはサポートを得られなくなるのでご注意を。まあ、そもそも開発版だし。

# 64 ビット
[momonga-devel-x86_64]
name=Momonga Linux devel - x86_64
#baseurl=http://dist.momonga-linux.org/pub/momonga/development/x86_64/os/
mirrorlist=http://www.momonga-linux.org/download/mirrors/momonga-trunk
enabled=1
metadata_expired=1d
gpgcheck=0

# 32 ビット
[momonga-devel-i686]
name=Momonga Linux devel - $basearch
baseurl=http://dist.momonga-linux.org/pub/momonga/development/i686/os/
#mirrorlist=http://www.momonga-linux.org/download/mirrors/momonga-trunk
enabled=1
metadata_expired=1d
gpgcheck=0

なお、yum でのインストールに際し、! がついているもの

! gcc.i686

は、x86_64 とファイルが被っており、yum が Conflict と認識するものです。
これらは依存するパッケージを yum でインストールしたあと、rpm ファイルを直接レポジトリからダウンロードしてきて rpm -ivh --force でインストールします。


作業例。

# yum install gcc.i686       # 依存するパッケージを確認する (N でキャンセルして良い)
# yum install gmp.i686 libgomp.i686 libmpc.i686 mpfr.i686 ppl.i686 ppl-pwl.i686  # 依存するパッケージをインストール
# wget ftp://dist.momonga-linux.org/pub/momonga/development/i686/os/Packages/gcc-4.6.4-0.20121207.1m.mo8.i686.rpm
# rpm -ivh --force gcc-4.6.4-0.20121207.1m.mo8.i686.rpm
# yum reinstall gcc.x86_64   # 被っているファイルを x86_64 のものと取り替えたい場合

なお、バイナリファイル (/bin/*, /usr/bin/*, /usr/sbin/* など) の重複と、ファイルが同一の場合はエラー報告しないようです。


多い場合の減らす方法としては、yumトランザクションログをみて、ひとつのパッケージに対してこのようなメッセージが出ます。

---> パッケージ ffmpeg.i686 0:0.10.4-1m.mo8 は インストール です
--> 依存性の処理をしています: libx264.so.125 のパッケージ: ffmpeg-0.10.4-1m.mo8.i686
--> 依存性の処理をしています: libvpx.so.1 のパッケージ: ffmpeg-0.10.4-1m.mo8.i686
    (省略)
--> 依存性の処理をしています: libSDL-1.2.so.0 のパッケージ: ffmpeg-0.10.4-1m.mo8.i686
--> トランザクションの確認を実行しています。

この直後に続く

--> トランザクションの確認を実行しています。
---> パッケージ SDL.i686 0:1.2.15-1m.mo8 は インストール です
---> パッケージ dirac-libs.i686 0:1.0.2-7m.mo8 は インストール です
---> パッケージ faac.i686 0:1.28-6m.mo8 は インストール です
---> パッケージ gsm.i686 0:1.0.13-4m.mo8 は インストール です
---> パッケージ jack-libs.i686 0:1.9.8-2m.mo8 は インストール です
---> パッケージ libpostproc.i686 0:0.10.4-1m.mo8 は インストール です
---> パッケージ libtheora.i686 0:1.1.1-5m.mo8 は インストール です
---> パッケージ libva.i686 0:1.1.0-3m.mo8 は インストール です
---> パッケージ libvpx.i686 0:1.1.0-1m.mo8 は インストール です
---> パッケージ openjpeg-libs.i686 0:1.5.0-2m.mo8 は インストール です
---> パッケージ schroedinger.i686 0:1.0.11-3m.mo8 は インストール です
---> パッケージ x264.i686 0:0.0.2208-0.20120720.1m.mo8 は インストール です

に出てくるパッケージをインストールすれば揃います。*1

lame をビルドする環境を整える

ははは、こんなの、build-momonga.i686 をインストールすればそれで終わりやろ、とは思った。

# yum install build-momonga.i686
読み込んだプラグイン:aliases, auto-update-debuginfo, changelog, dellsysid, download-order,
                   : downloadonly, etckeeper, fastestmirror, filter-data, fs-
                   : snapshot, installonlyn, keys, langpacks, list-data, local,
                   : merge-conf, post-transaction-actions, presto, priorities,
                   : protectbase, ps, puppetverify, refresh-packagekit, refresh-
                   : updatesd, remove-with-leaves, rpm-warm-cache, security,
                   : show-leaves, tmprepo, tsflags, upgrade-helper, verify,
                   : versionlock
Adding ja_JP to language list
Loading mirror speeds from cached hostfile
 * momonga-devel-x86_64: ftp.iij.ad.jp
Skipping filters plugin, no data
0 packages excluded due to repository protections
パッケージ build-momonga.i686 は利用できません。
エラー: 何もしません
# rpm -q build-momonga
build-momonga-1-20m.mo8.noarch

noarch やん。…というわけで、build-momonga のちからを借りることができず、地道にインストールしていくことになります。

インストールするパッケージは以下の通り。

! gcc.i686
  cpp.i686
  binutils.i686
  glibc-devel.i686
(他依存パッケージ少々)

必要最小限なので、ちらほらライブラリが見つからないとかエラーが出ますが、あまり気にしないことにします。

lame のビルド

いつもどおり、OmoiKondara でビルドするだけです (rpmbuild でも可能だと思いますがおすすめしません。momonga-nonfree-package-builder (MNPB) ではシステムの Arch に固定されているためビルドできません。)。

ただし、

  • すでに x86_64 のバイナリをビルドしている場合には SKIP になってしまいますので、-f を
  • lame は Nonfree ですから -n を
  • i686 のパッケージを作るので、 -A i686

忘れずにつけてください。

多分、ビルドできると思います。できたら、ローカルレポジトリに置きましょう。
(ローカルレポジトリを用意していない場合は、rpm -i でインストールしてください)

$ cd ..../Momonga/pkgs
$ ../tools/OmoiKondara -A i686 -nvf lame
$ ../tools/update-yum

いくつか無理があるので、chrootbuild の方が確実です。
やり方は こちら を参照。lame だけのために用意するのも…という感じもしますが。

Skype に必要なパッケージのインストール

以下の通り入れるのです! 依存の "葉っぱ" に当たる部分は下の 4 つだけです。

! libstdc++.i686
! libidn.i686
! flac.i686
! gd.i686
! libsamplerate.i686
! libdc1394.i686
! zvbi.i686
! ffmpeg.i686 (+ libpostproc.i686, x264.i686 : Loop)
! graphite2.i686
! libcroco.i686
  qt-x11.i686
  qtwebkit.i686
  libXScrnSaver.i686
  libXv.i686
(他依存パッケージ多数)

途中でわからなくなったら、

# yum check

を使えば依存関係の問題を確認できます。

Skype のインストール

skype.com からダウンロードしてきた fedorarpm

# rpm -ivh skype-4.1.0.20-fedora.i586.rpm

でインストールします。依存関係がちゃんとしてればすんなりいくはずです。

起動確認

$ skype

Core 2 Duo の環境では重いです。

f:id:lugia:20121229214940p:plain
快調です。

終わり。

*1:この場合、x264 と libpostproc が ffmpeg に依存している (ループ) のため、x264 と libpostproc は別に ffmpeg と同時に入れることになります。