Установка Red5

Tags:

Итак, прежде, чем чего-то делать с Red5, его нужно установить.

Есть два способа это сделать -- установить бинарный дистрибутив или собрать из сорцов.

Установка бинарного дистрибутива

Первый способ -- скачать один из скомпилированных релизов и развернуть его. На момент написания этих строк самая новая доступная версия 0.9.1 Final.

Установка под Linux

Скачиваем Tarball red5-0.9.1.tar.gz или ZIP red5-0.9.1.zip.

К сожалению, архив скачивается на медленной скорости и с частыми обрывами. Из браузера мне так и не удалось скачать его нормально, а пришлось воспользоваться утилитой wget:

yura ~/downloads $ wget http://www.red5.org/downloads/0_9/red5-0.9.1.tar.gz
или
yura ~/downloads $ wget http://www.red5.org/downloads/0_9/red5-0.9.1.zip

Еще к сожалению, разработчики не выкладывают checksum, чтобы можно было проверить целостность архива, так что ориентироваться можно по размеру файла (33.8 Mb для tar.gz и 35.1 Mb для zip) и по тому, как получилось или не получилось его распаковать.

Архив tar.gz распаковывается в папку red5-0.9.1. Но если вы скачивали zip, то будьте осторожны -- он распаковывается прямо в текущий каталог. Так что в этом случае нужно будет сперва создать папку red5-0.9.1, положить в нее zip-архив, и уже там распаковывать.

Вся эта небрежность с архивами со стороны разработчиков Red5 (open source такой open source), говорит о том, что бинарный дистрибутив явно находится на периферии их внимания, и предпочтительно устанавливать Red5 из сорцов.

Итак, после успешной распаковки архива (не важно, tar.gz или zip), мы получаем папку red5-0.9.1 с интересным содержимым, которое сейчас и рассмотрим:

  • conf -- конфигурационные файлы red5
  • doc -- документация по исходникам, полезная для разработчика и бесполезная для пользователя (администратора)
  • lib -- jar-файлы библиотек, необходимых для работы Red5
  • log -- сюда будут сохранятся логи, генерируемые при работе Red5 (а пока тут пусто)
  • webapps -- сюда нужно будет класть свои приложения
  • ну и в корне папки есть всякие файлы настроек, shell и bat скрипты, jar файлы и файлы для сборщика.

Примечательно, что тут отсутствуют README.txt, INSTALL.txt или какие-либо другие инструкции о том, как установить и запустить Red5. На сайте эти инструкции тоже отсутствуют (но есть инструкции для сборки из сорцов).

Ну что ж, вооружившись здравым смыслом и интуицией, начнем с того, что попробуем запустить скрипт red5.sh в корне папки red5-0.9.1.

yura ~/downloads/red5-0.9.1 $ ./red5.sh
Running on  Linux
Starting Red5
Red5 root: /home/yura/downloads/red5-0.9.1
Configuation root: /home/yura/downloads/red5-0.9.1/conf
Root: /home/yura/downloads/red5-0.9.1
Deploy type: bootstrap
Logback selector: org.red5.logging.LoggingContextSelector

Ну вот, оказывается, ничего устанавливать и не нужно. Red5 просто работает из коробки.

Примечание: если у вас уже установлен один экземпляр Red5, или был установлен раньше, и осталась определена системная переменная $RED5_HOME, то последствия вызова ./red5.sh могут быть другие :)

Ну прекрасно, осталось положить его в нужное место и кое-чего настроить. Нужным местом, вероятно, будет /opt/red5, или /usr/local/red5, или что-то еще по вашему вкусу.

Далее, если вы админ и настраиваете Red5 для работы в production, то наверняка создадите в системе отдельного пользователя, настроите права этому пользователю, и настроите, чтобы Red5 работал от этого пользователя, да еще что б работал как системный сервис. Если вы не умеете этого делать, то вряд ли может такое случится, что вас попросят настроить Red5 для работы в production :)

Если вы разработчик, как и я, и просто запускаете Red5 на своей локальной машине, чтобы разрабатывать под него свое приложение, то можете положить его куда угодно в своем домашнем каталоге. Или можете положить его в /opt/red5, или еще куда-нибудь. Но для этого понадобятся права рута. Тогда лучше из-под рута создайте папку /opt/red5, поставьте на нее owner и group -- себя. И уже из-под своего пользователя копируйте туда red5. Если будете копировать из-под рута, то все файлы Red5 будут принадлежать руту, и у вас будут сложности с тем, чтобы положить свое приложение в webapps.

Кто-то внимательный может спросить, а что это за системная переменная $RED5_HOME была упомянута? Эта переменная нужна для сборки Red5 из сорцов. Для бинарного дистрибутива не нужна. Однако если у вас определена такая переменная, то при запуске любой копии Red5 (допустим у вас две или больше копий установлены в разных местах) будет работать именно тот Red5, который находится в каталоге, куда указывает $RED5_HOME. В этом не трудно убедиться, заглянув в red5.sh.

