Avg. Rating 5.0
Tags:



Problem

Adobe AIR is only supported on rpm and deb based distributions.

Solution

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.

Detailed explanation

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):

  1. GConf
  2. ORBit2
  3. libtasn1
  4. gnome-keyring

 

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.


+
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. Permissions beyond the scope of this license, pertaining to the examples of code included within this work are available at Adobe.

Report abuse

Related recipes