PDA

Bekijk de volledige versie : Установка и настройка Subversion и Trac на ASUS WL500gPv2



shoorick
06-09-2009, 21:29
update/20.09.2009: Проблема успешно решена: на роутере работают и Subversion, и Trac. Текст поста оставлен прежним — для истории.
————————————————————————
Пытаюсь установить и настроить на роутере систему управления версиями Subversion (http://subversion.tigris.org/) и систему управления проектами Trac (http://trac.edgewall.org/). С переменным успехом — получается не всё, хотя раньше удавалось поставить и раскочегарить этот комбайн на компьютерах с FreeBSD.

Роутер — ASUS WL500gPv2
$ uname -a
Linux router 2.4.20 #18 Sun Mar 30 13:13:29 MSD 2008 mips GNU/LinuxК роутеру подключены флэшка (смонтирована в /opt) и USB-HDD. Каталоги /opt/share/svn и /opt/share/trac — символические ссылки на каталоги, физически хранящиеся на жёстком диске.

Как делал:

0. На роутере уже был установлен сервер lighttpd. Дополнительно поставил:

py25-genshi - 0.5.1-2 - A toolkit for stream-based generation of output for the web.
py25-setuptools - 0.6c9-2 - Tool to build and distribute Python packages, enhancement to distutils.
py25-trac - 0.11.5-1 - An enhanced wiki and issue tracking system for software development projects.
python25 - 2.5.4-2 - Python is an interpreted, interactive, object-oriented programming language.
sqlite - 3.6.16-1 - SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database
svn - 1.6.5-1 - a compelling replacement for CVS
svn-py - 1.6.5-1 - python SWIG binding for subversion


1. Пока ставил (а поставил не всё сразу — невнимательно читал мануал), сталкивался, например, с такой ошибкой:
# tracd --help
Traceback (most recent call last):
File "/opt/bin/tracd", line 5, in <module>
from pkg_resources import load_entry_point Лечится установкой всех необходимых пакетов (в моём случае не хватало py25-setuptools).

2. Сталкивался и с неподходящей локалью:
# trac-admin . initenv
Traceback (most recent call last):
File "/opt/bin/trac-admin", line 8, in <module>
load_entry_point('Trac==0.11.5', 'console_scripts', 'trac-admin')()
File "/opt/lib/python2.5/site-packages/trac/admin/console.py", line 1314, in run
return admin.onecmd(command)
File "/opt/lib/python2.5/site-packages/trac/admin/console.py", line 129, in onecmd
encoding = locale.getpreferredencoding() # sys.argv
File "/opt/lib/python2.5/locale.py", line 514, in getpreferredencoding
setlocale(LC_CTYPE, "")
File "/opt/lib/python2.5/locale.py", line 478, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale settingПричина — в переменной окружения LANG, которая равна en_US.UTF8. Можно вручную присвоить ей другое значение, например, en_US.UTF-8, с которым всё работает, но более правильным будет указать это значение в /etc/profile и сохранить файл:
flashfs save
flashfs commit
flashfs enable

3. Настройка Subversion трудностей не вызвала: есть инструкция (http://chenado.net/2008/04/23/ustanovka-i-nastrojka-svnserve-na-routere-asus-wl-500gp/), ряд постов на форуме (искать по слову svnserve), да и в svnbook она описана по-русски. Сделал запуском svnserve при загрузке роутера: создал файл /opt/etc/init.d/S66svn
#!/bin/sh
/opt/bin/svnserve -d -r /opt/share/svn/repos/и в /usr/local/sbin/post-mount добавил:
# Subversion
/opt/etc/init.d/S66svn

4. Отдельный сервер tracd запускается, например, командой
tracd --port 8000 -e /opt/share/trac --auth="*",/opt/share/trac/trac.htdigest,tracно иногда неожиданно падает, сообщив лишь одно слово
TerminatedДокументация на trac сообщает (http://trac.edgewall.org/wiki/TracStandalone), что tracd — лёгкий и быстрый сервер, сравнимый по скорости с mod_python, однако неожиданные падения не позволяют спокойно им пользоваться.

5. Под управлением веб-сервера lighttpd trac запускается, но способен вывести лишь страницу со списком доступных проектов. При обращении к любой другой пишет:
Traceback (most recent call last):
File "/opt/lib/python2.5/site-packages/trac/web/api.py", line 377, in send_error
'text/html')
File "/opt/lib/python2.5/site-packages/trac/web/chrome.py", line 726, in render_template
req.session.pop('chrome.%s.%d' % (type_, i)))
File "/opt/lib/python2.5/site-packages/trac/web/api.py", line 195, in __getattr__
value = self.callbacks[name](self)
File "/opt/lib/python2.5/site-packages/trac/web/main.py", line 264, in _get_session
return Session(self.env, req)
File "/opt/lib/python2.5/site-packages/trac/web/session.py", line 152, in __init__
self.get_session(sid)
File "/opt/lib/python2.5/site-packages/trac/web/session.py", line 173, in get_session
super(Session, self).get_session(sid, authenticated)
File "/opt/lib/python2.5/site-packages/trac/web/session.py", line 48, in get_session
db = self.env.get_db_cnx()
File "/opt/lib/python2.5/site-packages/trac/env.py", line 273, in get_db_cnx
return DatabaseManager(self).get_connection()
File "/opt/lib/python2.5/site-packages/trac/db/api.py", line 85, in get_connection
connector, args = self._get_connector()
File "/opt/lib/python2.5/site-packages/trac/db/api.py", line 130, in _get_connector
raise TracError('Unsupported database type "%s"' % scheme)
TracError: Unsupported database type "sqlite"В логах веб-сервера (/opt/var/log/lighttpd) ничего интересного: в access.log сообщается о том, что сервер ответил на запрос 500-й ошибкой (Internal server error), а в error.log вообще ничего не добавляется. Создаётся впечатление, что питон не может импортировать модуль для работы с SQLite.

Форум читал, интернеты гуглил, в бубен стучал...
Что делать дальше? Куда глядеть?

shoorick
17-09-2009, 20:59
Прочитав обсуждение китайскими товарищами схожей проблемы (http://markmail.org/message/7tx4eaqfdgpnphlv#query:related%3A7tx4eaqfdgpnphlv+ page:1+mid:m7pooxfwtpijz7nk+state:results) (у них питон ругался на неизвестный тип базы данных), попробовал удалить py25-genshi и py25-trac, а потом поставить их снова (в том же порядке). Как ни странно, помогло. Возможно, играет значение порядок установки.

То есть, задача по установке успешно решена — трак работает.

Производительность подобной системы удручающе низка: как и в случае с автономным (standalone) сервером tracd, питон неожиданно дохнет, а сервер в это время честно ждёт ответа, а потом, не дождавшись запускает новый процесс. В логе ошибок сервер пишет (убраны даты и упоминание mod_fastcgi.c):
2709) child signaled: 15
1742) connect failed: Connection refused on unix:/tmp/trac.sock-1
2943) backend died; we'll disable it for 5 seconds and send the request to another backend instead: reconnects: 0 load: 3
1742) connect failed: Connection refused on unix:/tmp/trac.sock-0
2943) backend died; we'll disable it for 5 seconds and send the request to another backend instead: reconnects: 0 load: 4
2481) unexpected end-of-file (perhaps the fastcgi process died): pid: 18475 socket: unix:/tmp/trac.sock-3
3256) child signaled: 9
3299) response not received, request sent: 1098 on socket: unix:/tmp/trac.sock-3 for /projects , closing connection
2481) unexpected end-of-file (perhaps the fastcgi process died): pid: 18490 socket: unix:/tmp/trac.sock-3
3299) response not received, request sent: 1153 on socket: unix:/tmp/trac.sock-3 for /projects , closing connection
2481) unexpected end-of-file (perhaps the fastcgi process died): pid: 18479 socket: unix:/tmp/trac.sock-2 Складывается ощущение, что питону не хватает ресурсов — его аппетит весьма могуч:
$ top
PID USER STATUS RSS PPID %CPU %MEM COMMAND
14559 admin R 11M 14558 76.2 40.1 python2.5Похоже, придётся всё-таки держать питон (вместе с траком и свн) на отдельном компьютере.