Установка под MacOS

Идем тем же путем -- red5.org -> Downloads, Releases -> 0.9.1 Final и скачиваем OSX red5-0.9.1.dmg

Открываем, видим исполняемый файл Red5, license.txt и readme.txt. В readme находим исчерпывающие указания по установке, и кидаем Red5 в папку Applications :)

Затем запускаем его, и в доке появляется бесполезная иконка. Бесполезная, потому что она не дает нам никакой информации, что там происходит с Red5: запустился ли он, работает ли нормально, какую инфу он генерирует?

Зайдем в /Applications/, Command + клик на Red5, Show Package Content, Resources/Java -- тут находим знакомые папки Red5, в том числе нужные нам log и webapps. По логам видим, что Red5 запустился и работает нормально.

В общем-то запускать Red5 по клику на иконку в Applications мало смысла. Более информативно запустить из консоли, дабы сразу видеть логи:

yura ~ $ cd /Applications/Red5.app/Contents/Resources/Java
yura /Applications/Red5.app/Contents/Resources/Java $ sudo chmod 744 red5.sh
yura /Applications/Red5.app/Contents/Resources/Java $ ./red5.sh
Running on Darwin
Starting Red5
Red5 root: /Applications/Red5.app/Contents/Resources/Java
deploy type: bootstrap
...

Красота :)

Установка под Windows

Идите тем же путем -- red5.org -> Downloads, Releases -> 0.9.1 Final и скачивайте Windows setup-Red5-0.9.1.exe. Дальше пробуйте сами, я не пробовал :)

Сборка из сорцов

Второй способ установить Red5 -- собрать из сорцов. Этому способу разработчики уделили гораздо больше внимания. Есть краткая инструкция Red5 Installation Guide, и более подробная Chapter 5. Building Red5.

Этот способ предпочтителен еще и потому, что так мы получаем самую свежую версию Red5. На момент написания этих строк это версия 1.0.0 RC1.

Из Installation Guide мы узнаем, что перед тем, как собирать Red5, нам нужно кое-что иметь на своей машине. А именно:

  • Java 1.6 (или OpenJDK)
  • Ant -- инструмент сборки
  • Ivy -- инструмент отслеживания зависимостей
  • и какой-нибудь клиент к Subversion

Если чего-то не хватает, то устанавливаем это. Я тут, конечно, не буду расписывать, как устанавливать Java, Ant, Ivy и Subverion под каждую ОС. Гугл в помощь :)

Ну а потом:

Готовим каталог, куда будем ставить Red5

из-под рута
mkdir /opt/red5
chown yura /opt/red5
chgrp yura /opt/red5

Получаем сорцы из репозитория

cd /opt/red5
svn co https://red5.googlecode.com/svn/java/server/trunk/ .

Создаем переменную $RED5_HOME. Добавляем в ~/.bashrc

export RED5_HOME=/opt/red5/dist
и потом эту же команду набираем в текущем сеансе консоли, либо делаем
source ~/.bashrc
Если такая переменная уже есть, то не лишне сейчас проверить, что она работает
yura /opt/red5 $ echo $RED5_HOME
/opt/red5/dist

Обратите внимание, что значение $RED5_HOME должно быть /opt/red5/dist, а не /opt/red5. Почему? Потому что в /opt/red5 у нас будут исходные коды проекта, а рабочая версия red5 соберется в папку /opt/red5/dist.

Собираем проект

yura /opt/red5 $ ant clean dist
Buildfile: build.xml

...

BUILD SUCCESSFUL
Total time: 8 minutes 34 seconds

Это займет некоторое время, ибо сперва будут выкачиваться из инета зависимые библиотеки, а потом будут компилироваться 580 классов, 95 тысяч строк кода.

И вот после сборки у вас появилась папка /opt/red5/dist, и оттуда можно запускать Red5

yura /opt/red5/dist $ ./red5.sh
Running on  Linux
Starting Red5
Red5 root: /opt/red5/dist
Configuation root: /opt/red5/dist/conf
...

Ну вот и все :)

Установка демо приложений

Кроме самого Red5, еще весьма полезно иметь на своем компе демо приложения, подготовленные разработчиками. Ибо документация не отличается полнотой и целостностью, а исходники этих приложений заполняют многие пробелы. К тому же хороший пример в несколько строк кода может гораздо быстрее объяснить, как делается та или иная штука, чем несколько страниц документации.

Серверную часть этих приложений берем здесь https://red5.googlecode.com/svn/java/example/trunk/, а клиентскую здесь https://red5.googlecode.com/svn/flash/trunk/

yura /opt/red5 $ mkdir example flash
yura /opt/red5 $ svn co https://red5.googlecode.com/svn/java/example/trunk/ example
yura /opt/red5 $ svn co https://red5.googlecode.com/svn/flash/trunk/ flash

Там довольно много всего, от совсем простых приложений до довольно сложных. И обзор этих приложений я сделаю позже :)

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
question for bots )
Image CAPTCHA
Enter the characters shown in the image.