dmgファイルをLinuxで展開する方法

CUPSでプリンタを設定しようとしたらプリンタドライバがなかったので、dmgファイルからPPDファイルを取り出すまでのメモ。

OS:Ubuntu
Printer:RICOH IPSio SP 6120

RICOHのドライバー検索ページから対象のドライバをDL
http://www.ricoh.co.jp/download/

DLするのはMax OS X版です。

dmbファイルを展開するためにはAcetoneISOを使うので、DLしてくる。

Debianパッケージ形式になっているので、以下のコマンドを実行してインストール。

$ sudo dpkg -i acetoneiso_2.0.2-0~getdeb1_i386.deb 

未選択パッケージ acetoneiso を選択しています。
(データベースを読み込んでいます ... 現在 130025 個のファイルとディレクトリがインストールされています。)
(acetoneiso_2.0.2-0~getdeb1_i386.deb から) acetoneiso を展開しています...
dpkg: 依存関係の問題により acetoneiso の設定ができません:
 acetoneiso は以下に依存 (depends) します: libqt4-xml (>= 4.4.3) ...しかし:
  パッケージ libqt4-xml はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: libqtcore4 (>= 4.4.3) ...しかし:
  パッケージ libqtcore4 はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: libqtgui4 (>= 4.4.3) ...しかし:
  パッケージ libqtgui4 はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: fuseiso ...しかし:
  パッケージ fuseiso はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: libqt4-gui ...しかし:
  パッケージ libqt4-gui はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: p7zip-full ...しかし:
  パッケージ p7zip-full はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: gnupg-agent ...しかし:
  パッケージ gnupg-agent はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: gnupg2 ...しかし:
  パッケージ gnupg2 はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: pinentry-qt ...しかし:
  パッケージ pinentry-qt はまだインストールされていません。
 acetoneiso は以下に依存 (depends) します: mencoder ...しかし:
  パッケージ mencoder はまだインストールされていません。
dpkg: acetoneiso の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
以下のパッケージの処理中にエラーが発生しました:
 acetoneiso

をぉ!?依存エラーがたくさん。

とりあえず依存エラーを解消するために以下のパッケージをSynapticからインストール。

libqt4-xml
libqtcore4
libqtgui4
fuseiso
libqt4-gui
p7zip-full
gnupg-agent
gnupg2
pinentry-qt
mencoder

全てのパッケージをインストールし終わったら、もう一度次のコマンドを実行。

$ sudo dpkg -i acetoneiso_2.0.2-0~getdeb1_i386.deb 

acetoneisoをインストールし終わったら、アプリケーションを起動。
「アプリケーション」→「アクセサリ」→「AcetoneISO2」

アプリが立ち上がったら「Conversion」→「Extract Image Content to a folder」をメニューから選択し、対象のdmbファイル&出力先を指定。

終わったら、次はpaxファイルを展開します。

$ zcat PPD_Installer_RI2182D3.pkg/Contents/Resources/PPD_Installer_RI2182D3.pax.gz | cpio -idv

展開したフォルダから「RICOH IPSiO SP 6120」をリネームします。

mv "PPD_Installer_RI2182D3.pkg/Contents/Resources/Library/Printers/PPDs/Contents/Resources/ja.lproj/RICOH IPSiO SP 6120" /opt/drivers/RICOH_IPSiO_SP_6120.ppd

次に、「RICOH_IPSiO_SP_6120.ppd」の内容を以下のように編集。

*cupsFilter:    "application/vnd.cups-postscript 0 /Library/Printers/RICOH/Filters/jobLogFilter05ADU"
*APDialogExtension: "/Library/Printers/RICOH/PDEs/ricohJobLog05ADU.plugin"

  ↓

*%cupsFilter:    "application/vnd.cups-postscript 0 /Library/Printers/RICOH/Filters/jobLogFilter05ADU"
*%APDialogExtension: "/Library/Printers/RICOH/PDEs/ricohJobLog05ADU.plugin"

あとは、CUPSで設定する際に作成したPPDファイルを指定すればOKです。