平衡点


2009/09/28

_ Adobe Reader 9.1 on Debian unstable

Adobe Reader 9.1 (日本語版)を Debian unstable で使えるようになるまでのメモ.

latex-beamer で Jobs の Keynote スライド風のグラデーション背景を作ってみた訳ですが, evince で表示すると縞々表示になってしまって.

(´・ω・`)

多分, スクリーンに写した場合には気にならない縞々なんだろうけれど.

以下は Debian unstable, amd64 版の場合の話. i386 なら特に問題無いんじゃないかな(知らんけれど).嵌り所は, non-free なソフトウェアにありがちな「i386版しか提供されていません」って奴です.

毎度毎度の無保証です. ツッコミ修正大歓迎.

方法その1: chroot

...ヘタレです.

i386 の chroot 環境を作っておいて, そこに Adobe Reader を install する.chroot 環境については以前書いたけれど, 日本語では例えば

なんかを参考に.

schroot で i386 の acroread を動かす wrapper を書いておいてごまかす.例えば

#!/bin/sh
schroot -p -c lenny-i386 /usr/bin/acroread "$@" 1>/dev/null 2>&1

とか. これを PATH の通った所においておくと良いと思うよ

方法その 2: ia32-apt-get

amd64 の環境で i386 のライブラリを使うために ia32-apt-get というパッケージがあります. まだ開発途中なので, 使っていると色々嵌ると思いますが嵌るのが楽しいんですよねー.

ia32-apt-get

まず導入. のっけから ia32-libs とぶつかりますがおもむろに消します(自己責任で).

$ sudo aptitude install ia32-apt-get

debconf の出す質問で「Libraries」と「All」という選択肢が出ます.

これは 32bit 版のライブラリだけを使うのか, 32bit 版の全てのパッケージを使うのかって選択です. ここでは「Libraries」のみを install します.

続いて sources.list の設定です. /usr/share/ia32-apt-get/convert-all-sources.list を使って/etc/apt/sources.list を i386 版と amd64 版に分割します.現状 convert-all-sources.list は /etc/ia32-apt/sources.list を見ていて/etc/apt/sources.list を見てくれません.

ここでは /etc/ia32-apt/sources.list を /etc/apt/sources.list の symlink にします.

$ sudo -s
# cd /etc/ia32-apt/
# rm sources.list
# ln -s /etc/apt/sources.list .

その後で /etc/apt/sources.list を書きかえます. これまでの指定に加えて [arch=ARCH] という指定が使えるようになっています.例えば

deb [arch=amd64] http://ftp.jp.debian.org/debian/ sid main non-free contrib
deb-src [arch=amd64] http://ftp.jp.debian.org/debian/ sid main non-free contrib

とかです. 上の例ではあんまり意味が無いですが apt-line で提供されているのが i386 版のみ, とかの場合には [arch=i386] とか書いておくと良いと思います.

その後で

$ sudo /usr/share/ia32-apt-get/convert-all-sources.list

とすると

$ ls -R /etc/ia32-apt/
 /etc/ia32-apt:
 amd64/  i386/  sources.list@  sources.list.d/

 /etc/ia32-apt/amd64:
 sources.list  sources.list.d/

 /etc/ia32-apt/amd64/sources.list.d:

 /etc/ia32-apt/i386:
 sources.list  sources.list.d/

 /etc/ia32-apt/i386/sources.list.d:

 /etc/ia32-apt/sources.list.d:
 ia32-apt-get.amd64.list  ia32-apt-get.i386.list

と sources.list が i386, amd64 用にできます.最後に, 場合によっては i386 版の方が build が速いこともあるので, 半端な状態になって困らないようにするために pinning もしておくと良いと思います.

force-architecture で AdobeReader を install

dpkg -i に --force-architecture をつけると, ARCH の違うパッケージも導入できます. 動作保証はありませんが...

$ sudo dpkg -i --force-architecture AdbeRdr9.1.2-1_i386linux_jpn.deb

これで導入されたので動かしてみます.

$ /usr/bin/acroread
/opt/Adobe/Reader9/Reader/intellinux/bin/acroread:
error while loading shared libraries: libgdk_pixbuf_xlib-2.0.so.0:
cannot open shared object file: No such file or directory

というわけで, libgdk_pixbuf_xlib-2.0.so.0 が無いので動作しません.libgdk_pixbuf_xlib-2.0.so.0 を提供している Debian パッケージは何かと言うと...

$ locate libgdk_pixbuf_xlib-2.0.so.0
/usr/lib/libgdk_pixbuf_xlib-2.0.so.0
/usr/lib/libgdk_pixbuf_xlib-2.0.so.0.1800.0
$ dlocate /usr/lib/libgdk_pixbuf_xlib-2.0.so.0
libgtk2.0-0:/usr/lib/libgdk_pixbuf_xlib-2.0.so.0.1800.0
libgtk2.0-0:/usr/lib/libgdk_pixbuf_xlib-2.0.so.0

というわけで, libgtk2.0-0 です. このi386版を導入します.

$ sudo -s
# ia32-apt-get update
# ia32-apt-get install ia32-libgtk2.0-0

パッケージ名の頭にある ia32-が肝です. ia32-apt-get を使ってi386 版のパッケージを導入する時には頭に ia32- をつけておきます.parsechangelog で warning が出ますが, とりあえず気にせずに導入しておきます.

同様の事をくりかえしましたが, PDF ファイルの表示に必要だったのは

  • ia32-libgtk2.0-0
  • ia32-libxml2

の二つ(とこれらが依存するライブラリ群)でした.

まとめ

amd64 な sid 環境で i386 版のパッケージしか提供されていない場合にどうするのか,について簡単に書きました.

手間はかかりますが, 動作が安心なのは chroot の作成だと思います. 手法としては枯れていますし…ia32-apt-get は, chroot ほど面倒ではないものの, まだ枯れていないので偶に嵌るかと思います. ですが, chroot 環境は特にいらないので多少楽かもしれません.

ちなみに現時点では acroread で日本語入力ができません./usr/lib32/gtk-2.0/2.10.0/immodule-files.d とかををゴニョゴニョすれば良いんだろう, とか思ってますがそんな気力はありませんので.

あと plugin (nppdf.so) を消しておかないと悲しくなりますよ. nspluginwrapper とか使って消しておくと良いかと思います.

追加

9.1 から, また日本語のゴシック体フォント同梱されなくなってますね.9.1 のフォントパックは

にあります.

なんだかなぁ... evince で綺麗にグラデーションが表示できれば問題無いんだが, 調べる気力がありません. むーん.


連絡先など
最近の日記
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
  • 2024/05/21
    • 1. GnuPG が 2.2.43 に更新されて, Emacs の EasyPG でファイルが保存できなくなりました
    • 2. 久々に esup を走らせたら
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|
Back to Top ▲