В начале года мне уже удалось установить Adobe AIR на свой slackware. Но спустя несколько месяцев вышел свежий релиз (2.0) и инструкция стала неактуальной. Я обещал разобраться и выложить обновлённую. Хотя и прошло почти полгода, но лучше поздно, чем никогда, правда?
С версией 2.0.2 так ничего и не вышло, а вот с недавно вышедшей версией 2.5 всё прошло очень гладко. Всё устанавливается и работает почти без проблем (остался описанный ранее изъян с тем, что инсталлятор air-приложений спрашивает пароль root-а).
Итак инструкция:
rpm --initdb
RPM_VERSION=`rpm --version|awk '{print $3}'`
cat <<ENDSPEC>>rpm.spec
Summary: The RPM package management system
Name: rpm
Version: ${RPM_VERSION}
Release: 1
Group: System Environment/Base
Url: http://www.rpm.org/
License: GPLv2+
BuildArch: noarch
Provides: /bin/sh
%description
The RPM Package Manager.
%files
ENDSPEC
BUILD=`rpmbuild -ba rpm.spec|grep 'noarch.rpm'|awk '{print $2}'`
rpm --justdb -ivh $BUILD
rm -f rpm.spec
GTK2_VERSION=`gtk-query-immodules-2.0|grep 'Created by'|awk '{print $6}'|sed 's/gtk+-//'`
cat <<ENDSPEC>>gtk2.spec
Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
Name: gtk2
Version: ${GTK2_VERSION}
Release: 1
License: LGPLv2+
Group: System Environment/Libraries
%description
GTK+ is a multi-platform toolkit for creating GUI.
%files
ENDSPEC
BUILD=`rpmbuild -ba gtk2.spec|grep 'i386.rpm'|awk '{print $2}'`
rpm --justdb -ivh $BUILD
rm -f gtk2.spec
COREUTILS_VERSION=`/bin/env --version|head -n1|awk '{print $4}'`
for bin in /usr/bin/env /bin/uname /bin/cat /bin/chmod /bin/ln /bin/ls /bin/rm /bin/sh /bin/echo; do
PKG=`basename $bin`
mkdir -p /root/rpmbuild/BUILDROOT/$PKG-$COREUTILS_VERSION-1.i386/bin
mkdir -p /root/rpmbuild/BUILDROOT/$PKG-$COREUTILS_VERSION-1.i386/usr/bin
cp $bin /root/rpmbuild/BUILDROOT/$PKG-$COREUTILS_VERSION-1.i386$bin
cat <<ENDSPEC>>$PKG.spec
Summary: Coreutils
Name: $PKG
Version: ${COREUTILS_VERSION}
Release: 1
License: LGPLv2+
Group: System Environment/Libraries
%description
GNU Coreutils
%files
$bin
ENDSPEC
BUILD=`rpmbuild -ba $PKG.spec|grep 'i386.rpm'|awk '{print $2}'`
rpm --justdb -ivh $BUILD
rm -f $PKG.spec
done
AWK_VERSION=`/usr/bin/awk --version|head -n1|awk '{print $3}'`
mkdir -p /root/rpmbuild/BUILDROOT/awk-$AWK_VERSION-1.i386/usr/bin
cp /usr/bin/awk /root/rpmbuild/BUILDROOT/awk-$AWK_VERSION-1.i386/usr/bin/awk
cat <<ENDSPEC>>awk.spec
Summary: GNU AWK
Name: awk
Version: ${AWK_VERSION}
Release: 1
License: LGPLv2+
Group: System Environment/Libraries
%description
GNU AWK
%files
/usr/bin/awk
ENDSPEC
BUILD=`rpmbuild -ba awk.spec|grep 'i386.rpm'|awk '{print $2}'`
rpm --justdb -ivh $BUILD
rm -f awk.spec
GREP_VERSION=`/usr/bin/grep --version|head -n1|awk '{print $4}'`
mkdir -p /root/rpmbuild/BUILDROOT/grep-$GREP_VERSION-1.i386/bin
cp /usr/bin/grep /root/rpmbuild/BUILDROOT/grep-$GREP_VERSION-1.i386/bin/grep
cat <<ENDSPEC>>grep.spec
Summary: GNU GREP
Name: grep
Version: ${GREP_VERSION}
Release: 1
License: LGPLv2+
Group: System Environment/Libraries
%description
GNU GREP
%files
/bin/grep
ENDSPEC
BUILD=`rpmbuild -ba grep.spec|grep 'i386.rpm'|awk '{print $2}'`
rpm --justdb -ivh $BUILD
rm -f grep.spec
LIBXML2_VERSION=`xml2-config --version`
mkdir -p /root/rpmbuild/BUILDROOT/libxml2-$LIBXML2_VERSION-1.i386/usr/lib/
ln -s /usr/lib/libxml2.so /root/rpmbuild/BUILDROOT/libxml2-$LIBXML2_VERSION-1.i386/usr/lib/libxml2.so.2
cat <<ENDSPEC>>libxml2.spec
Summary: XML parser library
Name: libxml2
Version: ${LIBXML2_VERSION}
Release: 1
License: LGPLv2+
Group: System Environment/Libraries
%description
XML parser library
%files
/usr/lib/libxml2.so.2
ENDSPEC
BUILD=`rpmbuild -ba libxml2.spec|grep 'i386.rpm'|awk '{print $2}'`
rpm --justdb -ivh $BUILD
rm -f libxml2.spec
LIBXSLT_VERSION=`xslt-config --version`
mkdir -p /root/rpmbuild/BUILDROOT/libxslt-$LIBXSLT_VERSION-1.i386/usr/lib/
ln -s /usr/lib/libslt.so /root/rpmbuild/BUILDROOT/libxslt-$LIBXSLT_VERSION-1.i386/usr/lib/libxslt.so.1
cat <<ENDSPEC>>libxslt.spec
Summary: XML transformation library
Name: libxslt
Version: ${LIBXSLT_VERSION}
Release: 1
License: LGPLv2+
Group: System Environment/Libraries
%description
XML transformation library
%files
/usr/lib/libxslt.so.1
ENDSPEC
BUILD=`rpmbuild -ba libxslt.spec|grep 'i386.rpm'|awk '{print $2}'`
rpm --justdb -ivh $BUILD
rm -f libxslt.spec
wget http://airdownload.adobe.com/air/lin/download/latest/adobeair.i386.rpm
rpm -i adobeair.i386.rpm
Суть скрипта – создать для rpm фиктивную базу “зависимостей” необходимых для установки adobeair.
Скрипт проверен на нескольких инсталяциях более-менее свежих slackware, но инструкция должна подойти для любых не deb (и не rpm) систем.
Особая благодарность товарищу deywos, который не просто обнаружил “кривость” инструкции, опубликованной ранее, но и помог разобраться в причинах.
Как уже рассказывал, совершил я страшный грех – перестал пользоваться виндой. В качестве рабочего стола теперь у меня KDE4. Красоты неописуемой, удобством не обделённый, загляденье, да и только. И всё вроде хорошо, но есть часть рутины, которая довольно привычна была на виндовом экране, но на linux её терпеть прямо нет никакого желания. Одним из примеров такой рутины был запуск rdp и radmin клиентов, если с первым под виндой ещё более-менее можно сладить (он хотя бы хранит учётные записи и настройки), то второй даже пароль сохранять не умеет.