Установка Flex SDK в Linux

18th Май 2009 | Метки:

Для начала идем на Adobe.com и скачиваем свежий дистрибутив Flex SDK (на момент написания статьи версия 3.3  по этой ссылке). Создаем где-нибудь временный каталог и распаковываем туда дистрибутив.

Открываем файловый менеджер (например krusader) в режиме root. Сразу оговорим, что в системных каталогах работать нужно очень внимательно, дабы случайно не стереть какой-нибудь системный файл. Договоримся что папки будем именовать не «flex» а  «adobe-flex», потому что для линукса существует программа flex - лексический анализатор, и всегда есть вероятность что ее понадобится установить (или уже установлена), и мы не знаем рискуем ли создать при этом конфликт имен.

Первым делом назначим владельца - root всем файлам и папкам в дистрибутиве, чтобы файлы, которые мы будем заливать в системные файлы были защищены от обычного пользователя. Это легко сделать в krusader, выделив папку дистрибутива, в свойствах во вкладке «права» установить владельца и поставив галочку «всем файлам и подкаталогам». Если нету krusader, используем команду chown в консоли.

Итак, переходим в каталог /usr/lib/ и создаем в нем папку adobe-flex. В созданную папку заливаем содержимое папки lib из Flex SDK. Теперь переходим в каталог /usr/share и там тоже создаем папку adobe-flex. Сюда зальем следующие папки из Flex SDK:

  • ant
  • asdoc
  • frameworks
  • samples
  • templates

Идем в каталог bin дистрибутива и открываем файл mxmlc (без расширения!). Как видим, этот файл является shell-скриптом, и судя по комментариях, Adobe разрешает нам изменять этот файл, что мы сейчас и сделаем. Весь код, что ниже заголовка-комментария удаляем, кроме двух последних строчек. Вторую оставленную строчку тоже изменяем, прописывая  пути к библиотекам согласно тому как их расположили в системе. Должно получиться вот так:

#!/bin/sh

################################################################################
##
##  ADOBE SYSTEMS INCORPORATED
##  Copyright 2007 Adobe Systems Incorporated
##  All Rights Reserved.
##
##  NOTICE: Adobe permits you to use, modify, and distribute this file
##  in accordance with the terms of the license agreement accompanying it.
##
################################################################################

VMARGS="-Xmx384m -Dsun.io.useCanonCaches=false"
java $VMARGS -jar "/usr/lib/adobe-flex/mxmlc.jar" +flexlib="/usr/share/adobe-flex/frameworks" "$@"

Сохраняем этот файл (название mxmlc без расширения - остается) и устанавливаем ему право запуска. Теперь этот файл заливаем в каталог /usr/bin. Откроем консоль и введем команду «mxmlс», и если при этом выдается сообщение вроде «не указан целевой файл», то значит компилятор работает, и мы можем проверить его на деле.

Создадим файл «test.mxml» и поместим в него такой код:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Panel title="My Application" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" >
   <mx:Label text="Hello World!" fontWeight="bold" fontSize="24" />
</mx:Panel>
</mx:Application>

В консоли вводим команду:

mxmlc <путь_к_файлу>/test.mxml

Смотрим - если в этой же папке появился файл test.swf и в нем видим окошко «My Application» с текстом «Hello World!», значит все работает.

В идеале, расстановку файлов и папок можно задать при создании deb-пакета. Тогда полученный пакет можно устанавливать одним кликом, и удалять одной командой. При этом менеджер пакетов самостоятельно делает всю работу по установке файлов в нужные места или удаление этих файлов. Но для изготовления корректного по всем правилам deb-пакета нужно подробно изучить документацию по этой теме, начиная к примеру здесь. При разработке deb-пакета следует сделать проверку зависимостей (например - установлен ли JRE, необходимый компилятору mxmlc для работы), проверку на наличие или отсутствие конфликтов имен и т.д. Только правильно созданный по всем инструкциям пакет может называться пакетом и иметь право на использование и распространение.

Пока комментариев нет.

*
To prove that you're not a bot, enter this code
Anti-Spam Image