Adobe AIR is only supported on rpm and deb based distributions.
The workaround/solution is to accomodate the AIR APP Installer by providing it with an RPM environment and making some tweaks so everything installs smoothly.
The Adobe AIR Application Installer system was designed to run only on RPM or DEB based Linux distributions. This makes things akward for anybody running other distributions.
This is a mixture of solution and workaround, but it does the job well enough for me. We need to create a suitable environment for the Adobe AIR App Installer to work with, once that is done, it will install itself and 3rd party AIR apps without problems.
While the following steps are Slackware specific, they can easily be adapted to any other Linux distribution.
Creating the Environment
The following software is required:
Update: As noted in the comments below, Slackware 13+ already comes with rpm 4.7.0, so it is not necessary to install it from source as shown below.
root@slack:/usr/src# installpkg mozilla-nss-3.12.3-i486-1alien.tgz
root@slack:/usr/src# tar -jxvf rpm-4.7.1.tar.bz2
root@slack:/usr/src# cd rpm-4.7.1
root@slack:/usr/src/rpm-4.7.1# export CPPFLAGS="-I/usr/include/nss -I/usr/include/nspr -I/usr/include/db44"
root@slack:/usr/src/rpm-4.7.1# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--sharedstatedir=/var/lib --libdir=/usr/lib --with-external-db --without-lua
root@slack:/usr/src/rpm-4.7.1# make && make DESTDIR=/tmp/rpm-install install
root@slack:/usr/src/rpm-4.7.1# cd /tmp/rpm-install
root@slack:/tmp/rpm-install# makepkg /tmp/rpm-4.7.1-i686-1_air.tgz
root@slack:/tmp/rpm-install# installpkg /tmp/rpm-4.7.1-i686-1_air.tgz
root@slack:/tmp/rpm-install# rpm --initdb
root@slack:/tmp/rpm-install# cd
root@slack:~# rm -rf /tmp/rpm-install
Now that RPM is installed and ready to go, there are a couple of things to address before AIR will happily install. The AIR installer will run the ` /bin/rpm -q rpm' command to verify the environment.
We will create a dummy "rpm" package and install it, so this check doesn't fail... (you will also notice the " Provides: /bin/sh" statement in the RPM spec file, this is also a requirement of the RPM(s) that the AIR App Installer produces).
The gtk2 package is also a requirement of AIR. I already have gtk+2-2.12.2 installed as a Slackware package on my system, so I'll just create a dummy RPM package for that too.
root@slack:~# cat <<EOF>>rpm.spec Summary: The RPM package management system Name: rpm Version: 4.7.1 Release: 1 Group: System Environment/Base Url: http://www.rpm.org/ License: GPLv2+ BuildArch: noarch Provides: /bin/sh %description The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating software packages. Each software package consists of an archive of files along with information about the package like its version, a description, etc. %files EOF root@slack:~# rpmbuild -ba rpm.spec Processing files: rpm-4.7.1-1.noarch Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/rpm-4.7.1-1.i386 Wrote: /root/rpmbuild/SRPMS/rpm-4.7.1-1.src.rpm Wrote: /root/rpmbuild/RPMS/noarch/rpm-4.7.1-1.noarch.rpm root@slack:~# rpm -ivh /root/rpmbuild/RPMS/noarch/rpm-4.7.1-1.noarch.rpm Preparing... ########################################### [100%] 1:rpm ########################################### [100%] root@slack:~# cat <<EOF>>gtk2.spec Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X Name: gtk2 Version: 2.12.12 Release: 1 License: LGPLv2+ Group: System Environment/Libraries %description GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites. %files EOF root@slack:~# rpmbuild -ba gtk2.spec Processing files: gtk2-2.12.12-1.i386 Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/gtk2-2.12.12-1.i386 Wrote: /root/rpmbuild/SRPMS/gtk2-2.12.12-1.src.rpm Wrote: /root/rpmbuild/RPMS/i386/gtk2-2.12.12-1.i386.rpm root@slack:~# rpm -ivh /root/rpmbuild/RPMS/i386/gtk2-2.12.12-1.i386.rpm Preparing... ########################################### [100%] 1:gtk2 ########################################### [100%]
By now, the RPM environment should look like this:
root@slack:~# rpm -qa gtk2-2.12.12-1.i386 rpm-4.7.1-1.noarch
One Final Tweak
This is a little ugly, but for some reason as things stand, when the AIR App Installer tries to install the RPMs it created, the following error message appears:
rpm error: error: unpacking of archive failed on file /opt/Adobe AIR/Versions/1.0/Adobe AIR Application Installer;4a6dfc3c: cpio: Digest mismatch
I have not yet tracked down why this error occurs, but there is a way around it:
root@slack:~# mv /bin/rpm /bin/rpm.orig root@slack:~# cat <<EOF>>/bin/rpm #!/bin/sh /bin/rpm.orig --nofiledigest \$@ EOF root@slack:~# chmod 755 /bin/rpm
Now the AIR installation will run and complete successfully, adding the menu items and correctly installing 3rd party apps etc. Not too happy about the requirement for the above workaround, but its better than nothing for now.
XFCE Users
If, like me, you don't use GNOME or KDE (the above procedure will just work with either of those two), you can simply install the following packages prior to the AIR installation (Slackware packages are available online at gnomeslackbuild.org):
You'll probably have to setup the menu items for the AIR Application Installer and 3rd party applications yourself.
Run the Installer
user@slack:~# ./AdobeAIRInstaller.bin
After the install has completed, you can see that it has added RPMs for AIR:
root@slack:~# rpm -qa gtk2-2.12.12-1.i386 rpm-4.7.1-2.noarch adobe-certs-1.0-8210.i386 adobeair1.0-1.5.1-8210.i386
Anytime you install an AIR application, it is added as another RPM and will show in the above list.
+