shoorick
20-09-2009, 19:46
Складывается ощущение, что питону не хватает ресурсов — его аппетит весьма могучСкорее всего, питон подыхал именно от нехватки памяти: подключение свопа позволило избавиться от падений. Теперь trac хоть и медленно, но работает.

Opilki_Inside
18-05-2010, 20:40
Посоветуйте систему баг-трекинга для установки на wl500gp, но только не Trac - уж больно медленно он работает на этом девайсе.

j00e
18-05-2010, 20:52
Redmine, мсье знает толк в извращениях.

Opilki_Inside
19-05-2010, 16:39
Redmine, мсье знает толк в извращениях.

Хорошо, мсье, а что на бэкграунд лучше прикрутить mysql или sqlite? на производительность влияет?

Berserk
17-03-2011, 11:34
Меня интересует SVN. Удалось тебе запустить Subversion на роутере? Если да, не мог бы ты поделиться бинарниками?

shoorick
17-03-2011, 13:58
Удалось тебе запустить Subversion на роутере?Ага. Но он всё равно тормозной. В результате я перевёл кое-что на github — так проще и шустрее.
не мог бы ты поделиться бинарниками?Что именно интересует? Я бинарники-то не трогал. Может, всё-таки конфиги нужны?

Berserk
18-03-2011, 10:44
Ага. Но он всё равно тормозной. В результате я перевёл кое-что на github — так проще и шустрее. Что именно интересует? Я бинарники-то не трогал. Может, всё-таки конфиги нужны?

