Adobe AIR 1.5のインストール(準備とインストーラ関係)
(2015/1/8)GNU/Linux向けのAdobe AIRは廃止され、本記事の内容も古い内容となっている。
Adobe社が提供するAIR(Adobe Integrated Runtime)というランタイムパッケージを利用した「AIRアプリケーション」では、既存のWeb技術を織り交ぜたクロスプラットフォームなデスクトップアプリケーションを作成することができる。
このランタイムと開発ツール(SDK)が2008年12月にGNU/Linuxに対応し、色々なAIRアプリケーションがGNU/Linux(の内、特定のアーキテクチャ上)で実行できるようになっている。
対応アーキテクチャと必須パッケージ
2009/1/5の時点では、GNU/Linux版AIRはx86_32版のみの提供となっている。x86_64版のGNU/Linux上では、必要なパッケージについてx86_32版のものを用意することで利用が可能となる。最低限必要なパッケージは正確には分からないが、x86_32版のGTK+ 2(Mandriva Linux 2009.0では「libgtk+2.0_0」)とlibnss3は確実に必要。それだけではインストーラのウィンドウが出ず、インストーラを起動した端末は操作できない(動作はしている)という状態になることがあるが、x86_32版XULRunner(Mandriva Linux 2009.0ではパッケージ名「libxulrunner1.9」)まで入れると動作した。
その他、RPMパッケージを作成するためのパッケージ「rpm-build」も必要。これがないと
「管理者によってインストールが禁止...」のエラーになった。
更に、一般ユーザでグラフィカルログインしている状態でインストールしたい場合、「gksu」のパッケージも必要。x86_64版Mandriva Linuxでは「x86_64版Mandriva Linuxにおいてgksuが使えない問題とその対処」の問題があるため、修正が必要。
一方、x86_64版のUbuntu Intrepid(8.10)で試したところ、.binファイルを実行可能にしてもうまく実行されず、端末から実行してみると
$ ./AdobeAIRInstaller.bin bash: ./AdobeAIRInstaller.bin: No such file or directory
となってしまった。
これだけではどうしていいのか分からなかったが、x86_32版各種ライブラリを提供する「ia32-libs」パッケージをインストールしたところ、この問題は解決し、AIRのインストールも最後まで行けた。これだけでインストールできてしまったのが驚きだが
http://web.archive.org/web/20090122062413/http://kb.adobe.com/selfservice/viewContent.do?externalId=kb408084
などを見ると、過去のOSバージョンでは面倒だったのかもしれない。この「ia32-libs」という一枚岩的なパッケージは、必要なx86_32版パッケージが中に含まれていないと非常に厄介なのだが、AIRは使えるようで安心。Ubuntu 8.10の時点では「ia32-libs」にはSDL、libglade、Qt4、JACKのライブラリ、ALSAのPulseAudioプラグインなどもあり、品揃えは充実してきているが、gtkglextなど、入っていないものもある。*1
なお、x86_64版Debian/Ubuntuでは、AIRアプリケーションのインストールがそのままでは正常に動作しない。対処方法は別記事で扱う。
インストーラについて
公式サイトからダウンロードしたファイルAdobeAIRInstaller.binは独自のインストーラになっていて、一般ユーザで実行した場合、gksuが使用されて管理者として認証後インストールされる。
最初のダイアログ・使用許諾契約書
インストール中
インストール完了
このインストーラではRPMやdebというパッケージ管理システムを使用していて、RPMもしくはdeb形式をパッケージ管理システムに用いていないディストリではインストールできない。ただし、別の方法でAIRアプリケーションの実行をすることは可能で、詳しくは別記事にて扱う。
一時ディレクトリからファイルを取り出して配置してみるテスト
このファイルは/tmp/の下のディレクトリ(air-xxxxxx)に内容を展開するのだが、そこからファイルを取り出して配置しても、正常に動かないファイル(後述)があった。その実験を行っていたときに作成したのが以下のスクリプトで、インストーラが起動した後、最初のダイアログが出ているときに実行すると/tmp/air15.tar.bz2にまとめる(ディレクトリ構成を正確に再現するものではない)。#! /bin/sh OUTFILE=/tmp/air15.tar.bz2 PREFIX=/usr if [ -d /usr/lib32 ]; then # x86_64 Debian/Ubuntu/Gentoo etc. LIB=lib32 else LIB=lib fi if [ $(ls -ld /tmp/air.* | wc -l) -ne 1 ]; then die "number of tempdirs must be 1." fi D=/tmp/air15-d S=$(ls -d /tmp/air.*) cd "${S}/" rm "${D}" -fr mkdir "${D}/"{etc,opt} "${D}/${PREFIX}/"{bin,${LIB}} "${D}/${PREFIX}/share/"{applications,mime/packages} -p cp -a "${S}/Certs/etc/opt" "${D}/etc/" cp -a "${S}/Certs/usr/bin/aucm" "${D}/${PREFIX}/bin/" cp -a "${S}/Certs/usr/lib/libadobecertstore.so" "${D}/${PREFIX}/${LIB}/" mkdir "${D}/var/opt/Adobe AIR/Shared/Adobe/AIR/Updater/" -p for x in 16 22 24 32 48 64 128; do mkdir "${D}/${PREFIX}/share/icons/hicolor/${x}x${x}" "${D}/${PREFIX}/share/icons/gnome/${x}x${x}/mimetypes/" -p cp -a "${S}/build/opt/Adobe AIR/Versions/1.0/Resources/support/icons/${x}x${x}/"*.png "${D}/${PREFIX}/share/icons/hicolor/${x}x${x}/" cp -a "${S}/build/opt/Adobe AIR/Versions/1.0/Resources/support/icons/${x}x${x}/"*.png "${D}/${PREFIX}/share/icons/gnome/${x}x${x}/" cp -a "${S}/build/opt/Adobe AIR/Versions/1.0/Resources/support/icons/${x}x${x}/"/air.png "${D}/${PREFIX}/share/icons/gnome/${x}x${x}/mimetypes/gnome-mime-application-vnd.adobe.air-application-installer-package+zip.png" done cp -a "${S}/build/opt/Adobe AIR/Versions/1.0/Resources/support/AdobeAIR.desktop" "${D}/${PREFIX}/share/applications/AdobeAIR-application-vnd.adobe.air-application-installer-package+zip.desktop" cp -a "${S}/build/opt/Adobe AIR/Versions/1.0/Resources/support/AdobeAIR.xml" "${D}/${PREFIX}/share/mime/packages/" cp -a "${S}/build/opt/Adobe AIR/" "${D}/opt/" rm "${D}/opt/Adobe AIR/Versions/1.0/Resources/support/" -fr cd "${D}/" rm "${OUTFILE}" -f tar jcvf "${OUTFILE}" --owner=root --group=root . rm "${D}" -fr
上記スクリプトでまとめたファイルを展開しただけで動かなかったファイルというのは/opt/Adobe AIR/Versions/1.0/airappinstallerで、端末には
unexpected error: TypeError: Error #1009
と出ていた。インストーラを使用して正常に動作する状態を作り、色々試してみたところ、この/opt/Adobe AIR/Versions/1.0/airappinstallerは(Mandriva上では)/var/lib/rpm/以下のデータベースファイルを開いている?ようで、インストーラによってAIRをインストールした後の状態のデータベースがあれば起動するが、入っていない状態のデータベースで起動するか、このディレクトリのファイルを名前変更すると「Error #1009」で落ちるようだ。というわけで、パッケージ管理システムまで深く入り込んでいることが分かったため、インストーラを直接使用しないインストール方法でAIRアプリケーションのインストーラを使用することはかなり困難と思われる(なくても実際にはあまり困らない?)。
AIRはディストリによっては何の問題もなくインストールでき(Mandriva 2009.0とUbuntu 8.10・ともにx86_64版)、アンインストールも、メニュー(「アクセサリ」や「ツール」)の「Adobe AIR Uninstaller」(一般ユーザではインストール時と同様にgksuが使用される)か
$ sudo "/opt/Adobe AIR/Versions/1.0/Resources/Adobe AIR Updater" -arp:uninstall
などで行えるのだが、結構厄介なインストーラという印象。