Сразу говорю, статья будет скучная и без картинок, поскольку сегодня речь пойдет о том, как установить и запустить opensim-server и где есть какие «воздушные ямы». В качестве анонса хочу заметить, что в настоящее время опенсимы шагнули далеко вперед в своем развитии, при определенной сноровке там запускаются и голосовое общение, и группы, и платёжные модули и даже меши. Но все по порядку. Сегодня запускаем сам симулятор.
Работать мы будем с операционной системой linux (у меня стоит Ubuntu 11.10 Server). Сам же сервер прекрасно работает и под Windows и в конце статьи я приведу ссылку на форум, где описывается его установка под эту ОС. Что же касается настройки самого симулятора, то она ничем не отличается, поскольку мы имеем дело с приложением, как таковым.
Итак, первым делом нам нужно подготовить плацдарм. Это довольно просто - нужно создать пользователя в системе, под которым будет жить и работать наш симулятор и установить необходимые библиотеки, требуемые для жизнеобеспечения самого сима.
- Создаем пользователя opensim:
# adduser opensim - Устанавливаем mono и его окружение:
# apt-get -y install nant mono-gmcs libmono-microsoft8.0-cil libmono-system-runtime2.0-cil libgdiplus libmono-i18n2.0-cil libmono-oracle2.0-cil - Теперь необходимо удостовериться, что mono работоспособен:
# mono -VMono JIT compiler version 2.10.5 (Debian 2.10.5-1) Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: x86 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: Included Boehm (with typed GC and Parallel Mark)
- Так как симу нужно где-то хранить свои данные, он активно использует различные базы данных. По уму, конечно, лучше использовать mysql, но сейчас мы поставим (если не стоит) упрощенный движок DB, который называется SQLite. Вообще вещь полезная и мощная, не нужно пренебрежительно относиться к слову «упрощенный», если что ;)
# apt-get -y install sqlite - Если у вас не стоит screen, то нужно его поставить, пригодиться в дальнейшем для запуска сервера как демона, потому что он сам этого не умеет, увы и ах:
# apt-get -y install screen
Что ж, осталось совесем малое - скачать и распаковать сам сервер. Скачивать его можно либо с русского сайта проекта OpenSim или же с иностранного, разницы в данном случае нет никакой. Скажу только, что хотите или нет, а придется в дальнейшем читать оба сайта. Русский потому что он на русском, а иностранный, потому что там есть жизнь.
- Мы залогинились заново, находимся в своей домашней директории, скачиваем симулятор:
$ wget http://opensim.ru/server/opensim_ru_build_722.zip
и распаковываем его:
$ unzip opensim_ru_build_722.zip - Папку с распакованными файлами лучше всего сразу переименовать во что-нибудь удобоваримое:
$ mv opensim_ru_build_722/ osim
Хочу обратить особое внимание на выделение красным - эти названия справедливы в настоящее время, но когда версия сервера изменится и будут выложены новые файлы, они станут другими. Понимаю, что сейчас указываю на очевидное, но безо всякого снобизма я полагаю, что среди моих читателей все же могут оказаться и блондинки с КП ;)
- Переходим в папку osim и, глубоко вдохнув носом, запускаем наш сервер:
$ mono OpenSim.exe
После запуска, рано или поздно, сервер попросит вас дать ему имя:
Назовите, как хотите, я свой назвал вполне предсказуемо - Kin-Dza-Dza. Если хотите, можете использовать русские буквы в кодировке UTF-8.===================================== We are now going to ask a couple of questions about your region. You can press 'enter' without typing anything to use the default the default is displayed between [ ] brackets. ===================================== New region name []: Kin-Dza-Dza
Дальше сервер предложит дать ему UUID вместо того, который он выбрал сам, здесь просто жмите ENTER и переходим к следующему вопросу, который стоит пометить, как каверзный:
Чтобы правильно ответить на этот вопрос, стоит ознакомиться с тем, как вообще устроен грид. В данном случае нам интересно устройство координатной сетки. Как вы уже поняли, грид начинается с абстрактной точки с координатами X,Y 1000,1000. От нее симы расползаются в разные стороны до бесконечности, но при инициализации нужно точно знать место в гриде, куда вы хотите поместить свой сим. Поскольку сейчас мы будем запускать свой сим как standalone, то есть существующий в единственном экземпляре безо всякого грида, как сферический конь в вакууме, то просто нажимаем ENTER, оставляя координаты, как есть, но запоминим этот момент и потом мы к нему вернемся в статье, где я расскажу, как подключить свой сим к русскому гриду opensim.ru.Region UUID [f487bbdb-f591-493d-8c7d-7591f14db04b]: Region Location [1000,1000]:
И снова каверзный вопрос задает нам железяка:
Здесь кроются одни из основополагающих грабель, наступив на которые однажды, получаешь по башке еще продолжительное время. Дело в том, что «внутренний IP адрес», как можно понять эту надпись, совершенно не равняется адресу localhost'a компьютера, где запускается сервер, как и не равняется он внутреннему адресу в вашей локальной сети (к слову, для компьютера адрес локальной сети будет внешним, если этот момент не понятен, забейте, просто запомните как аксиому, а лучше запишите на клейкой бумажке и налепите по центру монитора). В данном случае этот адрес вообще не нужно трогать, оставив там предложенное значение, тогда сервер будет слушать все доступные интерфейсы, как внутрениий lo0 127.0.0.1, так и внешний изнутри eth0 192.168.0.2 (к примеру такой адрес, у вас может быть свой, не суть). Короче, просто жмите ENTER, но момент, опять же, запомните.Internal IP address [0.0.0.0]:
Добрались и до порта. Сейчас будет важно, не прохлопайте ушами ;) Дело в том, что для нормальной работы сервера должны быть открыты TCP и UDP порты 8895 и начиная с 9000 и выше по количеству запущенных на сервере симуляторов, ведь вы же знаете, что один сервер может поддерживать несколько симуляторов (регионов)? Так вот, на каждый сим по своему порту, причем здесь вы можете отойти от стандартных и предложить свои, но сейчас на это не нужно заморачиваться и просто опять, по привычке, нажимаем ENTER и запоминаем момент.Internal port [9000]:
Опять же, на вопрос об альтернативных портах при помощи знакомой кнопки оставляем, как есть, а вот следующий вопрос про внешнее имя хоста опять коварен и каверзен до безобразия.Allow alternate ports [False]: External host name [SYSTEMIP]: 192.168.0.2
На самом деле здесь можно написать что угодно, все зависит от того, где мы хотим видеть наш сим и где он стоит - на локальной тачке, откуда и клиент потом вы будете запускать, на отдельной машине в вашей локалке или же должен быть виден из грида. В первом случае просто напишите localhost и, по привычке, запомните это место. Во втором случае, как у меня, пишем IP внутри сети - 192.168.0.2. Если же ваш сим должен быть виден из грида, то здесь нужно написать ваш внешний IP, который виден из «большого интернета». Но по первости я бы рекомендовал поступить без лишних жоподвижений и просто написать там localhost, потому что мне что-то подсказывает, что сим вы запускаете на своем локальном компьютере.
Похрустев немного, сервер приступит к конфигурированию эстейта и спросит, как его назвать:
На самом деле здесь есть небольшая разница с терминологией, принятой в SL, поэтому поясняю - это на самом деле имя парселя, который по умолчанию будет размером на весь сим, поэтому я называю его просто и без затей «Pluk Planet».New estate name [My Estate]: Pluk Planet
Следующий вопрос - имя владельца, вписываем себя или оставляем дефолтного чувака Test User, абсолютно не принципиально. Дело в том, что в новой версии симулятора, что мы установили, не все радужно и просто с владельцем и это тема отдельной статьи, которую я скоро напишу. Так что не мудрствуя лукаво, вписывайте себя и опять же, запомните этот момент.
И, о ужас! Красная надпись, ошибка, все пропало, крах устоев и ткани мироздания!Estate owner first name [Test]: Manoul Estate owner last name [User]: Carnell
А давайте проанализируем ошибку? Смотрите, что он нам пишет:14:14:43 - [GRID SERVICE]: Region Kin-Dza-Dza (f487bbdb-f591-493d-8c7d-7591f14db04b) registered successfully at 256000-256000 14:14:43 - [GRID CONNECTOR]: Registration failed: Region overlaps another region 14:14:43 - [STARTUP]: Registration of region with grid failed, aborting startup due to Region overlaps another region at OpenSim.Region.Framework.Scenes.Scene.RegisterRegionWithGrid () [0x00000] in:0 at OpenSim.OpenSimBase.CreateRegion (OpenSim.Framework.RegionInfo regionInfo, Boolean portadd_flag, Boolean do_post_init, IScene& mscene) [0x00000] in :0
«[GRID CONNECTOR]: Registration failed: Region overlaps another region»Это означает то, что мы пытаемся занять место, которое в гриде уже занято чьим-то симом. Дело в том, что если вы ставили ту версию, ссылку на которую я дал выше, то этот вариант уже сконфигурирован на работу с русским гридом и при старте ломится там регистрироваться, но глобальные координаты мы ему оставили 1000,1000, а этот «пуп земли» уже давно и прочно занят. Но сейчас мы хотим запустить свой сим как отдельно стоящий, поэтому переходим плавно к третьей части марлезонского балета в пилотажном кубе. Это будет незабываемо, я вам обещаю ;)
Открываем конфигурационный файл сервера и двигаем в его самый-самый конец:
- $ vi OpenSim.ini
Нужно раскомментировать строчку Include-Architecture = "config-include/Standalone.ini" и закомментировать Include-Architecture = "config-include/Grid.ini". Думаю, по названиям файлов уже догадались, что к чему, верно? ;) Все, сохраняем файл и приводим в порядок конфиги одиночного режима. Для этого идем в папку config-include/, находим файл StandaloneCommon.ini.example и копируем его с новым именем:[Architecture] ;# {Include-Architecture} {} {Choose one of the following architectures} {config-include/Standalone.ini config-include/StandaloneHypergrid.ini config-include/Grid.ini config-include/GridHypergrid.ini config-include/SimianGrid.ini config-include/HyperSimianGrid.ini} config-include/Standalone.ini ;; Uncomment one of the following includes as required. For instance, to create a standalone OpenSim, ;; uncomment Include-Architecture = "config-include/Standalone.ini" ;; ;; Then you will need to copy and edit the corresponding *Common.example file in config-include/ ;; that the referenced .ini file goes on to include. ;; ;; For instance, if you chose "config-include/Standalone.ini" then you will need to copy ;; "config-include/StandaloneCommon.ini.example" to "config-include/StandaloneCommon.ini" before ;; editing it to set the database and backend services that OpenSim will use. ;; ; Include-Architecture = "config-include/Standalone.ini" ; Include-Architecture = "config-include/StandaloneHypergrid.ini" Include-Architecture = "config-include/Grid.ini" ; Include-Architecture = "config-include/GridHypergrid.ini" ; Include-Architecture = "config-include/SimianGrid.ini" ; Include-Architecture = "config-include/HyperSimianGrid.ini"
- $ cp StandaloneCommon.ini.example StandaloneCommon.ini
Вы можете посмотреть весь список доступных команд самого симулятора простой и интуитивной командой help, которую нужно напечатать там же, в консоли, сейчас же я расскажу об одной, которая создаст вам пользователя, чтобы вы могли зайти клиентом на свежесозданный сим.Region (Kin-Dza-Dza) #
- Region (Kin-Dza-Dza) # create user Manoul Carnell MYPASSWORD MY@EMAIL
Ну что, осталось взять клиент и шагать осваивать просторы. Какой брать клиент для этого - ну уж явно не стандартный Viewer2 ;) На самом деле можно и его, просто задать ему параметр loginuri при запуске с адресом вашего сима, я просто не помню, как там точно пишется. Или любой другой клиент, тот же «Феникс». Включите отображать список доступных гридов в настройках клиента и выбирайте там. Если у вас сим на той же машине, то localhost, если же нет, то нажимайте кнопку «Grids» и добавляйте свой грид, как это сделано у меня для сима, работающего на другой машине в локальной сети:14:50:57 - [AUTHENTICATION DB]: Set password for principalID cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf 14:50:57 - [GRID SERVICE]: GetDefaultRegions returning 0 regions 14:50:57 - [USER ACCOUNT SERVICE]: Unable to set home for account Manoul Carnell. 14:50:59 - [USER ACCOUNT SERVICE]: Creating default appearance items for cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf 14:50:59 - [USER ACCOUNT SERVICE]: Creating default avatar entries for cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf 14:50:59 - [AVATAR SERVICE]: SetAvatar for cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf, attachs=0 14:51:00 - [USER ACCOUNT SERVICE]: Account Manoul Carnell created successfully
Собственно, вот и все на сегодня. Развлекайтесь, пробуйте, ругайтесь, спрашивайте, снова пробуйте. Кстати, обещанная ссылка на установку сервера под Windows, тоже ничего сложного, а все остальное точно так же.
Ах да, чуть не забыл. Выключается сервер командой shutdown, отданой ему в консоли. Не стоит просто прибивать процесс - это дурной тон, который рано или поздно закончится весьма печально для всей организации. А вот чтобы сим не болтался под руками постоянно, нужно запустить его в скрине. Сделать это достаточно просто:
- $ screen -S osim -d -m mono OpenSim.exe
- $ screen -x osim
Ну а дальше я расскажу, как подключить сим к гриду, привести это все хозяйство к более-менее удобоваримому виду, разбирая тонкие настройки сервера и как подключить сервис групп и войса, но это будет в другой раз и в другой истории.
А можно поднять свой сервер, а потом подключить в режиме Standalone;
ОтветитьУдалитьа потом уже менять на другие режимы?
Standalone;
- Standalone Hipergrid;
- Grid;
- Grid Hipergrid