Adobe AIR и linux. Часть II.

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

11.11.10  |  , ,  | стань первым

kdebindings и ruby1.9

Злосчастное обновление ruby до 1.9 сломало не только watir, но и мои плазмоиды.

Полдня провёл в попытках разобраться с ситуацией – при загрузке rubygems вываливается трэйс, смысл которого в:
undefined method `synchronize’ for #<Mutex:0xab1cd2> .

Нашёл несколько сообщений с описываемой проблемой «встроенного ruby» , но решения по всей видимости нету.

Поэтому пришлось установить «старый» ruby и собрать kdebindings с ним:

tar -zxf kdebindings-*.tgz
cd kdebindings-*
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_KROSSRUBY=off -DENABLE_PYKDE4=off -DRUBY_INCLUDE_PATH=/opt/ruby4kde/lib/ruby/1.8/i686-linux/ -DRUBY_LIBRARY=/opt/ruby4kde/lib/libruby.so -DRUBY_EXECUTABLE=/opt/ruby4kde/bin/ruby ..
make && make install

Рубиновые плазмоиды

qt-интерфейсКак уже рассказывал, совершил я страшный грех – перестал пользоваться виндой. В качестве рабочего стола теперь у меня KDE4. Красоты неописуемой, удобством не обделённый, загляденье, да и только. И всё вроде хорошо, но есть часть рутины, которая довольно привычна была на виндовом экране, но на linux её терпеть прямо нет никакого желания. Одним из примеров такой рутины был запуск rdp и radmin клиентов, если с первым под виндой ещё более-менее можно сладить (он хотя бы хранит учётные записи и настройки), то второй даже пароль сохранять не умеет.
Обычно всякие вспомогательные программки делаются на php, но не в этот раз – уж коль скоро захотелось запускать что-то с окошками, захотелось и свою облечь в какой-нибудь приличный вид. php-gtk был отвергнут сразу (ну не нравится мне gtk-ный интерфейс, не нравится и всё тут). Решил сделать на Qt4 – благо информации в интернете по данной теме полно. (more…)

10.09.09  |  ,  | 4 comments

cdrom в virtualbox

Если вдруг у вас тоже случится такая напасть как пустой список устройств при выборе CD/DVD-ROM в свойствах виртуальной машины, просто остановите машину (если она всё ещё запущена), откройте xml-конфиг (предположительно ~/.VirtualBox/Machines/${PCNAME}/${PCNAME}.xml), найдите в нём строку <DVDDrive passthrough=”false” /> и замените на

<DVDDrive passthrough=”true”>
<HostDrive src=”/dev/hdc“/>
</DVDDrive>

Разумеется устройство вы должны указать своё, а не моё ;o)

P.S.

Seamless mode с VirtualBox просто восхитителен!

Бесплатные пакетики

Вообще, как мне кажется, пользователи slackware очень самостоятельные и вполне могут собрать любую “тулзовину” без чужой помощи. Но тем не менее, они тоже собирают “пакетики” и делятся ими с другими любителями слаки.

Я тоже решил с вами поделиться несколькими программками, а так же пакетами с ними.
Если вы пользуетесь slapt-get или slackpkg, то можете просто добавить в SOURCE ссылочку http://miracle.rpz.name/shared/slack/ и ознакомиться со скудным ассортиментом моего репозитария. В основном это программы русскоговорящих авторов, и потому в многочисленных зарубежных репозитариях ранее не встречались. Все гуёвые программы cделаны с помощью qt. (more…)

20.12.08  |   | стань первым

мыши плакали, кололись, но продолжали жрать кактус…

[тут было много нецензурной брани и описание волшебных лучей, посланных в сторону aol]

Из оставшихся клиентов в наличии остались center(IM|ICQ).
Покопавшись немного в чужих пожеланиях долгой жизни всему aol-у нашёл как вернуть к жизни kopete:

[ICQVersion]
Build=0x17AB
ClientId=0x010A
ClientString=ICQ Client
Country=us
Lang=en
Major=0×0006
Minor=0×0000
Other=0×00007535
Point=0×0000

Это нужно добавить в ~/.kde/share/config/kopeterс

Жду с нетерпением аналогов лекарства для sim и qutIM.

Update:

Additionally the kopete team has updated a ICQ version file which is online and which kopete fetches automatically at startup. This should also fix the problem, without the need to edit or update anything!

P.S. под виндою всё прошло хорошо – продолжает работать R&Q, что несомненно порадовало.
Наконец стало понятно в чём проблема и почему часть т.н. “альтернативных” клиентов продолжают работать – на серверах просто повысили минимальное требование к версии протокола.
Потихоньку перебираюсь в jabber. Догоняйте.

02.07.08  |   | стань первым

bad interpreter: Permission denied

Запомни (а лучше запиши) – если ты опять увидишь это сообщение, не трать час на выяснение причин и подумай, зачем у тебя /tmp смонтирован с noexec ?

13.06.08  |   | 3 comments

Performance Optimization WordPress Plugins by W3 EDGE