меня интересуют бинарники собранные под проц асуса - сам саб вершн...
проект планирую контролить не открытого кода... и наверно github мне не подойдет так же ка google source и пр

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

shoorick
18-03-2011, 14:12
меня интересуют бинарники собранные под проц асуса - сам саб вершн... Так в них ничего особенного — я ставил штатным способом, описанным в руководствах на этом форуме. Наверное, уже посвежее что-нибудь вышло. Я давно софт на роутере не обновлял.
Моежт я ошибаюсь - можно ограничить доступ к исходникам на github?Можно. Но, вроде, приватные репозитории там за деньги.

Berserk
18-03-2011, 17:15
Так в них ничего особенного — я ставил штатным способом, описанным в руководствах на этом форуме. Наверное, уже посвежее что-нибудь вышло. Я давно софт на роутере не обновлял.Можно. Но, вроде, приватные репозитории там за деньги.

Если не сложно, можно ссылку на инструкцию сборки и установки SVN?
Сайт плохо работает, кодировка вечно не правильно определяется, на почту уведомления не ходят :(

al37919
18-03-2011, 17:58
перед тем как настраивать svn необходимо выполнить инструкцию по настройке роутера с нуля. Начать, как ни странно следует отсюда: http://wl500g.info/forumdisplay.php?f=86

Berserk
19-03-2011, 12:19
перед тем как настраивать svn необходимо выполнить инструкцию по настройке роутера с нуля. Начать, как ни странно следует отсюда: http://wl500g.info/forumdisplay.php?f=86

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

zlib

./configure --prefix=/home/$USER/Desktop/mips/zlib/mipsel-linux-uclibc-gnu


SQLite

./configure --prefix=/home/$USER/Desktop/mips/sqlite --host=mipsel-linux


expat
./configure --prefix=/home/$USER/Desktop/mips/expat --host=mipsel-linux


Apache Portable Runtime
./configure --prefix=/home/$USER/Desktop/mips/apr --host=mipsel-linux \
ac_cv_file__dev_zero="yes" ac_cv_func_setpgrp_void="yes" \
apr_cv_process_shared_works="yes" apr_cv_mutex_robust_shared="no" \
apr_cv_tcp_nodelay_with_cork="yes" ac_cv_sizeof_struct_iovec="8" \
apr_cv_mutex_recursive="yes"

Apache Portable Runtime Util
./configure --prefix=/home/$USER/Desktop/mips/apr-util --host=mipsel-linux --with-apr=/home/$USER/Desktop/mips/apr

Subversion
./configure --prefix=/home/$USER/Desktop/mips/subversion --host=mipsel-linux \
--with-apr=/home/$USER/Desktop/mips/apr \
--with-apr-util=/home/$USER/Desktop/mips/apr-util \
--with-zlib=/home/$USER/Desktop/mips/zlib/mipsel-linux-uclibc-gnu/ \
--with-sqlite=/home/$USER/Desktop/mips/sqlite \
--without-serf --without-apxs \
--without-berkeley-db --without-neon \
--without-ssl

и ни какой настройки роутера - все запускается на прошивке с "завода"

shoorick
21-03-2011, 19:21
но всетаки собрал я свн :( хоть и без вашей помощи...Я-то по-ленивому ставил, уже скомпилированное, командой ipkg (если правильно помню).

theMIROn
21-03-2011, 19:29
парни, я конечно все понимаю...
--prefix=/home/$USER/Desktop/mips/...
нехорошо так префиксом пользоваться. для другого он

Ivan Sergeev
06-08-2012, 18:39
Здравствуйте.

Очень хочется развернуть баг-трекер на роутере (у меня asus 500gp v2), чтобы не держать компьютер включенным.

Кто-нибудь занимался подобным? Подскажите, пожалуйста, рецептик.

От баг-трекера требуется минимум:

- вход по паролю
- создание темы для багов с описанием, можно без вложений
- переписка в теме
- жизненный статус баги - новый/взят на исполнение <кем>/заблокирован/в тестировании/закрыт
- немного статистики: возможность получить список всех незакрытых багов

Заранее спасибо, Иван.

Rucha
06-08-2012, 21:13
Вот что есть: http://libtorrent.rakshasa.no/wiki/TracFastCgi
Но сам не пробовал, т.е. FCGI у меня работает через раз :(

Ivan Sergeev
07-08-2012, 16:11
Вот что есть: http://libtorrent.rakshasa.no/wiki/TracFastCgi
Но сам не пробовал, т.е. FCGI у меня работает через раз :(

Спасибо. Буду пробовать. Отпишусь, если получится.

Ivan Sergeev
02-09-2012, 05:19
Привет.

Подскажите пожалуйста, есть ли возможность сейчас или вероятность в будущем повторить рецепт (http://wl500g.info/showthread.php?21036-%D3%F1%F2%E0%ED%EE%E2%EA%E0-%E8-%ED%E0%F1%F2%F0%EE%E9%EA%E0-Subversion-%E8-Trac-%ED%E0-ASUS-WL500gPv2&p=158817#post158817) установки баг трекера из entware?

Спасибо.

MercuryV
02-09-2012, 09:12
Подскажите пожалуйста, есть ли возможность сейчас или вероятность в будущем повторить рецепт (http://wl500g.info/showthread.php?21036-%D3%F1%F2%E0%ED%EE%E2%EA%E0-%E8-%ED%E0%F1%F2%F0%EE%E9%EA%E0-Subversion-%E8-Trac-%ED%E0-ASUS-WL500gPv2&p=158817#post158817) установки баг трекера из entware?
Несколько отзывов в упомянутой ветке, что trac крайне тормозит на wl500х Вас не смущают?

Иван, если всё указанное в силе:


От баг-трекера требуется минимум:

- вход по паролю
- создание темы для багов с описанием, можно без вложений
- переписка в теме
- жизненный статус баги - новый/взят на исполнение <кем>/заблокирован/в тестировании/закрыт
- немного статистики: возможность получить список всех незакрытых багов
т.е. не требуется интеграция svn/git и т.п., таймлайны и прочее?
То попробуйте найти как можно более легковесное решение, опробуйте на ПК, посмотрите потребление ресурсов и, если собственно функционал баг-трекера подходит, то предложите его к добавлению в Entware. Как-то так.