В начале года мне уже удалось установить 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, который не просто обнаружил “кривость” инструкции, опубликованной ранее, но и помог разобраться в причинах.