Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Установка MaNGOS (http://mangos.ytdb.ru/forumdisplay.php?f=25)
-   -   [Гайд] Компиляция MaNGOS под FreeBSD на примере 8.0-RELEASE (http://mangos.ytdb.ru/showthread.php?t=75)

metacreo 07.03.2010 02:10

В принципе можно было бы перенести вики полностью сюда. Но в основном там описания баз, да и проекты братские, так имеет ли смысл?

Заходите на http://wiki.ytdb.ru/ - там есть вся нужная информация. Если нету - значит надо добавить.

Инсталляция mangos под FreeBSD 8.0.

Все пути относительно корня файловой системы / и домашнего каталога ~/
В системе создан пользователь: wow Домашний каталог: /usr/home/wow
С ним и будем работать после установки портов.

Итак. Для установки, запуска и настройки нам понадобятся следующие программы:
git, subversion, mysql51-server, cmake, screen, p7zip
Всё прекрасно ставиться из портов, без каких либо патчей и извращений :yes3:
Порты ставим от root или от уполномоченного пользователя.
Код:

# whereis git subversion mysql51-server cmake screen p7zip
git:  /usr/ports/devel/git
subversion: /usr/ports/devel/subversion
mysql51-server: /usr/ports/databases/mysql51-server
cmake:  /usr/ports/devel/cmake
screen:  /usr/ports/sysutils/screen
p7zip:  /usr/ports/archivers/p7zip
#

Заходим везде и устанавливаем:
Код:

# make install clean
О настройке и установке MySQL можно почитать здесь:
http://daemony.org/freebsd/mysql51-s...ent-setup.html

Переключаемся на пользователя от которого будем работать:
Код:

# su wow
% cd (переходим в домашний каталог)

Получаем исходники mangos из github:
Код:

% git clone git://github.com/mangos/mangos.git
Получаем исходники ScriptDev2 из github:
Код:

% git clone git://github.com/scriptdev2/scriptdev2.git ~/mangos/src/bindings/ScriptDev2
Переходим в директорию с исходниками:
Код:

% cd mangos
Применяем патч ScriptDev2:
Код:

% git apply < src/bindings/ScriptDev2/patches/MaNGOS-11167-ScriptDev2.patch
Создаём директорию для сборки сервера:
Код:

% mkdir build
В принципе всё можно собрать и инсталлировать.

Переходим в каталог для сборки сервера:
Код:

% cd build
Подготавливаем сборку, указав пути для сервера:
Код:

% cmake -DPREFIX=/home/wow/server ..
Собираем и устанавливаем:
Код:

% make
% make install

Настраиваем конфигурационные файлы:
Код:

% cd ~/server/etc
% cp scriptdev2.conf.dist  scriptdev2.conf
% cp realmd.conf.dist  realmd.conf
% cp mangosd.conf.dist mangosd.conf
% ee scriptdev2.conf

Для unix сокета меняем запись по умолчанию на:
Код:

ScriptDev2DatabaseInfo    = ".;/tmp/mysql.sock;mangos;mangos;scriptdev2"
“сокет_mysql_сервера ; имя_пользователя_базы ; пароль ; имя_базы ”

Код:

% ee realmd.conf
Настраиваем mysql-сокет и логи:
Код:

LoginDatabaseInfo = ".;/tmp/mysql.sock;mangos;mangos;realmd"
LogsDir = "/home/wow/logs/" 
MaxPingTime = 30
RealmServerPort = 3724
BindIP = "0.0.0.0"

Код:

% ee mangos.conf
Настраиваем директорию с мапами, логи, mysql-сокет и мир по желанию :
Код:

RealmID = 1
DataDir = "/home/wow/server/data"
LogsDir = "/home/wow/logs"
LoginDatabaseInfo    = ".;/tmp/mysql.sock;mangos; mangos;realmd"
WorldDatabaseInfo    = ".;/tmp/mysql.sock;mangos; mangos;mangos"
CharacterDatabaseInfo = ".;/tmp/mysql.sock;mangos; mangos;characters"
LoginDatabaseConnections = 1
WorldDatabaseConnections = 1
CharacterDatabaseConnections = 1
MaxPingTime = 30
WorldServerPort = 8085
BindIP = "0.0.0.0"

Создаём директории для логов и мапов:
Код:

% mkdir ~/logs
% mkdir ~/server/data

Работа с базой.
Скачиваем заселённую базу мира YTDB и распаковываем:
(Рекомендую использовать именно YTDB так как она шагает в ногу со временем а также достаточно русифицирована)
Код:

% svn co http://svn2.assembla.com/svn/ytdbase ~/YTDB
% 7z e ~/YTDB/R59/YTDB_0.14.2_R590_MaNGOS_R11278_SD2_R2003_ACID_R308_RuDB_R38.8.7z

Заливаем базы в базы =). Обратите внимание, операции связанные с созданием баз выполняются от root.
Код:

% mysql -u root -p < ~/mangos/sql/create_mysql.sql
% mysql -u mangos -p realmd < ~/mangos/sql/realmd.sql
% mysql -u mangos -p characters < ~/mangos/sql/characters.sql
% mysql -u mangos -p mangos < ~/mangos/sql/mangos.sql
% mysql -u mangos -p mangos < ~/mangos/sql/mangos_spell_check.sql

Заливаем базу мира YTDB и обновления:
Код:

% mysql -u mangos -p mangos < ~/YTDB/R59/YTDB_0.14.2_R590_MaNGOS_R11278_SD2_R2003_ACID_R308_RuDB_R38.8.sql
% mysql -u mangos -p mangos < ~/YTDB/R59/Updates/591_corepatch_mangos_11278_to_11299.sql
% mysql -u mangos -p mangos < ~/YTDB/R59/Updates/591_mangos_FIX_\(11299\).sql

В такой последовательности применяем все последующие обновления, если таковы существуют.
Далее заливаем в базу ScriptDev2:
Код:

% mysql -u root -p < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_create_database.sql
% mysql -u mangos –p scriptdev2 < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_create_structure_mysql.sql
% mysql -u mangos –p scriptdev2 < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_script_full.sql
% mysql -u mangos -p mangos < ~/mangos/src/bindings/ScriptDev2/sql/mangos_scriptname_full.sql

Добавляем свой реалмлист и аккаунт ГМ (admin) через mysql:
Код:

% mysql -u mangos -p realmd
mysql> UPDATE realmlist SET name='my super server', address='192.168.0.10' WHERE id='1';
mysql> DELETE FROM account;
mysql> INSERT INTO account (username,sha_pass_hash,gmlevel)  VALUES ('admin',SHA1(CONCAT(UPPER('admin'),':',UPPER('password'))),'3');

192.168.0.10 - ip интерфейса, который смотрит в сеть, admin и password - логин и пароль ГМа.

Выдираем карты из клиента и копируем в директорию для мапов:
~/mangos/contrib/extractor/ad.exe и ~/mangos/contrib/vmap_extract_assembler_bin всё из папки копируем в корневую папку клиента wow,
на машину под управлением Windows. Запускаем ad.exe, ждём завершения, запускаем makevmaps_SIMPLE и тоже ждём.
Заливаем папки vmaps, maps и dbc на FreeBSD в директорию которую создали ранее ~/mangos/data
Должно получиться так: ~/server/data/vmaps ~/server/data/maps ~/server/data/dbc

Редактируем скрипт запуска:
Код:

% ee /usr/home/wow/server/bin/run-mangosd
Код:

#!/bin/sh
while true ; do
servlog='/home/wow/logs/Server.log';
outpatch='/home/wow/logs/crash/';
date=`date "+%Y-%m-%d_%H:%M:%S"`;
echo "Server CRASHED !!! Start Bugreport System." >> $outpatch$date.txt;
echo "Server.log Log FILE Last 30 Lines:" >> $outpatch$date.txt;
cat $servlog | tail -n 30 >> $outpatch$date.txt;
echo "" >> $outpatch$date.txt;
echo "END bugtracker system." >> $outpatch$date.txt;
nice -n -20 /home/wow/server/bin/mangosd
done

Делаем скрипт запуска исполняемым:
Код:

% chmod +x /usr/home/wow/server/bin/run-mangosd
Запускаем:
Код:

% screen -AmdS realm /home/wow/server/bin/realmd
% screen -AmdS world /home/wow/server/bin/run-mangosd

чтобы посмотреть, что происходит с сервером, вводим команды:
для реалма
% screen -r realm
для мира
% screen -r world
когда насмотрелись, жмём Ctrl+A,D чтобы отключиться от screen.
Ctrl+C остановит сервер

Первый запуск mangosd рекомендуется произвести без screen.
Код:

% screen -AmdS realm /home/wow/server/bin/realmd
% cd /home/wow/server/bin/
%  ./mangosd

Вот и всё. Ничего особенного.
Удачи всем.

FreeBSD 07.03.2010 11:59

[Гайд] Компиляция MaNGOS под FreeBSD на примере 8.0-RELEASE
 
Устаревший

Next 08.03.2010 06:45

На версии 7.2 Stable зачастую пропатчить SD получится только нижеописаной командой. Возможно в 8 версии может возникнуть проблема с заливкой патча.

Код:

git apply src/bindings/ScriptDev2/patches/MaNGOS-9519-ScriptDev2.patch
Добавьте как дополнение в первый пост.

muraig 10.03.2010 08:15

Доброе время суток!
собрал порт под FreBSD-8
опции такие:
Код:

USE_AUTOTOOLS=    aclocal:19 libtoolize autoconf:262 autoheader:262 automake:19 libtool:22
ACLOCAL_ARGS=      -I ${LOCALBASE}/share/aclocal
AUTOMAKE_ARGS=    -a
USE_GMAKE=              yes
USE_AUTOCONF=      yes
USE_AUTOMAKE=      yes
USE_LIBTOOL=            yes

CPPFLAGS+=              -I${LOCALBASE}/include
CFLAGS+=                    -O0
CONFIGURE_ENV=    CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
GNU_CONFIGURE=    yes
USE_LDCONFIG=        yes
LDFLAGS+=                  -L${LOCALBASE}/lib -L/usr/lib
LIB_DEPENDS=          ACE.5:${LOCALBASE}/lib
LIB_DEPENDS=          ssl.7:${LOCALBASE}/lib
USE_GNOME=              gnometarget pkgconfig

CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
CONFIGURE_ENV=      CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
INSTALLS_SHLIB=          yes

опции взял по аналогии с портом ACE-5-7-5
пытаюсь скомпилить, при make run-autotools-automake
мне такая ошибка:
Код:

Makefile.am: installing `./INSTALL'
configure.ac:36: error: possibly undefined macro: AC_MSG_ERROR
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
*** Error code 1

Stop in /usr/local/data/svn/PORTS/mangos.

Пытаюсь разобраться с зависимостями..может кто навскидку подскажет в чем причина ошибки ?

ice74 10.03.2010 10:21

Цитата:

исходники мангоса здесь: /home/mangos/mangos
скриптдева здесь: /home/mangos/scriptdev2

Обнавляем по svn:
svn up /home/mangos/mangos
svn up/home/mangos/scritpdev2

копируем исходники в отдельные папки:
cp -r /home/mangos/mangos /home/mangos/mangos-4490 (согласно версии ядра)
cp -r /home/mangos/scriptdev2 /home/mangos/ScriptDev2-134

делаем архивы (находимся в /home/mangos) :
tar -czf mangos-4490.tar.gz mangos-4490/*
tar -czf ScriptDev2-134.tar.gz ScriptDev2-134/*

переносим арихвы в хранилище дистов:
mv *tar.gz /usr/ports/distfiles/

идём в порт мангоса:
cd /usr/ports/games/mangos

правим мэйкфайл - меняем версию ядра и скриптдева на новую

в файле distinfo можно заменить размеры и хешы дистов на новые, но это не обязательно, если запустить сборку с NO_CHECKSUM=yes

и теперь собираем и устанавливаем:
make NO_CHECKSUM=YES
make deinstall
make reinstall
со старого форума

FreeBSD 10.03.2010 14:30

я пользуюсь gmake

Splinter 10.03.2010 22:08

Выкладываю порт ACE-5.7.8

http://filebeam.com/ecf3e052342312206eeee9a56ff01c7c

Распаковываем в /usr/ports/devel/
Переходим в /usr/ports/devel/ace-devel/
Пишем make install clean.

При ../configure указывайте ключ --disable-builtin-ace.

AVATAR 10.03.2010 22:44

Компилирую под FreeBSD 7.2 и думаю что:

Код:

git apply src/bindings/ScriptDev2/patches/MaNGOS-9519-ScriptDev2.patch
Нужно исправить на:

Код:

git apply < src/bindings/ScriptDev2/patches/MaNGOS-9519-ScriptDev2.patch
И естественно допишите в мануале, что путь в данном случае лучше указать из корня файловой системы... /usr/local/ итд, а то появляются непонятки...

:)

KaraPUZ 15.03.2010 21:18

Вот в первом посте написано как ставить пакеты,если они уже есть на копме,а как ставить если тянуть с репо с инета ?
Например как на линуксе apt-get installl ?
Есть ли что-то подобное на фрибсд ?
Я еще не перешла на фри,но хотелосьбы узнать всё перед переходом на другую ОС.

muraig 16.03.2010 04:15

libmangosscript.so
 
Доброе время суток !
Вот такая ошибка:
Код:

>> Loaded 16052 CreatureEventAI scripts                   
Initializing Scripts...
Error loading Scripts Library libmangosscript.so !
 Library missing required functions.

Вот ревизия и базы:
Код:

MaNGOS/0.16.0 (2010-03-12 15:20:05 Revision 9573 - 43dbe28912a5d5418c816243492f219bed92eeb0) for FreeBSD_x64 (little-endian) [world-daemon]
инструменты:
Код:

ACLOCAL = /usr/local/bin/aclocal-1.10
AUTOCONF = /usr/local/bin/autoconf-2.62
AUTOHEADER = /usr/local/bin/autoheader-2.62
AUTOMAKE = /usr/local/bin/automake-1.10

это пока не включаю:
Код:

#LIB_DEPENDS+=<>ACE.5:/usr/update/ace
#NOCLEANDEPENDS=        yes

опции сборки: и конфигурирования:
собираю вот так: патч накладываю так:
инфу о библиотеках добавил:
Код:

ldconfig -m /usr/server/game/lib
борю уже третьи сутки..может у кого было такое ?
другую ревизию не беру, без ACE не компилю, дабы выяснить причину, где ошибка - у меня в системе, в опциях сборки или в исходниках ?

muraig 16.03.2010 04:50

Port
 
Цитата:

Сообщение от ice74 (Сообщение 1108)
со старого форума

А Вы сами пробовали так собрать ?

P.S. где то видел кнопочку Spoiler ..а то слишком громоздкое сообщение получается..

muraig 16.03.2010 09:26

Цитата:

Сообщение от KaraPUZ (Сообщение 2188)
Вот в первом посте написано как ставить пакеты,если они уже есть на копме,а как ставить если тянуть с репо с инета ?
Например как на линуксе apt-get installl ?
Есть ли что-то подобное на фрибсд ?
Я еще не перешла на фри,но хотелосьбы узнать всё перед переходом на другую ОС.

есть два типа установки.
если кардинальных иземений нету в проекте и есть *.tar.gz, *.bzip2(архивные файлы) - то можно и отделаться простым редактированием файла Makefile:
Код:

PORTVERSION=<-->9556
а можно так например ..если нет архивов:
скачиваем их svn && git && hg && mercurial
например установив подобную прогу и, скачав исходники, сделать из них архив типа
P.S. не рекомандую начинать свое знакомство со сборки MaNGOS..уж очень ядреный проект ... :-)
установка с помощью pkg_add -r mangos-super-server.bzip2 , как Вы предполагали - не предусмотренна :-)

muraig 17.03.2010 07:51

ScriptDev2DatabaseInfo
 
Цитата:

Сообщение от muraig (Сообщение 2213)
Доброе время суток !
Вот такая ошибка:
Код:

>> Loaded 16052 CreatureEventAI scripts                   
Initializing Scripts...
Error loading Scripts Library libmangosscript.so !
 Library missing required functions.

борю уже третьи сутки..может у кого было такое ?
другую ревизию не беру, без ACE не компилю, дабы выяснить причину, где ошибка - у меня в системе, в опциях сборки или в исходниках ?

Нашел ошибку..
Код:

#ScriptDev2DatabaseInfo    = "127.0.0.1;3306;mangos;mangos;scriptdev2"
ScriptDev2DatabaseInfo    = ".;/tmp/mysql.sock;mangos;mangos;scriptdev2"

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

ScriptDev2DatabaseInfo    = "192.168.0.3;3306;mangos;mangos;scriptdev2"
все 7 скомпиленных, к тому времени экземпляров серверов, запустились, как им и положено ! :)
Сейчас генерю pkg-plist для порта..может кто внятно расскажет как это правильнее сделать..ссылки, типо:
Код:

http://oldes.tstu.ru:8104/freebsd/ru/books/porters-handbook/book.html#PORTING-PLIST
уже не помогают..читаю третий день не могу понять в каком месте затык.
WRKDIR/.PLIST.mktmp пркактически пустой - дерево каталогов и файлов в него не пишется !!
P.S. мангос собираю портом ;)

Hoper 17.03.2010 16:35

ставилю на FreeBSD-8.0
при make ругнулось так:
PHP код:

...
Making all in tbb
"../../../dep/tbb/build/common.inc"line 27Need an operator
"../../../dep/tbb/build/common.inc"line 28Missing dependency operator
"../../../dep/tbb/build/common.inc"line 29Need an operator
"../../../dep/tbb/build/common.inc"line 30Need an operator
"../../../dep/tbb/build/common.inc"line 32Missing dependency operator
"../../../dep/tbb/build/common.inc"line 33Missing dependency operator
"../../../dep/tbb/build/common.inc"line 34Need an operator
"../../../dep/tbb/build/common.inc"line 35Need an operator
"../../../dep/tbb/build/common.inc"line 36Missing dependency operator
"../../../dep/tbb/build/common.inc"line 37Need an operator
"../../../dep/tbb/build/common.inc"line 38Need an operator
"../../../dep/tbb/build/common.inc"line 39Missing dependency operator
"../../../dep/tbb/build/common.inc"line 40Need an operator
"../../../dep/tbb/build/common.inc"line 41Need an operator
"../../../dep/tbb/build/common.inc"line 42Need an operator
"../../../dep/tbb/build/common.inc"line 43Need an operator
"../../../dep/tbb/build/common.inc"line 44Need an operator
Error expanding embedded variable
.
*** 
Error code 1

Stop in 
/usr/home/mangos/comp/obj/dep.
*** 
Error code 1

Stop in 
/usr/home/mangos/comp/obj.
*** 
Error code 1

Stop in 
/usr/home/mangos/comp/obj

смотрю "../../../dep/tbb/build/common.inc >>
там вот такие строчки:
PHP код:

...
ifndef tbb_os
 ifeq 
($(OS), Windows_NT)
  
export tbb_os=windows
 
else
  
OS:=$(shell uname)
  
ifeq ($(OS),)
   $(
error "$(OS) is not supported")
  else
   
export tbb_os=$(OS)
   
ifeq ($(OS), Linux)
    
export tbb_os=linux
   
endif
   
ifeq ($(OS), Darwin)
    
export tbb_os=macos
   
endif
  endif 
# OS successfully detected
 
endif # !Windows
endif # !tbb_os
... 

нет FreeBSD :(
Как тут быть?

ice74 17.03.2010 17:59

юзай gmake

muraig 17.03.2010 19:41

Posrts && gmake
 
если портом, то:
Код:

USE_GMAKE=<----><------>yes
GNU_CONFIGURE=<><------>yes
CONFIGURE_TARGET=<----->--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}

если вручную, то:
Код:

configure.ac
(строка 44)
      For example, try the following from the top-level source
      directory:

          mkdir objdir
          cd objdir
          ../configure
          make

хотя при этом собирать все таки нужно
gmake && gmake install

muraig 18.03.2010 04:00

Цитата:

Сообщение от muraig (Сообщение 2370)
Нашел ошибку..
уже не помогают..читаю третий день не могу понять в каком месте затык.
WRKDIR/.PLIST.mktmp пркактически пустой - дерево каталогов и файлов в него не пишется !!
P.S. мангос собираю портом ;)

собрал портом, запустил, работает..Квест "Смерть подбирается с высоты" не работает..
ошибка была в компиляции не с теми опциями
либо собирать с
Код:

ACE 5.6.6
нативная, с мангосом..

либо, например с такой:
Код:

ACE 5.7.5
поставил отдельно, при установке указал
Код:

LIB_DEPENDS=<-->ACE.5:${PORTSDIR}/../update/ace
где :
Код:

data# ldconfig -r|grep ACE
        309:-lACE.5 => /usr/local/lib/libACE.so.5

и :
Код:

${PORTSDIR}/../update/ace
в опциях сборки добавляем:
Код:

CONFIGURE_ARGS+=<------>--enable-builtin-ace=no
..в портах только 5.6.2
путь до порта с актуальным ACE-5.7.5 :
Код:

ftp://ftp.goszakaz38.ru/distfiles/ace-5.7.5.tar.bz2
P.S.
Код:

<------>
так у меня в mc выглядит "Tab" (знак табуляции)

FreeBSD 18.03.2010 18:15


Hoper 24.03.2010 10:10

Ставили мы ставили и наконец поставили
от уже не знаю где и что поправилось но грешу на релизы.:declare:
  • mangos rel = 9611
  • ScriptDev2 rel = 1646
  • FreeBSD = 8.0
Вот что стоит в системе: :secret:
#pkg_info
Код:

apr-ipv6-gdbm-db42-1.3.8.1.3.9 Apache Portability Library
autoconf-2.13.000227_6 Automatically configure source code on many Un*x platforms
autoconf-2.62      Automatically configure source code on many Un*x platforms
autoconf-wrapper-20071109 Wrapper script for GNU autoconf
automake-1.10.1    GNU Standards-compliant Makefile generator (1.10)
automake-1.4.6_5    GNU Standards-compliant Makefile generator (1.4)
automake-1.5_5,1    GNU Standards-compliant Makefile generator (1.5)
automake-1.6.3_1    GNU Standards-compliant Makefile generator (1.6)
automake-1.7.9_2    GNU Standards-compliant Makefile generator (1.7)
automake-1.8.5_3    GNU Standards-compliant Makefile generator (1.8)
automake-1.9.6_3    GNU Standards-compliant Makefile generator (1.9)
automake-wrapper-20071109 Wrapper script for GNU automake
autotools-20080819  Autotools meta-port
ca_root_nss-3.11.9_2 The root certificate bundle from the Mozilla Project
curl-7.19.6_1      Non-interactive tool to get files from FTP, GOPHER, HTTP(S)
cvsps-2.1          Create patchset information from CVS
db42-4.2.52_5      The Berkeley DB package, revision 4.2
expat-2.0.1        XML 1.0 parser written in C
gdbm-1.8.3_3        The GNU database manager
gettext-0.17_1      GNU gettext package
git-1.6.4.3        Distributed source code management tool
glib-2.20.5        Some useful routines of C programming (current stable versi
gmake-3.81_3        GNU version of 'make' utility
gnuit-4.9.5        GNU Interactive Tools - a file system browser for UNIX syst
help2man-1.36.4_3  Automatically generating simple manual pages from program o
libiconv-1.13.1    A character set conversion library
libtool-2.2.6a      Generic shared library support script
m4-1.4.13,1        GNU m4
mysql-client-5.1.39 Multithreaded SQL database (client)
mysql-server-5.1.39 Multithreaded SQL database (server)
neon28-0.28.6      An HTTP and WebDAV client library for Unix systems
p5-Error-0.17015    Perl module to provide Error/exception support for perl: Er
p5-IO-Socket-SSL-1.30 Perl5 interface to SSL sockets
p5-Net-SMTP-SSL-1.01 An SMTP client supporting SSL
p5-Net-SSLeay-1.35_2 Perl5 interface to SSL
p5-Term-ReadKey-2.30 A perl5 module for simple terminal control
p5-gettext-1.05_2  Message handling functions
p5-subversion-1.6.5 Perl bindings for Version control system
pcre-7.9            Perl Compatible Regular Expressions library
perl-5.8.9_3        Practical Extraction and Report Language
pkg-config-0.23_1  A utility to retrieve information about installed libraries
python26-2.6.2_3    An interpreted object-oriented programming language
screen-4.0.3_6      A multi-screen window manager
sqlite3-3.6.14.2    An SQL database engine in a C library
subversion-1.6.5    Version control system

***Пошел вспоминать как заливать базы... и писать скрипты для запуска.

P.S. в WoW не играю - обо зло, но вот покомпилить и поднастроить...

Pilop 12.04.2010 15:39

Доброе время суток.
Столкнулся с проблемой компиляции исходников http://github.com/Tasssadar/Valhalla-Project
выдает:
Код:

../shared/Config/libmangosconfig.a ../shared/Auth/libmangosauth.a ../shared/libmangosshared.a ../framework/libmangosframework.a ../../dep/src/sockets/libmangossockets.a -lpthread -pthread -Wl,-rpath -Wl,/opt/compile/bin9720/lib -Wl,-rpath -Wl,/usr/local/lib/mysql
/usr/bin/ld: cannot find -ltbb
gmake[3]: *** [mangos-realmd] Error 1

как я понял из-за не установленной библиотеки libtbb.
Пытался установить выдает:
Цитата:

/usr/bin/ld: .libs/libtbb.o: relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
.libs/libtbb.o: could not read symbols: Bad value
*** Error code 1
Не подскажите что за флаг -fPIC... и как вообще устранить ошибку?

xmolex 12.04.2010 16:02

Цитата:

Сообщение от Pilop (Сообщение 4351)
Не подскажите что за флаг -fPIC... и как вообще устранить ошибку?

Почитайте http://www.firststeps.ru/linux/r.php?6
Попробуйте скомпилить с этим флагом, должно работать, хотя могут потом вылести грабли. Но у меня работает на каком-то сервере с -fPIC.

Anti 12.04.2010 16:04

Цитата:

Сообщение от Pilop (Сообщение 4351)
Доброе время суток.
Столкнулся с проблемой компиляции исходников http://github.com/Tasssadar/Valhalla-Project
выдает:

как я понял из-за не установленной библиотеки libtbb.
Пытался установить выдает:


Не подскажите что за флаг -fPIC... и как вообще устранить ошибку?

А система у вас какая?
Ставьте уже готовые библиотеки. На центосе это выглядело бы так

Код:

yum install libtbb

Pilop 12.04.2010 16:53

Цитата:

Сообщение от xmolex (Сообщение 4354)
Почитайте http://www.firststeps.ru/linux/r.php?6
Попробуйте скомпилить с этим флагом, должно работать, хотя могут потом вылести грабли. Но у меня работает на каком-то сервере с -fPIC.

хм. а как его подключить на freebsd?
make -fPIC ? не помогает, точнее вообще:
make: cannot open PIC.

Anti, я бы не спал писать в теме о компиляции в системе freebsd, о какой либо другой системы.

Anti 12.04.2010 17:41

Код:

sudo install libtbb
Звиняйте, просто отвлёкся от темы.

если не поможет, нужно собирать tbb (configure, make) на вашей машине и устанавливать(make install).

xmolex 12.04.2010 18:25

Цитата:

Сообщение от Pilop (Сообщение 4360)
хм. а как его подключить на freebsd?
make -fPIC ? не помогает, точнее вообще:

Попробуйте ./configure -Accflags="-fPIC"

Pilop 12.04.2010 18:38

Цитата:

Сообщение от xmolex (Сообщение 4366)
Попробуйте ./configure -Accflags="-fPIC"

Точно, подключал я ее тоже было при конфигурации, но не правильно.. В общем спасибо)

metacreo 29.04.2010 22:48

Ошибко
 
Ставил и переустанавливал неделю назад без проблем.
Сейчас день мучаюсь :(

%git clone git://github.com/mangos/mangos.git

Initialized empty Git repository in /usr/home/wow/mangos/.git/
remote: Counting objects: 58740, done.
remote: Compressing objects: 100% (9882/9882), done.
remote: Total 58740 (delta 49114), reused 58374 (delta 48790)
Receiving objects: 100% (58740/58740), 38.42 MiB | 345 KiB/s, done.
Resolving deltas: 100% (49114/49114), done.
Checking out files: 100% (4037/4037), done.

%cd mangos

%git pull origin master

From git://github.com/mangos/mangos
* branch master -> FETCH_HEAD Already up-to-date.

%autoreconf -f -i

autoreconf-2.62: configure.ac' orconfigure.in' is required

%git add *

%autoreconf -f -i

autoreconf-2.62: configure.ac' orconfigure.in' is required

%ls configure.ac
configure.ac
%

CruncH 30.04.2010 09:40

autoreconf -vif более подробная информация
ls -l configure.* права на файлы

metacreo 30.04.2010 09:56

.
 
спасибо
перекочал сорсы и все пошло :)
видимо net error file corrupt
иду мучаться с базой

nixme 04.05.2010 18:25

При попытке пересобрать configure говорит
Код:

checking if generated ACE configuration is usable... no
configure: error:
The generated configuration appears to be unusable.  Please verify
that your system path and environment variables are correct.  If they
appear to be correct then please send the maintainer of this configure
script ace-users@cs.wustl.edu the *COMPRESSED* 'config.log' file
and the following information:

  ACE 'configure' Script Information
  ==================================
  RCS Id: configure.ac 82832 2008-09-25 17:38:39Z jtc


  ACE Version:        5.6.6
  C++ Compiler:      g++
  C++ Preprocessor:  g++ -E
  C++ Flags:          -W -Wall -Wpointer-arith  -I/usr/local/include -g -O2 -pthread -pipe
  Preprocessor Flags:  -D_REENTRANT -D_THREAD_SAFE
  Linker:            /usr/bin/ld
  Linker Flags:
  Libraries:
  System type information:
    Build: amd64-unknown-freebsd8.0  Host: amd64-unknown-freebsd8.0

In the meantime, please use the stock ACE build procedure detailed in
the file 'ACE-INSTALL.html'.

autoreconf вроде залазит в ace и проходит, а вот конфиг нет.
До этого сервер собрался, все что менялось с момента пересборки это версия mysql. ACE сейчас установлен, почему не цепляется только.

metacreo 05.05.2010 11:27

Цитата:

Сообщение от nixme (Сообщение 5580)
ACE сейчас установлен, почему не цепляется только.


Обясните зачем его устанавливать если он прекрасно собираеться вместе
с сорсами мангоса?
Пробывали многие АСЕ собирать отдельно... Ничего хорошего не получается.

nixme 05.05.2010 15:43

Почитал ряд статтей, собирать асе отдельно и правда нет смысла, тем более что для аутконфе 2.62 щас все работает с их деп асе, удалил асе из портов - помогло.

Devel 08.05.2010 12:44

Флаг -with-python что дает?

CruncH 08.05.2010 21:24

Цитата:

Сообщение от Devel (Сообщение 5887)
Флаг -with-python что дает?

Ни чего не делает. Смотрите --help и не найдете такой опции.

[CPS] AkirA 08.05.2010 23:56

ха, выглядит как мой гайд, котоый я когдато писал для вики
хотя это он и есть, просто криво скопирован с добавлением ошибок )

topneDa 01.11.2010 03:19

Видимо читал не внимательно, чуть выше проблему, точнее решение описали...

Resus 07.11.2010 13:42

Народ хелпп бъюсь уже 3 сутки немогу найти где грабли сорсы перекачивал результат тотже
BSD 8.1
релизы магоса и SD какие были по свн не помню сконфигурил а вот компилиться нехотит гуглил но что то нечего не нашел ниже на чем высапает ерорами
[ps@bsd ~/mangos/objdir]$gmake сначало идет нормально минуты через2 вот это
Код:

In file included from ../../../../dep/ACE_wrappers/ace/OS_NS_netdb.h:142,
                from ../../../../dep/ACE_wrappers/ace/ICMP_Socket.cpp:9:
../../../../dep/ACE_wrappers/ace/OS_NS_netdb.inl: In function 'hostent* ACE_OS::gethostbyaddr_r(const char*, int, int, hostent*, char*, int*)':
../../../../dep/ACE_wrappers/ace/OS_NS_netdb.inl:203: error: cannot convert 'int*' to 'hostent**' for argument '7' to 'int gethostbyaddr_r(const void*, socklen_t, int, hostent*, char*, size_t, hostent**, int*)'
../../../../dep/ACE_wrappers/ace/OS_NS_netdb.inl: In function 'hostent* ACE_OS::gethostbyname_r(const char*, hostent*, char*, int*)':
../../../../dep/ACE_wrappers/ace/OS_NS_netdb.inl:393: error: cannot convert 'int*' to 'hostent**' for argument '5' to 'int gethostbyname_r(const char*, hostent*, char*, size_t, hostent**, int*)'
/usr/include/netdb.h: In function 'protoent* ACE_OS::getprotobyname_r(const char*, protoent*, char*)':
/usr/include/netdb.h:271: error: too few arguments to function 'int getprotobyname_r(const char*, protoent*, char*, size_t, protoent**)'
../../../../dep/ACE_wrappers/ace/OS_NS_netdb.inl:557: error: at this point in file
/usr/include/netdb.h: In function 'protoent* ACE_OS::getprotobynumber_r(int, protoent*, char*)':
/usr/include/netdb.h:273: error: too few arguments to function 'int getprotobynumber_r(int, protoent*, char*, size_t, protoent**)'
../../../../dep/ACE_wrappers/ace/OS_NS_netdb.inl:638: error: at this point in file
/usr/include/netdb.h: In function 'servent* ACE_OS::getservbyname_r(const char*, const char*, servent*, char*)':
/usr/include/netdb.h:277: error: too few arguments to function 'int getservbyname_r(const char*, const char*, servent*, char*, size_t, servent**)'
../../../../dep/ACE_wrappers/ace/OS_NS_netdb.inl:727: error: at this point in file
gmake[6]: *** [libACE_la-ICMP_Socket.lo] Ошибка 1
gmake[6]: Leaving directory `/usr/home/ps/mangos/objdir/dep/ACE_wrappers/ace'
gmake[5]: *** [all-recursive] Ошибка 1
gmake[5]: Leaving directory `/usr/home/ps/mangos/objdir/dep/ACE_wrappers/ace'
gmake[4]: *** [all] Ошибка 2
gmake[4]: Leaving directory `/usr/home/ps/mangos/objdir/dep/ACE_wrappers/ace'
gmake[3]: *** [all-recursive] Ошибка 1
gmake[3]: Leaving directory `/usr/home/ps/mangos/objdir/dep/ACE_wrappers'
gmake[2]: *** [all-recursive] Ошибка 1
gmake[2]: Leaving directory `/usr/home/ps/mangos/objdir/dep'
gmake[1]: *** [all-recursive] Ошибка 1
gmake[1]: Leaving directory `/usr/home/ps/mangos/objdir'
gmake: *** [all] Ошибка 2


Konctantin 07.11.2010 14:35

После обновления библиотеки АСЕ на FreeBSD не компилируется...
http://getmangos.com/community/viewtopic.php?id=15456

xmolex 08.11.2010 14:03

После 10643 у многих BSD'шников начался настоящий геморрой. Хочу поделиться тем, что помогло мне:

Если у вас:
Код:

../../../../dep/ACE_wrappers/ace/OS_NS_signal.inl: In function 'int ACE_OS::pthread_sigmask(int, const sigset_t*, sigset_t*)':
../../../../dep/ACE_wrappers/ace/OS_NS_signal.inl:31: error: '::pthread_sigmask' has not been declared

То в dep/ACE_wrappers/ace/OS_NS_signal.inl вставляем
Код:

#include <pthread.h>
#include <signal.h>

Если у вас:
Код:

../../ace/OS_NS_netdb.inl: 189: error: cannot convert 'int *' to 'hostent **' for argument'7 'to' int
gethostbyaddr_r (const void *, socklen_t, int, hostent *, char *, size_t, hostent **, int *) '

То после ./configure в dep/ACE_wrappers/ace/config.h внесите
Код:

#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS

rsa 08.11.2010 14:47

и охота вам таким мазохизмом заниматься? --enable-builtin-ace=no, скомпилите либу полностью 1 раз и забудьте про эту асю насовсем...


Текущее время: 08:34. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS