Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ PtokaX под *nix _ Установка PtokaX 0.4.1.2 в Gentoo

Автор: JackM 29.11.2010, 17:32

######################### Установка Ptokax #########################
Собственно мучился мучился и да собрал таки под gentoo x86_64
Процесс частично повторяется как и у всех

Установка необходимых библиотек
emerge -av make
emerge -av gcc
emerge -av zlib
emerge -av dev-lang/lua
emerge -av net-libs/lua
emerge -av luasocket
emerge -av dev-libs/tinyxml (можно установить сразу и лишь сделать симлинки для компиляции птоки)

Создадим каталог и скачаем ptokax

Код
cd /home/jackm/
wget http://www.czdc.org/PtokaX/0.4.1.2-nix-src.tgz
tar xfvz 0.4.1.2-nix-src.tgz
cd /home/jackm/Ptokax
cd tinyxml

*(если влом делать симлинки качаем tinyxml)
Код
wget "http://downloads.sourceforge.net/project/tinyxml/tinyxml/2.5.3/tinyxml_2_5_3.tar.gz"
tar -zxvf tinyxml_2_5_3.tar.gz
cp -R /home/jackm/PtokaX/tinyxml/tinyxml/* /home/jackm/PtokaX/tinyxml
make


если все прошло успешно увидите в конце
Код
a - /home/jackm/PtokaX/tinyxml/obj/tinystr.o
a - /home/jackm/PtokaX/tinyxml/obj/tinyxml.o
a - /home/jackm/PtokaX/tinyxml/obj/tinyxmlerror.o
a - /home/jackm/PtokaX/tinyxml/obj/tinyxmlparser.o

Подправляем скрипт компиляции makefile
Код
cd ..
nano -w makefile

находим строку
Код
$(CXX) -lpthread -lz -llua5.1 -lrt -o PtokaX \

меняем на
Код
$(CXX) -lpthread -lz -lrt -ldl -o PtokaX \

далее ищем
Код
$(CURDIR)/tinyxml/tinyxml.a

меняем на
Код
$(CURDIR)/tinyxml/tinyxml.a /usr/lib64/liblua.a

сохранаем все это F2 и собираем.
Код
make

Если все правильно в конце появится строка
Код
/home/jackm/PtokaX/tinyxml/tinyxml.a /usr/lib64/liblua.a


######################### Добавляем библиотеки для скрипта StatPX #########################

Прикручиваем StatPX. Вся проблема как оказалось в отсутствие в портеже библиотек lua-gd, но мир не без добрых людей ....
Забираем все с оверлея.
Собираем
layman должен быть собран с поддержкой subversion
Код
echo "app-portage/layman subversion" >> /etc/portage/package.use
emerge -av layman

также потребуются дополнительные пакеты
Код
emerge -av dev-util/subversion
emerge -av dev-util/git

нужны для поддержки оверлеев, обновляющихся через SVN или git репозитории. По умолчанию, layman работает только с rsync
Для подключения layman необходимо поправить конфигурационный файл /etc/make.conf
Код
echo "source /var/lib/layman/make.conf" >> /etc/make.conf

Загружаем список подключаемых оверлеев
Код
layman --fetch

Для просмотра всех доступных для подключения оверлеев
Код
layman --list

Также можно обновить все подключенные оверлеи
Код
layman -f -a sunrise
layman -s sunrise
layman -S

далее устанавливаем
Код
emerge -av lua-gd
emerge -av media-libs/gd-2.0.35-r2
ln -s /usr/lib64/lua/5.1/gd.so /home/jackm/PtokaX/libs/gd.so

после запуска в логах проверяем надо ли куда еще добавить

Автор: JackM 30.11.2010, 11:27

############### Start deamon ##################
Сделал скрипт запуска и остановки
создадим файл запуска

Код
nano -w /etc/init.d/ptokax

и добавим в него следующее
Раскрывающийся текст
Код
#!/sbin/runscript
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

depend() {
        need net
}

start() {
        ebegin "Starting Ptokax"
        start-stop-daemon --start --make-pidfile --quiet --background \
                --pidfile /var/run/ptokax.pid \
                --chdir /home/jackm/PtokaX \
                --exec /home/jackm/PtokaX/PtokaX -- -c /home/jackm/PtokaX \
        eend $?
}

stop() {
        ebegin "Stopping PtokaX"
        start-stop-daemon --pidfile /var/run/ptokax.pid --stop --quiet --retry 20 \
        eend $?
}

reload() {
        if [ ! -f /var/run/ptokax.pid ]; then
                eerror "PtokaX is not running."
                return 1
        fi
        ebegin "Reloading PtokaX"
        kill -HUP `cat /var/run/ptokax.pid` &>/dev/null
        eend $?
}

Код
chmod +x /etc/init.d/ptokax

Добавим его в автозагрузку
Код
rc-update add ptokax default


я больше люблю все запускать от рута, но не совету так делать. start-stop deamon --help найдете нужный параметр для пользователя
все. big_smile.gif

Автор: mariner 30.11.2010, 18:27

Цитата
я больше люблю все запускать от рута

ну и сам себе злой буратино. Птокой от рута тебе могут все снести. чего тока стоит выполнение в системе команды rf -rf /*. Из птоки её можно отлично кинуть. так же как и добавить юзера на сервер.

Автор: Ksan 30.11.2010, 19:35

rm -rf /*

Автор: mariner 30.11.2010, 20:24

ага, опечатался. Но все ведь поняли к чему веду)

Автор: Кто-то_из_вне... 3.1.2011, 1:03

Код
emerge -av make
emerge -av gcc

Убил бы, это же Gentoo!!!1 Это тут есть по умолчанию...

про скрипт я вообще молчу...

Код
start() {
        ebegin "Starting Ptokax"
        start-stop-daemon --start --make-pidfile --quiet --background \
                --pidfile /var/run/ptokax.pid \
                --chdir /home/jackm/PtokaX \
                --exec /home/jackm/PtokaX/PtokaX -- -c /home/jackm/PtokaX \
        eend $?
}

Не проще ли вынести все это в /etc/conf.d/ptokax ?