<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>шаманские бредни &#187; ubuntu</title>
	<atom:link href="http://shamansir.wordpress.com/category/os/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://shamansir.wordpress.com</link>
	<description>исследования окружающего мира, основанные на нестандартном подходе</description>
	<lastBuildDate>Fri, 06 Feb 2009 09:13:58 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='shamansir.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/4235daf5e3b5fa9c430aa5249e324027?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>шаманские бредни &#187; ubuntu</title>
		<link>http://shamansir.wordpress.com</link>
	</image>
			<item>
		<title>Trac + Subversion @ Ubuntu: Revisited</title>
		<link>http://shamansir.wordpress.com/2008/03/17/trac-subversion-ubuntu-revisited/</link>
		<comments>http://shamansir.wordpress.com/2008/03/17/trac-subversion-ubuntu-revisited/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 23:12:04 +0000</pubDate>
		<dc:creator>shaman.sir</dc:creator>
				<category><![CDATA[os]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[девелопмент]]></category>

		<guid isPermaLink="false">http://shamansir.wordpress.com/?p=70</guid>
		<description><![CDATA[
  
Задача
Установить на только что инсталлированный Ubuntu последнюю версию Trac, создать  репозитории для нескольких проектов и настроить окружение соответственно. Структура проектов должна быть полностью корректной, установка максимально быстрой при минимальном количестве пакетов. Авторизация в репозитории и окружения Trac может быть общей, но позволяющей индивидуальную настройку для каждого проекта. Также, установка должна быть максимально [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=70&subd=shamansir&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="This acrticle at wikidot.com" href="http://shaman-sir.wikidot.com/trac-subersion-ubuntu-revisited"><img style="float:right;border:none;" src="http://shamansir.files.wordpress.com/2008/05/wikidot.gif?w=16&#038;h=16" alt="This acrticle at wikidot.com" width="16" height="16" /></a></p>
<p><a href="http://ubuntu.com/" title="Ubuntu"><img src="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" alt="Ubuntu" style="border:1px dotted #000000;" /></a> <a href="http://trac.edgewall.org/" title="Trac"><img src="http://shamansir.files.wordpress.com/2007/08/trac.png" alt="Trac" style="border:1px dotted #000000;" /></a> <a href="http://subversion.tigris.org/" title="Subversion"><img src="http://shamansir.files.wordpress.com/2007/08/svn.png" alt="Subversion" style="border:1px dotted #000000;" /></a></p>
<h5>Задача</h5>
<p style="text-align:justify;">Установить на только что инсталлированный Ubuntu последнюю версию Trac, создать  репозитории для нескольких проектов и настроить окружение соответственно. Структура проектов должна быть полностью корректной, установка максимально быстрой при минимальном количестве пакетов. Авторизация в репозитории и окружения Trac может быть общей, но позволяющей индивидуальную настройку для каждого проекта. Также, установка должна быть максимально независима от версий.</p>
<p><span id="more-70"></span></p>
<h5>Дано</h5>
<ul>
<li>Ubuntu 7.04 <i>Feisty Fawn Herd</i></li>
<li>Trac 0.11b2</li>
<li>Subversion 1.4.3</li>
<li>Два пользователя: <code>user1</code> и <code>user2</code></li>
<li>Два проекта: <code>Some Project</code> и <code>Another Project</code></li>
<li>Требуется доступ в Trac и репозиторий по адресам <code>&lt;host&gt;/localProjects</code> и <code>&lt;host&gt;/svn</code> соотвественно</li>
</ul>
<h5>Решение. Пункт 1. Установка базовых дистрибутивов, доступных в пакетах.</h5>
<p style="text-align:justify;">Для начала можно установить дистрибутивы, доступные в репозиториях Ubuntu в поддерживаемых версиях &#8211; на данный момент это <a href="http://apache.org">Apache</a> 2.2.3, <a href="http://python.org">Python</a> 2.5.1 (необходим для работы trac), <a href="http://subversion.tigris.org/">Subversion</a> 1.4.3 и <a href="http://gcc.gnu.org/">g++</a> 4.1.2 (необходим для сборки sqlite). Установим, предварительно обновив данные о пакетах:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo apt-get update
sudo apt-get install python
sudo apt-get install apache2
sudo apt-get install subversion
sudo apt-get install g++</code></pre>
<h5>Решение. Пункт 2. Установка sqlite.</h5>
<p style="text-align:justify;">Теперь необходимо собрать sqlite (легковесная база данных, в котрой будут хранится внутренние данные trac) — версия, находящая в репозитории (3.3.13) на данный момент меньше требуемой (3.3.4). Создадим каталог для временного хранения дистрибутивов и перейдём в него:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>mkdir ~/distr
cd ~/distr</code></pre>
<p style="text-align:justify;">Скачаем <a href="http://www.sqlite.org/download.html">последнюю версию</a> sqlite и установим:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>wget http://www.sqlite.org/sqlite-3.5.6.tar.gz
tar xvfz ./sqlite-3.5.6.tar.gz
mv ./sqlite-3.5.6 ./sqlite # чтобы следовать букве README-руководства
mkdir ./bld # временный каталог для скомилированных файлов
cd ./bld
../sqlite/configure
make
sudo make install
cd ..
rm -r ./bld</code></pre>
<h5>Решение. Пункт 3. Установка trac-related пакетов через easy_install.</h5>
<p style="text-align:justify;">Для Python существует утилита, облегчающая установку python-пакетов, называемых также <i>яйцами</i> (они имеют расширение *.egg). Установим её:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ./ez_setup.py</code></pre>
<p style="text-align:justify;">И засчёт неё установим последние версии <a href="http://pygments.org/">Pygments</a> (0.9) (инструмент для подсветки программного кода на Python), <a href="http://genshi.edgewall.org/">Genshi</a> (0.4.4) (механизм шаблонов от создателей trac) и собственно самого <a href="http://trac.edgewall.org/">trac</a> (0.11b2):</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo easy_install Pygments
sudo easy_install Genshi
sudo easy_install Trac</code></pre>
<h5>Решение. Пункт 4. Создание репозиториев.</h5>
<p style="text-align:justify;">Создадим репозитории для наших проектов и сделаем первые коммиты, содержащие отправные точки для их структур. Все репозитории будут находиться в каталоге <code>/var/svn</code>, полностью доступном для сервера, каждый в своём подкаталоге — такой метод удобен при наличии нескольких проектов и это будет заметно в следующем пункте, на этапе настройки авторизации.</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo mkdir /var/svn
sudo mkdir /var/svn/someProject
sudo mkdir /var/svn/anotherProject
cd /tmp
sudo rm -rfR * # удалить все обычные файлы
sudo rm -rfR .* # удалить все скрытые/системные файлы
mkdir /tmp/someProject
mkdir /tmp/someProject/trunk
mkdir /tmp/someProject/tags
mkdir /tmp/someProject/branches
mkdir /tmp/anotherProject
mkdir /tmp/anotherProject/trunk
mkdir /tmp/anotherProject/tags
mkdir /tmp/anotherProject/branches
sudo svnadmin create /var/svn/someProject
sudo svn import ./someProject file:///var/svn/someProject
    -m "Initial import"
sudo svnadmin create /var/svn/anotherProject
sudo svn import ./anotherProject file:///var/svn/anotherProject
    -m "Initinal import"
sudo chown -R www-data:www-data /var/svn</code></pre>
<h5>Решение. Пункт 5. Связывание apache и subversion.</h5>
<p style="text-align:justify;">Необходимо настроить доступ извне для созданных репозиториев. Для этого нужно установить модуль <code>dav_svn</code> для <code>apache2</code> и заодно, раз мы работаем с subversion, установим связку subversion c Python, для корректной работы trac с репозиториями:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo apt-get install libapache2-svn
sudo apt-get install python-subversion</code></pre>
<p style="text-align:justify;">Теперь нужно настроить установленный модуль (при установки он автоматически включается для apache, если нет — используйте <code>a2enmod dav_svn</code> по завершению настройки):</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo vi /etc/apache2/mods-available/dav_svn.conf</code></pre>
<p style="text-align:justify;">Ниже приведено точное содержимое конфигурационного файла. При обращении на путь <code>&lt;host&gt;/svn/...</code> модуль авторизации apache будет обращаться к файлу <code>/etc/apache2/dav_svn.passwd</code> за списком пользователей, а затем давать права на доступ к соответствующему проекту из файла <code>/etc/apache2/dav_svn.authz</code>. Обратите также внимание на использование <code>SVNParentPath</code> вместо <code>SVNPath</code> — таким образом subversion-модуль поймёт, что мы используем мультипроектную структуру и будет обрабатывать путь не как один общий репозиторий, а как несколько внутренних:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>&lt;Location /svn&gt;
    DAV svn
    SVNParentPath /var/svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dav_svn.passwd
    AuthzSVNAccessFile /etc/apache2/dav_svn.authz
    Require valid-user
&lt;/Location&gt;</code></pre>
<p style="text-align:justify;">Создадим соответствующих пользователей в файлах авторизации. Используйте пароли попроще для проверки и не забудьте их потом поменять:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo htpasswd -c /etc/apache2/dav_svn.passwd user1
sudo htpasswd /etc/apache2/dav_svn.passwd user2</code></pre>
<p style="text-align:justify;">Создадим файл аутентификации:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;">sudo vi /etc/apache2/dav_svn.authz</pre>
<p style="text-align:justify;">В открытым файле опишем права доступа (на чтение — &laquo;<code>r</code>&raquo; и на запись — &laquo;<code>w</code>&laquo;) пользователей в соответствующие репозитории:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>[/]
user1=r
user2=r

[/someProject]
user1=rw
user2=r

[/anotherProject]
user1=r
user2=rw</code></pre>
<h5>Решение. Пункт 6. Создание окружений trac.</h5>
<p style="text-align:justify;">Создадим каталог, в котором будут находиться окружения для соответствующих проектов.</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo mkdir /var/trac
cd /var/trac</code></pre>
<p style="text-align:justify;">Теперь создадим для каждого из них, по очереди, окружение:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo trac-admin someProject initenv
sudo trac-admin anotherProject initenv</code></pre>
<p style="text-align:justify;">Имена проектов остаются на ваше усмотрение, тип репозиториев — по умолчанию <code>svn</code> (просто нажать Enter), путь к базе общий, по умолчанию (<code>sqlite:db/trac.db</code>, аналогично), пути к репозиториям: <code>/var/svn/someProject</code> и <code>/var/svn/anotherProject</code> соответственно.</p>
<p style="text-align:justify;">Дадим права apache пользоваться этим каталогом.</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo chown -R www-data:www-data /var/trac</code></pre>
<h5>Решение. Пункт 7. Связывание apache и trac.</h5>
<p style="text-align:justify;">Есть несколько вариантов такого связывания, мы остановимся на быстром, но надёжном способе — через <code>mod_python</code> (<a href="http://trac.edgewall.org/wiki/TracInstall#WebServer">описания способов</a> на сайте trac). Для этого модуль нужно установить (также, если он не включился после установки, по завершению настройки используйте <code>a2enmod mod_python</code>):</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo apt-get install libapache2-mod-python</code></pre>
<p style="text-align:justify;">Настроим доступ к окружениям trac:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo vim /etc/apache2/sites-available/trac</code></pre>
<p style="text-align:justify;">Эта настройка специфична для использования <code>mod_python</code> (<a href="http://trac.edgewall.org/wiki/TracModPython">руководство</a> на сайте trac, см. <a href="http://trac.edgewall.org/wiki/TracInstall#WebServer">описания</a>, если необходимы другие способы настройки). Обработчиком обращений по адресу <code>&lt;host&gt;/localProjects</code> выступит модуль, он будет рассматривать каталог <code>/var/trac/</code> как корень нескольких проектов и содаст страницу с их списком (редактируемый шаблон можно найти внутри исходников trac), аналогично принципам <code>SVNParentPath</code>, <code>URI</code> передаётся в код trac. Запросы на вход будут обрабатываться по пользователям из того же <code>passwd</code> файла, из которого берёт их список читает subversion, а их права на действия в окружениях trac раздаются через <code>trac-admin</code> или в GUI-версии TracAdmin, доступной для аминистраторов окружений (будьте внимательны, пользователи создаваемые через интерфейс также добавляются в этот файл и доступны к использованию для настройки авторизации в subversion через <code>authz</code>-файл (по умолчанию у них нет никаких прав)) .</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>&lt;Location /localProjects&gt;
   SetHandler mod_python
   PythonInterpreter main_interpreter
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnvParentDir /var/trac
   PythonOption TracUriRoot /localProjects
&lt;/Location&gt;

&lt;LocationMatch /localProjects/[^/]+/login&gt;
   AuthType Basic
   AuthName "Local Projects"
   AuthUserFile /etc/apache2/dav_svn.passwd
   Require valid-user
&lt;/LocationMatch&gt;</code></pre>
<p style="text-align:justify;">Теперь заменим сайт по умолчанию для apache на сайт trac:</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo a2dissite default
sudo a2ensite trac</code></pre>
<p style="text-align:justify;">Дадим пользователям права администратов в окружениях trac, в соотвествии с правами на репозиторий, теперь у них, у каждого в своём проекте, будет веб-интерфейс для полной настройки trac.</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo trac-admin someProject permission add user1 TRAC_ADMIN
sudo trac-admin anotherProject permission add user2 TRAC_ADMIN</code></pre>
<h5>Решение. Заключение.</h5>
<p style="text-align:justify;">Осталось перезагрузить сервер, (принудительная перезагрузка настроек: <code>force-reload</code>) и проверить адреса <code>&lt;host&gt;/localProjects</code> и <code>&lt;host&gt;/svn/someProject</code> и <code>&lt;host&gt;/svn/anotherProject</code>, попробовав авторизироваться разными пользователями.</p>
<pre style="border:1px dotted #999999;background-color:#eeeeee;padding:5px;"><code>sudo /etc/init.d/apache2 restart</code></pre>
<p style="text-align:justify;">Если при установке появились какие-либо проблемы и ничего не помогает, попробуйте ознакомиться с <a href="http://shamansir.wordpress.com/2006/12/16/trac-subversion-ubuntu-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%bd%d0%b0%d1%8f-%d0%b7%d0%b0%d0%b1%d0%b0%d0%b2%d0%b0-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd%d1%8c/">предыдущей статьёй</a> (но она несколько более сумбурна и менее структурирована) или опишите проблему(-мы) в комментариях — постараюсь реагировать быстро.</p>
<h5>Примечание A. О добавлении проектов.</h5>
<p style="text-align:justify;">Добавление проектов в будущем требует лишь нескольких шагов — создание базовой структуры первым коммитом в какой-либо подкаталог <code>/var/svn</code>, опциональное добавление новых пользователей в <code>htpasswd</code>-файл, настройка прав доступа в <code>authz</code>-файле, создание окружения trac в соответствующем подкталоге <code>/var/trac</code> через <code>trac initenv</code>, опциональная выдача trac-прав новым пользователям и проверка, что apache имеет доступ к созданным каталогам.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/shamansir.wordpress.com/70/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/shamansir.wordpress.com/70/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shamansir.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shamansir.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shamansir.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shamansir.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shamansir.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shamansir.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shamansir.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shamansir.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shamansir.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shamansir.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=70&subd=shamansir&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shamansir.wordpress.com/2008/03/17/trac-subversion-ubuntu-revisited/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a2d33923a3370522905ebd5ab5f14cf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaman.sir</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2008/05/wikidot.gif" medium="image">
			<media:title type="html">This acrticle at wikidot.com</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" medium="image">
			<media:title type="html">Ubuntu</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/trac.png" medium="image">
			<media:title type="html">Trac</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/svn.png" medium="image">
			<media:title type="html">Subversion</media:title>
		</media:content>
	</item>
		<item>
		<title>Eric IDE 4.0.1 на Ubuntu 7.04</title>
		<link>http://shamansir.wordpress.com/2007/07/22/eric-ide-401-at-ubuntu-704/</link>
		<comments>http://shamansir.wordpress.com/2007/07/22/eric-ide-401-at-ubuntu-704/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 14:05:43 +0000</pubDate>
		<dc:creator>shaman.sir</dc:creator>
				<category><![CDATA[ide]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://shamansir.wordpress.com/2007/08/05/eric-ide-401-%d0%bd%d0%b0-ubuntu-704/</guid>
		<description><![CDATA[
  
Eric – очень даже хорошее IDE под Python. и не далее как вчера вышла версия 4.0.1, в репозиториях же на данный момент лежит версия 3.9. и захотелось мне вспомнить старые добрые времена и собрать этот пакет. Представляю вам на всякий случай листинг того, что делать – чтобы не возвращаться обратно, выясняя что нужно [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=6&subd=shamansir&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="This acrticle at wikidot.com" href="http://shaman-sir.wikidot.com/eric-ubuntu"><img style="float:right;border:none;" src="http://shamansir.files.wordpress.com/2008/05/wikidot.gif?w=16&#038;h=16" alt="This acrticle at wikidot.com" width="16" height="16" /></a></p>
<p><a href="http://ubuntu.com/" title="Ubuntu"><img src="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" alt="Ubuntu" style="border:1px dotted #000000;" /></a> <a href="http://python.org/" title="Python"><img src="http://shamansir.files.wordpress.com/2007/08/python.png" alt="Python" style="border:1px dotted #000000;" /></a> <a href="http://www.die-offenbachs.de/eric/index.html" title="Eric IDE"><img src="http://shamansir.files.wordpress.com/2007/08/eric.png" alt="Eric IDE" style="border:1px dotted #000000;" /></a></p>
<p><a href="http://www.die-offenbachs.de/eric/index.html">Eric</a> – очень даже хорошее <span class="caps">IDE</span> под <a href="http://www.python.org">Python</a>. и <a href="http://www.die-offenbachs.de/eric/eric-news.html">не далее как вчера</a> вышла версия <a href="http://sourceforge.net/project/showfiles.php?group_id=119070&amp;package_id=233329">4.0.1</a>, в репозиториях же на данный момент лежит версия 3.9. и захотелось мне вспомнить старые добрые времена и собрать этот пакет. Представляю вам на всякий случай листинг того, что делать – чтобы не возвращаться обратно, выясняя что нужно поставить еще что-то или разбираясь в ошибках компиляции, которые меня посещали :). Кое-где – ориентировка на последние версии :). Так как устанавливалось на чистой практически убунте – все должно быть адекватно&#8230; если что-то упустил – прошу сообщать.</p>
<p><span id="more-6"></span></p>
<p><em>Используется</em>:</p>
<ul>
<li><a href="http://www.die-offenbachs.de/eric/index.html">eric</a> 4.0.0.1</li>
<li><a href="http://www.python.org">Python</a> 2.5.1</li>
<li><a href="http://trolltech.com/products/qt">Qt</a> 4.2.3 + <a href="http://www.riverbankcomputing.co.uk/pyqt/index.php">PyQt</a> v4.1 + <a href="http://www.riverbankcomputing.co.uk/qscintilla/index.php">QScintilla</a> 2</li>
<li><a href="http://www.riverbankcomputing.co.uk/sip/index.php">SIP</a> 4.6</li>
<li><a href="http://gcc.gnu.org/">G++</a> 3.4 (наверняка можно взять и поздний)</li>
</ul>
<p>итак, переходим в какой-нибудь каталог для сборки и приступаем:</p>
<p><code>$ cd ~/distr-temp/</code></p>
<p>берем <a href="http://sourceforge.net/project/showfiles.php?group_id=119070&amp;package_id=233329">сурсы</a> с <em>sourceforge</em>‘a:</p>
<p><code>$ wget http://mesh.dl.sourceforge.net/sourceforge/eric-ide/eric4-4.0.1.tar.gz</code></p>
<p>устанавливаем всяческие библиотеки для связки <a href="http://www.riverbankcomputing.co.uk/pyqt/index.php"><em>PyQt</em></a> (в зависимости от настроек <code>apt-get</code>‘а может понадобиться установочный CD):</p>
<pre><code>$ sudo apt-get install python2.5-dev
$ sudo apt-get install python-qt4
$ sudo apt-get install libqt4-dev
$ sudo apt-get install python-qt4-dev</code></pre>
<p>устанавливаем компилятор <code>g++</code> и делаем на него ссылку <code>/usr/bin/g++</code>:</p>
<pre><code>$ sudo apt-get install g++-3.4
$ sudo ln -s /usr/bin/g++-3.4 /usr/bin/g++</code></pre>
<p>скачиваем и устанавливаем последнюю на данный момент версию <a href="http://www.riverbankcomputing.co.uk/sip/index.php"><em>SIP</em></a> – он позволяет библиотекам, написанным на C[++] вести себя как модули <a href="http://www.python.org"><em>Python</em></a>:</p>
<pre><code>$ wget http://www.riverbankcomputing.com/Downloads/sip4/sip-4.6.tar.gz
$ tar -xvzf ./sip-4.6.tar.gz
$ cd ./sip-4.6.tar.gz
$ python ./configure.py
$ make
$ sudo make install
$ cd ..</code></pre>
<p>скачиваем и устанавливаем последнюю на данный момент версию <a href="http://www.riverbankcomputing.co.uk/qscintilla/index.php"><em>QScintilla</em></a> – Qt-порт компонента для редактирования исходных кодов (устанавливаем версию для Qt4):</p>
<pre><code>$ wget http://www.riverbankcomputing.com/Downloads/
Snapshots/QScintilla2/QScintilla-gpl-2-snapshot-20070709.tar.gz
$ tar -xvzf ./QScintilla-gpl-2-snapshot-20070709.tar.gz
$ cd ./QScintilla-gpl-2-snapshot-20070709/Qt4
$ qmake qscintilla.pro
$ sudo make
$ sudo make install</code></pre>
<p>теперь нужно установить связи на <a href="http://www.riverbankcomputing.co.uk/qscintilla/index.php"><em>QScintilla</em></a> для <a href="http://www.python.org"><em>Python</em></a> – они находятся собственно в директории <code>Python</code>:</p>
<pre><code>$ cd ../Python
$ python ./configure.py
$ make
$ sudo make install</code></pre>
<p>ну а теперь очередь собственно <a href="http://www.die-offenbachs.de/eric/index.html"><em>eric</em></a>:</p>
<pre><code>$ cd ../../eric4-4.0.1/</code>
<code>$ sudo python install.py</code></pre>
<p>при установке нужно сказать ему директорию где лежит Qt: <code>/usr/share/qt4</code>.</p>
<p>Ну вот собственно и все. Набираем <code>eric4</code> и, если хочется, радуемся :).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/shamansir.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/shamansir.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shamansir.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shamansir.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shamansir.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shamansir.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shamansir.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shamansir.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shamansir.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shamansir.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shamansir.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shamansir.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=6&subd=shamansir&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shamansir.wordpress.com/2007/07/22/eric-ide-401-at-ubuntu-704/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a2d33923a3370522905ebd5ab5f14cf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaman.sir</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2008/05/wikidot.gif" medium="image">
			<media:title type="html">This acrticle at wikidot.com</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" medium="image">
			<media:title type="html">Ubuntu</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/python.png" medium="image">
			<media:title type="html">Python</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/eric.png" medium="image">
			<media:title type="html">Eric IDE</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu 7.04, Пыхтерский Авангард-ADSL, модем D-Link</title>
		<link>http://shamansir.wordpress.com/2007/07/21/ubuntu-704-avangard-adsl-d-link-modem/</link>
		<comments>http://shamansir.wordpress.com/2007/07/21/ubuntu-704-avangard-adsl-d-link-modem/#comments</comments>
		<pubDate>Sat, 21 Jul 2007 14:44:08 +0000</pubDate>
		<dc:creator>shaman.sir</dc:creator>
				<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://shamansir.wordpress.com/2007/08/05/ubuntu-704-%d0%9f%d1%8b%d1%85%d1%82%d0%b5%d1%80%d1%81%d0%ba%d0%b8%d0%b9-%d0%90%d0%b2%d0%b0%d0%bd%d0%b3%d0%b0%d1%80%d0%b4-adsl-%d0%bc%d0%be%d0%b4%d0%b5%d0%bc-d-link/</guid>
		<description><![CDATA[
  
Вот она, первая статья о невечном :)
На самом деле статей в сети на эту тему много (ну либо они повествуют о настройке для веб-плюса – она схожа) – но результаты у всех разные – поэтому расскажу свою историю.
подопытные:
Ubuntu 7.40 Feisty Fawn
USB-модем D-Link DSL-200 Generation III
дополнительные ссылки:
Как Starl1te настраивал Веб-плюс
Беседа с человеком у которого [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=5&subd=shamansir&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="This acrticle at wikidot.com" href="http://shaman-sir.wikidot.com/ubuntu-adsl-dlink-avangard"><img style="float:right;border:none;" src="http://shamansir.files.wordpress.com/2008/05/wikidot.gif?w=16&#038;h=16" alt="This acrticle at wikidot.com" width="16" height="16" /></a></p>
<p><a href="http://ubuntu.com/" title="Ubuntu"><img src="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" alt="Ubuntu" style="border:1px dotted #000000;" /></a> <a href="http://www.avangard-dsl.ru/" title="Avangard ADSL"><img src="http://shamansir.files.wordpress.com/2007/08/avangard.png" alt="Avangard ADSL" style="border:1px dotted #000000;" /></a> <a href="http://www.dlink.com.tw/" title="D-Link"><img src="http://shamansir.files.wordpress.com/2007/08/dlink.png" alt="D-Link" style="border:1px dotted #000000;" /></a></p>
<p>Вот она, первая статья о невечном :)</p>
<p>На самом деле статей в сети на эту тему много (ну либо они повествуют о настройке для веб-плюса – она схожа) – но результаты у всех разные – поэтому расскажу свою историю.</p>
<p><em>подопытные</em>:<br />
<a href="http://releases.ubuntu.com/7.04/">Ubuntu 7.40 Feisty Fawn</a><br />
USB-модем <a href="http://eciadsl.flashtux.org/modems.php?modem=86">D-Link DSL-200 Generation III</a></p>
<p><em>дополнительные ссылки</em>:<br />
<a href="http://starl1te.wordpress.com/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BC%D0%B0-d-link-dsl-200/">Как Starl1te настраивал Веб-плюс</a><br />
<a href="http://forum.ubuntu.ru/index.php?topic=8712.45">Беседа с человеком у которого однажды это всё-таки получилось</a><br />
<a href="http://eciadsl.flashtux.org/">Основной источник файлов</a><br />
<a href="http://ru.gentoo-wiki.com/ADSL_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BC%D1%8B_%D0%BD%D0%B0_%D1%87%D0%B8%D0%BF%D0%B0%D1%85_GlobeSpan_(D-Link_DSL200)">Как это делают в Gentoo</a></p>
<p>Итак, Live/Install CD <a href="http://releases.ubuntu.com/7.04/">был скачан</a> из интернета, прожжен на болванку и установлен буквально за 10-15 минут, чем Ubuntu и славится. практически все что нужно обнаружилось и отдетектилось сразу, за исключением собственно интернета :). сразу говорю, четких рекомендаций как не было так и нет, насколько я понял у большинства все <em>“как-то вышло”</em> и вполне может быть так, что мой или чей-то способ может не подойти. у меня, например, интернет пока что подключается раза с пятого, но хотя бы уже до отключения руками, поэтому я стараюсь не перезагружаться :). если я найду способы улучшения ситуации – я напишу.</p>
<p><span id="more-5"></span><br />
Впрочем, меньше прелюдий – беремся за терминал. Вернее, лучше заранее достать где-нибудь интернет и скачать вот эту пару файлов: :).</p>
<p><a href="http://eciadsl.flashtux.org/download/debian/etch/eciadsl-usermode_0.11-1_i386_with_synch_patch.deb"><span class="caps">ECI-ADSL</span> с патчем синхронизации</a><br />
<a href="http://debian.charite.de/ubuntu/pool/universe/r/rp-pppoe/pppoe_3.8-1.1_i386.deb">утилита PPPoE</a> (или <a href="http://ftp.cica.es/debian/pool/main/r/rp-pppoe/pppoe_3.8-1.1_i386.deb">тут</a>)<br />
<a href="http://eciadsl.flashtux.org/download/eciadsl-synch_bin.tar.bz2">файлы синхронизации</a></p>
<p>С этого момента мы считаем что вы находитесь в той директории, куда вы положили эти файлы, например <code>~/Downloads</code>:</p>
<p><code>$ cd ~/Downloads</code></p>
<p>Одно магическое действие, которое вам скорее всего понадобится для корректной работы <em>eciadsl</em> – смена среды. Честно говоря я не успел посмотреть что там было до этого, потому что в  <em>bash</em> я не сомневаюсь(лся?), но вероятнее всего на то, как было, если вам будет надо – можно будет запросто вернуть командой <code>sudo ln -sf /bin/dash /bin/sh</code>:</p>
<p><code>$ sudo ln sf /bin/bash /bin/sh</code></p>
<p>устанавливаем пакеты:</p>
<p><code>$ sudo dpkg -i ./pppoe_3.8-1.1_i386.deb</code><br />
<code>$ sudo dpkg -i ./eciadsl-usermode_0.11-1_i386_with_sync_patch.deb</code></p>
<p>распаковываем дополнительные файлы синхронизации и переносим их в каталог eciadsl:</p>
<p><code>$ bzip2 -d ./eciadsl-synch_bin.tar.bz2</code><br />
<code>$ tar -xvf ./eciadsl-synch_bin.tar</code><br />
<code>$ sudo mv ./eciadsl-synch_bin/*.bin /etc/eciadsl/</code><br />
<code>$ rm -Rf ./eciadsl-synch_bin</code></p>
<p>далее, нужно проверить выгружен ли модуль <em>dabusb</em>, который по идее и не должен быть загружен – в ранних версиях он приводил к ошибкам.</p>
<p><code>$ sudo lsmod | grep dabusb</code></p>
<p>и если он все-таки найдется – надо его убить, вот так: :)</p>
<p><code>$ sudo modprobe -r dabsusb</code></p>
<p>теперь включаем нужные модули:</p>
<p><code>$ sudo modprobe tun</code><br />
<code>$ sudo lsmod | grep tun</code><br />
<code>$ sudo modprobe n_hdlc</code><br />
<code>$ sudo lsmod | grep n_hdlc</code></p>
<p>сейчас нам нужно узнать <em>VID/PID</em> нашего момеда (насколько я себе представил – это код USB-порта на материнской плате, но истринным знанием я временно не обладаю).</p>
<p><code>$ lsusb</code></p>
<p>там должно быть либо <em>D-Link</em> либо <em>GlobeSpan</em>, либо какой-то еще вариант (если что можно выяснить отключив модем, выполнив <code>lsusb</code> и подключив снова) – у меня мой модем был в этой строчке:</p>
<p><code>Bus 004 Device 006: ID <em>0915:8104</em>  GlobeSpan, Inc.</code></p>
<p>выделенные курсивом числа – и есть <em>VID:PID</em> – запомните их. Настало время приступить к конфигурации. можно запустить текстовую версию и следовать указаниям (пояснения ниже):</p>
<p><code>$  sudo eciadsl-config-text</code></p>
<p>для Авангард-<span class="caps">ADSL</span> настройки (примерно :) ) таковы (номера пунктов могут отличаться):</p>
<ul>
<li>(1) configure all settings</li>
<li><em>юзернейм/пароль</em>: <code>ptn/ptn</code></li>
<li><em>provider</em>: (58) Other</li>
<li><em>DNS1</em>: 213.158.0.6</li>
<li><em>DNS2</em>: 213.48.193.36 (на июль 2007 они таковы, в будущем могут потенциально поменяться – следите за новостями Авангарда)</li>
<li><em>VPI</em>: 0</li>
<li><em>VCI</em>: 35</li>
<li><em>modem</em>: (16) D-Link DSL200 B1 (засисит от модели вашего модема, но у меня кажется не B и работает и я побаиваюсь пока все нестабильно но работает тестировать другие варианты :) )</li>
<li><em>VID1</em>: <em>0915</em> (первое число из двух, которые показала команда <code>lsusb</code>)</li>
<li><em>PID1</em>: <em>8104</em> (второе число из двух, которые показала команда <code>lsusb</code>)</li>
<li><em>VID2</em>: <em>0915</em> (первое число из двух, которые показала команда <code>lsusb</code>)</li>
<li><em>PID2</em>: <em>8104</em> (второе число из двух, которые показала команда <code>lsusb</code>)</li>
<li><em>chipset</em>: (3) <code>GS7470</code></li>
<li><em>SYNCH</em>: 0 (этот пункт и следующий пункты люди часто ставят наугад, я тоже пишу как работает у меня и не знаю почему я это ставил :) )</li>
<li><em>PPPOECI</em>: 4</li>
<li><em>.bin file</em>: (18) <code>/etc/eciadsl/gs7470_synch20.bin</code> (очень важный пункт, на сайте Авангарда пишут использовать именно этот файл , но если у вас все еще будут проблемы с синхронизацией – нужно будет перебрать все по одному а в самом худшем случае – <a href="http://lug.dn.ua/papers/LinuxBegin/linuxbegin/article710.html">собирать свой</a>)</li>
<li><em><span class="caps">PPP</span> Mode</em>: (5)  <code>LLC_SNAP_RFC1483_BRIDGED_ETH_NO_FCS</code> (еще используют <code>LLC_RFC1483_ROUTED_IP</code>)</li>
<li><em>DHCP</em>: no</li>
<li><em>Static IP</em>: no (по дефолту у Авангарда динамический IP, но если у вас статический за денюжку то наверное стоит поставить yes :) )</li>
</ul>
<p>ниже я приведу сам файл <code>/etc/eciadsl/eciadsl.conf</code>, который и изменяет эта утилита – в том состоянии, в каком он у меня.</p>
<p>далее – запускаем собственно синхронизацию:</p>
<p><code>$ sudo eciadsl-start</code></p>
<p>тут могут обнаружиться самые обидные проблемы – если будут ошибки про interruptы – значит вместо первого файла установлена версия без патча синхронизации и вы меня не слушаетесь :). В моем случае тоже не всё гладко – первые разы после удачной синхронизации гаснут обе лампочки на модеме, а  среди карт/интерфейсов отстутствует <code>tap0</code>:</p>
<p><code>$ ifconfig</code></p>
<p>но раз на пятый-десятый лампочки все-таки не гаснут и тогда хорошо. По этим причинам я поставил скрипт на автозагрузку, но о нем – ниже. Если уж совсем много раз не выходит – что-то не чисто – проверять настройки и файлы синхронизации. Вам нужно добиться чтобы лампочки не гасли :). После этого – набрать:</p>
<p><code>$ sudo pppoeconf </code></p>
<p>это собственно конфигурация PPPoE. Утилита должна найти инет на интерфейсе <code>tap0</code> и задавать диалогами вопросы и просьбы, среди которых попросят ввести пароль/юзернейм снова, а на все остальные &#8211; отвечать разумно, чаще всего – “да” :).</p>
<p>после этого можно попытаться подключиться:</p>
<p><code>$ sudo pppoe-start</code></p>
<p>и если не <code>TIMED OUT</code> а <code>CONNECT OK</code> то все замечательно :).<br />
желаю чтобы у вас так и было :).</p>
<p><em>P.S. Статья будет исправляться и дополняться</em></p>
<p><em>пояснения</em>:</p>
<p>теперь по поводу гаснущих лампочек. я взял <a href="http://starl1te.wordpress.com/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BC%D0%B0-d-link-dsl-200/#comment-52">скрипт starl1t‘а</a>, чуток исправил, добавив pppoe-start и выставил его в автозагрузку:</p>
<p><code>$ sudo nano /etc/init.d/eciadsl</code></p>
<p>туда – нижеследующий текст:</p>
<pre><code>
#!/bin/bash

# This is an improved eciadsl launch script, which
# tries to connect after failures until success.
# Feel free to share and modify
# by Starlite

case "$1" in
	start)
		sudo eciadsl-start
		result=$?
		#echo 'exit code:' $result
		until [ $result -eq 0 ]
		do
			echo 'Error: connection failed'
			sudo eciadsl-stop
			sudo eciadsl-start
			result=$?
		#	echo 'exit code:' $result
		done
		echo 'connection established'
		sudo pppoe-start
		exit $?
		;;
	stop)
		sudo eciadsl-stop
		exit $?
		;;
	restart|force-reload)
		$0 stop &amp;&amp; $0 start
		exit $?
		;;
	*)
		echo 'Usage: eciadsl {start|stop|restart}'
		exit 1
		;;
esac
exit 0</code></pre>
<p>потом – ставим его на автозагрузку:</p>
<p><code>$ sudo chmod +x /etc/init.d/eciadsl</code><br />
<code>$ update-rc.d eciadsl defaults</code></p>
<p>если нужно – можно запускать его самостоятельно:</p>
<p><code>$ sudo /etc/init.d/eciadsl restart</code></p>
<p><em>тексты</em>:</p>
<pre><code>==========================/etc/eciadsl/eciadsl.conf</code></pre>
<pre><code>VID1=0915
PID1=8104
VID2=0915
PID2=8104
#MODE=LLC_RFC1483_ROUTED_IP
MODE=LLC_SNAP_RFC1483_BRIDGED_ETH_NO_FCS
VCI=35
VPI=0
FIRMWARE=/etc/eciadsl/firmware00.bin
SYNCH=/etc/eciadsl/gs7470_synch20.bin
PPPD_USER=ptn
PPPD_PASSWD=
USE_DHCP=no
USE_STATICIP=no
STATICIP=
GATEWAY=
MODEM=D-Link DSL200 rev B1
MODEM_CHIPSET=GS7470
SYNCH_ALTIFACE=0
PPPOECI_ALTIFACE=1
PROVIDER=Other
DNS1=213.158.0.6
DNS2=213.18.193.36</code></pre>
<pre><code>==========================/etc/ppp/pppoe.conf</code></pre>
<pre><code>ETH='tap0'
USER='ptn'
DEMAND=no
#DEMAND=300
DNSTYPE=SERVER
PEERDNS=yes
DNS1=
DNS2=
DEFAULTROUTE=yes
CONNECT_TIMEOUT=30
CONNECT_POLL=2
ACNAME=
SERVICENAME=
PING="."
CF_BASE=`basename $CONFIG`
PIDFILE="/var/run/$CF_BASE-pppoe.pid"
SYNCHRONOUS=no
#SYNCHRONOUS=yes
CLAMPMSS=1412
#CLAMPMSS=100
#CLAMPMSS=no
LCP_INTERVAL=20
LCP_FAILURE=3
#LCP_FAILURE=30
PPPOE_TIMEOUT=80
FIREWALL=NONE
LINUX_PLUGIN=
PPPOE_EXTRA=""
PPPD_EXTRA="" </code></pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/shamansir.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/shamansir.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shamansir.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shamansir.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shamansir.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shamansir.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shamansir.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shamansir.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shamansir.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shamansir.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shamansir.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shamansir.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=5&subd=shamansir&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shamansir.wordpress.com/2007/07/21/ubuntu-704-avangard-adsl-d-link-modem/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a2d33923a3370522905ebd5ab5f14cf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaman.sir</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2008/05/wikidot.gif" medium="image">
			<media:title type="html">This acrticle at wikidot.com</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" medium="image">
			<media:title type="html">Ubuntu</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/avangard.png" medium="image">
			<media:title type="html">Avangard ADSL</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/dlink.png" medium="image">
			<media:title type="html">D-Link</media:title>
		</media:content>
	</item>
		<item>
		<title>SATA, DMA и странности Ubuntu.</title>
		<link>http://shamansir.wordpress.com/2007/01/24/sata-dma-%d0%b8-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%bd%d0%be%d1%81%d1%82%d0%b8-ubuntu/</link>
		<comments>http://shamansir.wordpress.com/2007/01/24/sata-dma-%d0%b8-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%bd%d0%be%d1%81%d1%82%d0%b8-ubuntu/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 15:25:20 +0000</pubDate>
		<dc:creator>shaman.sir</dc:creator>
				<category><![CDATA[sata]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://shamansir.wordpress.com/2007/01/24/sata-dma-%d0%b8-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%bd%d0%be%d1%81%d1%82%d0%b8-ubuntu/</guid>
		<description><![CDATA[
 
Сегодня ставили Ubuntu 6.06 LTS на SATA-шный винт. Она, как ни странно, злобно свалилась. Live CD долго пытался подмаунтить винт, потом вроде подмаунтил но при загрузке ядра начал кидаться buffer I/O Read Error и бла-бла-бла.
Решение нашлось при совмещении способов с двух форумов:
В BIOS&#8217;е на способ работы с SATA я установил Enchanced (что-то там с [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=11&subd=shamansir&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="This acrticle at wikidot.com" href="http://shaman-sir.wikidot.com/sata-dma-ubuntu"><img style="float:right;border:none;" src="http://shamansir.files.wordpress.com/2008/05/wikidot.gif?w=16&#038;h=16" alt="This acrticle at wikidot.com" width="16" height="16" /></a></p>
<p><a href="http://ubuntu.com/" title="Ubuntu"><img src="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" alt="Ubuntu" style="border:1px dotted #000000;" /></a> <a href="http://www.sata-io.org/" title="SATA"><img src="http://shamansir.files.wordpress.com/2007/08/sata.png" alt="SATA" style="border:1px dotted #000000;" /></a></p>
<p>Сегодня ставили Ubuntu 6.06 LTS на SATA-шный винт. Она, как ни странно, злобно свалилась. Live CD долго пытался подмаунтить винт, потом вроде подмаунтил но при загрузке ядра начал кидаться buffer I/O Read Error и бла-бла-бла.</p>
<p>Решение нашлось при совмещении способов с двух форумов:</p>
<p>В BIOS&#8217;е на способ работы с SATA я установил Enchanced (что-то там с распараллеливанием SATA/PATA, причем поиграйтесь еще с каналами &#8211; если что-то не выйдет; и в крайнем случае, если SATA-винта у вас два, один уберите на время)</p>
<p>Нажал в загрузочном экране Live CD клавишу Escape (переход в текстовый режим) и набрал</p>
<p><code>boot: live pci ide=nodma ide=reverse</code></p>
<p>(не учитывая того, что до этого я много разных пытался там набрать команд :) )</p>
<p>Теперб юбунта работает как миленькая&#8230; Почти.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/shamansir.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/shamansir.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shamansir.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shamansir.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shamansir.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shamansir.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shamansir.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shamansir.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shamansir.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shamansir.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shamansir.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shamansir.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=11&subd=shamansir&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shamansir.wordpress.com/2007/01/24/sata-dma-%d0%b8-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%bd%d0%be%d1%81%d1%82%d0%b8-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a2d33923a3370522905ebd5ab5f14cf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaman.sir</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2008/05/wikidot.gif" medium="image">
			<media:title type="html">This acrticle at wikidot.com</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" medium="image">
			<media:title type="html">Ubuntu</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/sata.png" medium="image">
			<media:title type="html">SATA</media:title>
		</media:content>
	</item>
		<item>
		<title>Trac + Subversion + Ubuntu &#8211; интересная забава на день</title>
		<link>http://shamansir.wordpress.com/2006/12/16/trac-subversion-ubuntu-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%bd%d0%b0%d1%8f-%d0%b7%d0%b0%d0%b1%d0%b0%d0%b2%d0%b0-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd%d1%8c/</link>
		<comments>http://shamansir.wordpress.com/2006/12/16/trac-subversion-ubuntu-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%bd%d0%b0%d1%8f-%d0%b7%d0%b0%d0%b1%d0%b0%d0%b2%d0%b0-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd%d1%8c/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 21:47:16 +0000</pubDate>
		<dc:creator>shaman.sir</dc:creator>
				<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[девелопмент]]></category>

		<guid isPermaLink="false">http://shamansir.wordpress.com/2006/12/16/trac-subversion-ubuntu-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%bd%d0%b0%d1%8f-%d0%b7%d0%b0%d0%b1%d0%b0%d0%b2%d0%b0-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd%d1%8c/</guid>
		<description><![CDATA[
  
Приветствую всех заинтересованных. Ведь вас, наверняка, не очень много :).
Upd.: Более структурированное и последовательное (правда менее повествовательное) руководство для Ubuntu Feisty находится здесь
Ну а я, в свою очередь, славлюсь среди знающих меня извращенными подходами к простым вещам, так что и в этот раз решил не ломать традиций :).
Предыстория статьи такова:
Автор находится на испытательном [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=15&subd=shamansir&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="This acrticle at wikidot.com" href="http://shaman-sir.wikidot.com/trac-subversion-ubuntu-initial"><img style="float:right;border:none;" src="http://shamansir.files.wordpress.com/2008/05/wikidot.gif?w=16&#038;h=16" alt="This acrticle at wikidot.com" width="16" height="16" /></a></p>
<p><a href="http://ubuntu.com/" title="Ubuntu"><img src="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" alt="Ubuntu" style="border:1px dotted #000000;" /></a> <a href="http://trac.edgewall.org/" title="Trac"><img src="http://shamansir.files.wordpress.com/2007/08/trac.png" alt="Trac" style="border:1px dotted #000000;" /></a> <a href="http://subversion.tigris.org/" title="Subversion"><img src="http://shamansir.files.wordpress.com/2007/08/svn.png" alt="Subversion" style="border:1px dotted #000000;" /></a></p>
<p>Приветствую всех заинтересованных. Ведь вас, наверняка, не очень много :).</p>
<p><strong>Upd.:</strong> Более структурированное и последовательное (правда менее повествовательное) руководство для Ubuntu Feisty <a href="http://shamansir.wordpress.com/2008/03/17/trac-subversion-ubuntu-revisited/">находится здесь</a></p>
<p>Ну а я, в свою очередь, славлюсь среди знающих меня извращенными подходами к простым вещам, так что и в этот раз решил не ломать традиций :).</p>
<p>Предыстория статьи такова:</p>
<p>Автор находится на испытательном сроке в некой фирме и по прибытию туда обнаруживает, что единственный коллега кроме начальника пишет Систему Управления Проектами (не путать с блоггерскими захватчиками &#8211; СУПом) на PHP сроком на две недели (правда, за эти две недели начальник разумно (имхо) требует лишь на-коленочного-статуса). Автор присматривается к требованиям, удивляется и сообщает начальнику, что есть уже такая система, бесплатная, расширяемая и все-в-одном-что-вам-нужно &#8211; <a href="http://trac.edgewall.com/">Trac</a> &#8211; система, которой он с радостью и удовольствием пользовался на прошлой работе. Благо начальник знает что такое SVN, про его замечательную поддержку было упомянуто тоже. Ну и конечно за свои слова пришлось отвечать &#8211; за это автору было заказано установить эту хитрую систему (как некоторые пишут, один из самых сложных пакетов для установки).</p>
<p>В свою очередь, в связи с извращенскими посылами автора, он умолчал о непредназначенности для Trac&#8217;а такой заботливой-о-пользователе-системы как Ubuntu, да еще и поставил это дело для демонстрации a) на vmWare (что, собственно, сути не меняет) (далее &#8211; &laquo;твари&raquo;) с опцией Host-Only и б) на apache2. Это потому что a) другого нового Unix&#8217;а у автора под рукой не было, а устанавдивать его основной ОС было делом неперспективным и б) руководства в инете для Trac + Ubuntu почему-то именно про apache2.</p>
<p>Соответственно, действующие лица aka Оперируемые:</p>
<p><i>Ubuntu 6.06 TLS</i> (руссская, хе-хе :) ), <i>Trac 0.10.3</i>, <i>Subversion 1.4.2</i> в роли <i>Subversion 1.3.1</i> (почему &#8211; смотрите ниже), <i>Python 2.4.3</i> (побоялся ставить на 2.5).</p>
<p>P.S. В сетевых вопросах я пока что чайник (а то и ламер), поэтому если ниже или выше по тексту я допустил какие-либо вопиющие ошибки в терминах, понятиях или даже принципах &#8211; я заранее полностью готов это признать (гм, тогда точно не ламер :) ) и прошу вас меня поправить &#8211; только умоляю &#8211; не орите благим матом :).</p>
<p>Более поздний P.S. В скором времени я, вероятно, буду ставить всю эту компанию (более злободневные версии) на Ubuntu 7.04 с Python 2.5, и статья, ввиду опыта нескольких установок, будет чуть пограмотнее&#8230;</p>
<p><span id="more-15"></span><br />
Система устанавливалась прямиком с LiveCD, без каких-либо хитрых настроек, вот как есть &#8211; шесть пунктов установки и ничего больше. Вы, конечно же, можете все сделать хитрее &#8211; думаю на процессе это отразится не сильно (в отличие, например, от подстановки другой ОС :) ).</p>
<p>Итак, второй апач и 2.4-ый питон нашлись в русских архивах ubuntu (вернее python уже был установлен, но я немного привру :) ), поэтому здесь все было просто:<br />
<code><br />
sudo apt-get install apache2 python2.4</code></p>
<p><b>Upd.:</b> Если вы используете английскую юбунту и апача, например, не нашлось, делаем следующее:<br />
<code><br />
sudo vi /etc/apt/sources.list</code></p>
<p>Добавляем (Insert):<br />
<code><br />
deb http://ru.archive.ubuntu.com/ubuntu dapper universe main restricted multiverse<br />
deb-src http://ru.archive.ubuntu.com/ubuntu dapper universe</code></p>
<p>Если нужно, снимаем комменты со строк с http://**.archive.ubuntu.com и делаем:<br />
<code><br />
sudo apt-get update</code></p>
<p><b>конец Upd.</b></p>
<p>На интернациональных (читай англоязычных) порталах (конечно же можно действительно, как подсказал , раскомментить их в <i>/etc/apt/sources.list</i>) мог бы отыскаться и Trac, но в русской ОС его не нашлось, поэтому я решил сделать его установку ручками, благо это лишь пара лишних команд:</p>
<p><b>Upd.:</b> Здесь и далее все адреса из ссылок &laquo;взять&raquo; и &laquo;забрать&raquo; можно использовать как параметры для команды <i>wget &lt;ссылка&gt;</i>, при этом надо находится в каталоге <i>~/distr</i> &#8211; по статье все файлы скачиваются туда.</p>
<p>Надо <a href="http://ftp.edgewall.com/pub/trac/trac-0.10.3.tar.gz">взять</a> его <a href="http://trac.edgewall.org/wiki/TracDownload">с официального сайта</a> и положить куда-нибудь, например в папку <i>distr</i> в домашней директории и затем, собственно, инсталлировать (установленных пакетов вам должно хватить и все должно обойтись без зависимостей):</p>
<p><font size="-2">(все-все дистрибутивы я складывал в <i>~/distr</i>, что и вам советую, дабы не запутаться)</font><br />
<code><br />
cd /home/some-user/distr<br />
tar xvfz trac-0.10.3.tar.gz<br />
cd ./trac-0.10.3<br />
sudo python ./setup.py install</code></p>
<p>Далее, создадим каталог, куда будем складывать окружения (aka environments &#8211; гм&#8230;. проектов?) trac<br />
<code><br />
sudo mkdir /var/trac<br />
</code><br />
Этот каталог должен быть доступен апачу:</p>
<p><code>sudo chown www-data:www-data /var/trac<br />
</code><br />
Теперь необходимо настроить доступ апача к trac&#8217;у:<br />
<code><br />
sudo vi /etc/apache2/sites-available/trac<br />
</code><br />
Содержимое этого файла должно выглядеть так:</p>
<pre><code>
&lt;VirtualHost *&gt;
    ServerAdmin webmaster@localhost
    ServerName trac.example.com
    DocumentRoot /usr/share/trac/cgi-bin
    &lt;Directory /usr/share/trac/cgi-bin&gt;
        Options Indexes FollowSymLinks MultiViews ExecCGI
        AllowOverride All
        Order allow,deny
        allow from all
    &lt;/Directory&gt;
    Alias /trac "/usr/share/trac/htdocs"</code>
<code>
    &lt;Location /trac.cgi&gt;
        SetEnv TRAC_ENV_PARENT_DIR "/var/trac"
    &lt;/Location&gt;</code>
<code>
    DirectoryIndex trac.cgi
    ErrorLog /var/log/apache2/error.trac.log
    CustomLog /var/log/apache2/access.trac.log combined
&lt;/VirtualHost&gt;</code></pre>
<p>Если кратко, мы настраиваем виртуальный хост, устанавливаеваем корневой каталог для cgi-скриптов и документов в <i>/usr/share/trac/cgi-bin/</i>, а адрес <i>http://localhost/trac</i> привязываем к пути <i>/usr/share/trac/htdocs</i> &#8211; там лежат всяческие веб-документы. Для доступа к проектам для запросов на <i>http://localhost/trac.cgi</i> устанавливается корневой каталог для окружений trac&#8217;а &#8211; <i>/var/trac</i>. В принципе,знающему английский все должно быть понятно :).</p>
<p>Теперь следует включить обработку cgi-скриптов:<br />
<code><br />
sudo vi /etc/apache2/apache2.conf<br />
</code><br />
В этом файле раскомментируйте строку <i>&#8216;AddHandler cgi-script .cgi&#8217;</i>.</p>
<p>Переключим apache на сайт trac&#8217;а в качестве основного:<br />
<code><br />
sudo a2dissite default<br />
sudo a2ensite trac<br />
</code><br />
<font size="-2">(проверьте, является ли теперь <i>/etc/apache2/sites-enabled/trac</i> ссылкой на <i>/etc/apache2/sites-available/trac</i>)</font></p>
<p>Так что пусть апач перечитает настройки:<br />
<code><br />
sudo /etc/init.d/apache2 reload<br />
</code><br />
<b>Upd.:</b> Теперь можно проверить, все ли в порядке &#8211; если в браузере вы набираете <i>http://localhost/trac.cgi/BlahBlah</i> и видите строку &laquo;Environment not found&raquo; &#8211; значит все в порядке. Также <i>http://localhost/trac</i> должен открывать каталог <i>/usr/share/trac/htdocs</i>, а <i>http://localhost/trac.cgi говорить</i>, что нет Clearsilver&#8217;a. Не забудьте кстати потом настроить апачевские права доступа, если надо &#8211; это выходит за рамки статьи, в отличие от траковских :).</p>
<p>Настало время взяться за установку Subversion. Его тоже не оказалось в <i>apt-cache</i>, поэтому я его <a href="http://subversion.tigris.org/downloads/subversion-1.4.2.tar.gz">забрал</a> последний на тот момент (1.4.2) <a href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&amp;expandFolder=260&amp;folderID=7495">отсюда</a> и, также, положил в каталог <i>~/distr</i>, там распаковал, установил необходимые зависимости, собрал и установил, вот так (<i>Upd.:</i> Обратите внимание, пакет называется zlib<b>1</b>g-dev, а не zlib<b>l</b>g-dev):<br />
<code><br />
cd /home/some-user/distr/<br />
tar xvfz subversion-1.4.2.tar.gz<br />
sudo apt-get install gcc<br />
sudo apt-get install libtool<br />
sudo apt-get install libapr0-dev<br />
sudo apt-get install zlib1g-dev<br />
sudo apt-get install make<br />
cd ./subversion-1.4.2<br />
./configure<br />
make<br />
sudo make install<br />
</code><br />
Затем установим модуль svn для apache, утановим swig и установим через пакет subversion версию swig для python (текущий каталог &#8211; <i>/home/some-user/distr/subversion-1.4.2</i>).<br />
<code><br />
sudo apt-get install libapache2-svn<br />
sudo apt-get install swig<br />
sudo apt-get install python-dev<br />
./configure<br />
sudo make swig-py<br />
sudo make install-swig-py<br />
</code><br />
(<i>Upd.:</i> По возможности не обращайте внимания на warning&#8217;и при установке &#8211; насчет redefin&#8217;ов &#8211; на них утсановлена пауза дабы вы с ними ознакомились, но она кончается :))</p>
<p>Установим ссылки на установленные модули так, чтобы они были видны питону.<br />
<code><br />
cd /usr/local/lib/python2.4/site-packages<br />
sudo ln -s /usr/local/lib/svn-python/libsvn<br />
sudo ln -s /usr/local/lib/svn-python/svn<br />
</code><br />
Установим модуль pysqlite, чтобы trac мог работать со своей базой данных.<br />
<code><br />
sudo apt-get install python-pysqlite2<br />
</code><br />
Ввиду новых изменений переустановим trac.<br />
<code><br />
cd /home/some-user/distr/trac-0.10.3<br />
sudo python setup.py install<br />
</code><br />
Теперь нужно установить clearsilver &#8211; чтобы trac мог использовать шаблоны для страниц. Этот пакет тоже пришлось <a href="http://www.clearsilver.net/downloads/clearsilver-0.10.4.tar.gz">забирать</a> <a href="http://www.clearsilver.net/downloads/">из сети</a> и собирать тут же.<br />
<code><br />
cd /home/some-user/distr<br />
tar xvfz clearsilver_0.10.3.orig.tar.gz<br />
cd ./clearsilver_0.10.3.orig<br />
./configure<br />
make<br />
sudo make install</code></p>
<p>Наконец, создадим каталог для репозитория subversion и базовую структуру для него в каталоге <i>/tmp</i>.<br />
<code><br />
sudo mkdir /var/svn<br />
cd /tmp<br />
sudo rm -rfR *<br />
sudo rm -rfR .*<br />
sudo mkdir /tmp/trunk<br />
sudo mkdir /tmp/tags<br />
sudo mkdir /tmp/branches<br />
</code><br />
А теперь начинаются вещи, которые чаще всего генерируют проблемы. Будьте внимательны &#8211; в командах я еще мог ошибиться, но мои пояснения верны просто потому что пол-дня были потрачены именно на их решение, а потом еще меня проконсультировал действующий админ и друг  (за что ему, конечно же, благодарность и которого, конечно же, я мог понять неверно и переврать :) ).</p>
<p>Более того, вся настройка ниже имеет условие &#8211; &laquo;используется только один репозиторий для создаваемого проекта&raquo;. Пояснения &#8211; ниже. <i>(а еще лучше &#8211; по поводу нескольких репозиториев &#8211; см. в <b>Upd.</b> внизу &#8211; тут тоже я, в принципе, не вру &#8211; но там об этом корректнее)</i>.</p>
<p>Используя svnadmin инициализируем репозиторий в соответствующей папке. Опция <i>&#8211;pre-1.4-compatible</i> необходима, если при установке без нее apache стал выдавать в логах нечто вроде <i>&laquo;в /var/svn/SomeTracProject/format ожидалась версия 3, а обнаружена была версия 5&#8243;</i>. Это конфликт разных версий модуля для Если вы используете точно такую же систему что и я (а именно если вы не исправляли ничего в <i>/etc/apt/sources.conf</i> и никто не выкладывал со времени моего поста новых версий пакетов :) ) и в точности следуете моим командам &#8211; то если вы не установите эту опцию &#8211; точно так и получится. В остальных случаях бросьте монету, протестируйте &#8211; пересоздать репозиторий никогда не поздно (закоммитить удаленно в неработающий все равно не получится :) ). Только потом, если вы уже создали окружение для trac &#8211; не забудьте потом сделать <i>sudo trac-admin /var/trac/SomeTracProject resync</i>.</p>
<p>Затем импортируем структуру из /tmp в репозиторий svn и допускаем туда apache.<br />
<code><br />
sudo svnadmin create --pre-1.4-compatible /var/svn/SomeTracProject<br />
cd /tmp<br />
sudo svn import . file:///var/svn/SomeTracProject -m "Initial import"<br />
sudo chown -R www-data:www-data /var/svn/SomeTracProject<br />
</code><br />
Как вариант, можно создать репозиторий в файловой системе FSFS, тогда делайте: <i>sudo svnadmin create &#8211;pre-1.4-compatible &#8211;fs-type=fsfs /var/svn/SomeTracProject</i>.</p>
<p>Настало время инициировать окружение Trac. Отвечайте на вопросы честно, если не знаете ответа &#8211; по умолчанию. На вопрос про тип системы контроля версий ответьте <i>&#8217;svn&#8217;</i>, а на вопрос про положение репозитория &#8211; <i>&#8216;/var/svn/SomeTracProject&#8217;</i>.<br />
<code><br />
sudo trac-admin SomeTracProject initenv<br />
</code><br />
И в этот каталог apache тоже должен иметь доступ.<br />
<code><br />
sudo chown -R www-data /var/trac/SomeTracProject<br />
</code><br />
Каким образом &#8211; апачу нужно объяснить:<br />
<code><br />
sudo vi /etc/apache2/sites-available/trac<br />
</code><br />
Вставьте в этот файл следующий текст (после последнего <i>&lt;/Location&gt;</i>):</p>
<pre><code>
&lt;Location /trac.cgi/*/login&gt;
    AuthType Basic
    AuthName "Trac"
    AuthUserFile /etc/apache2/dav_svn.passwd
    Require valid-user
&lt;/Location&gt;
</code></pre>
<p>Кратко &#8211; это настройка аутентификации для страницы логина. В качестве источника пользователей и md5-хешей-паролей используется файл <i>/etc/apache2/dav_svn.passwd</i>, который мы создадим попозже.</p>
<p>А пока &#8211; настроим удаленный доступ к репозиторию. Здесь надо остановиться и вдохнуть. Будьте внимательны.<br />
<code><br />
sudo vi /etc/apache2/mods-available/dav_svn.conf<br />
</code><br />
Ниже приведена конфигурация для доступа к одному репозиторию, если он подразумевается как единственный!</p>
<p>Если вы хотите настроить доступ к нескольким репозитроиям, все происходит совсем по-другому. Во-первых можно выделить как <i>&lt;Location&gt;</i> сам каталог <i>/svn</i>, тогда для него надо задать &#8211; <i>&#8216;SVNPath /var/svn&#8217;</i> и настраивать корректно аутентификацию в authz-файле (смотрите ниже). Если же вы настраиваете <i>Location</i>&#8216;ы для репозиториев со своими (отдельными) файлами авторизации (только тогда это оправдано), для <i>&#8216;Location /svn&#8217;</i> следует указать вместо <i>&#8216;SVNPath&#8217;</i> &#8211; <i>&#8216;SVNParentPath /var/svn&#8217;</i>, а для <i>Location</i>&#8216;ов репозиториев указывать <i>относительные</i> пути, например: <i>&#8216;SVNPath /SomeTracProject&#8217;</i>. <i>(подробнее см. в <b>Upd.</b> ниже)</i>.</p>
<p>В любом случае, если у вас в логах вылезают ошибки типа <i>&#8216;Unknown/Incorrect SVN FileSystem&#8217;</i> &#8211; ошибку следует искать именно здесь, конкретно в <i>SVN[Parent]Path</i>. Причины же неожиданных <i>Forbidden</i>, конечно, кроются в неверных <i>Location</i>&#8216;ах и, соответственно, аутентификации. Отключайте ее, проверяйте <i>Location</i>. Потом авторизацию. Впрочем, если вы осознали (а я хорошо объяснил) предыдущий абзац, то этих ошибок у вас вылезти не должно. Поговорив с  я бы уже сделал все немного по-другому (смотрите ниже описание аутентификации), но в этом варианте уже все проверено и работает, а наугад писать опасно.</p>
<pre><code>
&lt;Location /svn&gt;
    DAV svn
    SVNPath /var/svn/SomeTracProject
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dav_svn.passwd
    #AuthSVNAccessFile /etc/apache2/dav_svn.authz
    Require valid-user
&lt;/Location&gt;
</code></pre>
<p>Создадим файл паролей и добавим туда пользователей (внимание: опция <i>-c</i> не нужна во втором случае &#8211; она создает/перезаписывает файл без предупреждения)<br />
<code><br />
sudo htpasswd2 -c /etc/apache2/dav_svn.passwd user1<br />
sudo htpasswd2 /etc/apache2/dav_svn.passwd user2<br />
</code><br />
Установим первому пользователю права Admin&#8217;а в Trac&#8217;е.<br />
<code><br />
sudo trac-admin /var/trac/SomeTracProject permission add user1 TRAC_ADMIN<br />
</code><br />
Чтобы прочувствовать эти права на себе, можно поставить плагин <a href="http://trac.edgewall.org/wiki/WebAdmin">TracWebAdmin</a> &#8211; он добавляет удобную админскую GUI-страничку в Trac:<br />
<code><br />
wget http://peak.telecommunity.com/dist/ez_setup.py<br />
sudo python ez_setup.py<br />
wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip?format=raw<br />
mv TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip\?format\=raw TracWebAdmin.egg<br />
sudo easy_install TracWebAdmin.egg<br />
</code><br />
В конфигурации проекта включите этот плагин.<br />
<code><br />
sudo vi /var/trac/SomeTracProject/conf/trac.ini<br />
</code><br />
Вставьте:<br />
<code><br />
[components]<br />
webadmin.*=enabled</code></p>
<p>Теперь добавим авторизацию для проектов в subversion.<br />
<code><br />
sudo vi /etc/apache2/mods-available/dav_svn.conf</code></p>
<p>Раскомментируйте <i>&#8216;AuthSVNAccessFile /etc/apache2/dav_svn.authz&#8217;</i>.</p>
<p>Структура файла авторизации проста: пути, пользователи и права (r &#8211; чтение, w &#8211; запись):<br />
<code><br />
sudo vi /etc/apache2/dav_svn.authz<br />
</code><br />
Вставьте:<br />
<code><br />
[/]<br />
user1 = rw<br />
user2 = r<br />
</code><br />
Если бы вы указали в файле <i>/etc/apache2/mods-enabled/dav_svn.conf</i> <i>&#8216;SVNParentPath /var/svn&#8217;</i>, то файл аутентификации должен бы был выглядеть как-нибудь так (и это верный вариант для репозиториев с несколькими проектами):<br />
<code><br />
[/SomeTracProject]<br />
user1 = rw<br />
user2 = r</code><br />
<code><br />
[/AnotherTracProject]<br />
user1 = rw<br />
user2 = r</code></p>
<p>Ну и наконец перезапустим сервер (а если что-нибудь до сих пор не работает &#8211; машину :)) )<br />
<code><br />
sudo /etc/init.d/apache2 restart<br />
</code></p>
<p>&#8230;На следующей неделе я буду устанавливать <a href="http://trac.edgewall.org/wiki/TimeTracking">Timing</a> для Trac&#8217;а (тикет получает такое понятие как estimation + фактическое время за которое он был сделан, milestone позволяет сложить все это время в часы, в комментах к ревизиям можно писать за сколько времени был выполнен тикет (часть тикета) и время автоматически просуммируется) &#8211; и если будет возможность и все пройдет удачно (это diff для версии 0.10), опишу здесь и этот процесс.</p>
<p><b>Upd.:</b></p>
<p><i>Первое.</i> По поводу нескольких окружений и связанных с ними репозиториях. Легче всего &#8211; забить на отдельные репозитории для окружений и сделать (кстати имхо это и для одного проекта неплохой вариант)<br />
<code><br />
sudo svnadmin create --pre-1.4-compatible /var/svn/ (опция compatible обязательна есть только у вас апач ругается на формат в файле /var/svn/FORMAT)<br />
</code><br />
Затем в /tmp/ (очистив его предварительно :) ) mkdir-ом построить структуру &laquo;по одному каталогу для каждого проекта&raquo;. А в каждом из этих каталогов сделать, соответственно, свои trunk-tags-branches. Затем сделать<br />
<code><br />
cd /tmp<br />
sudo svn import . file:///var/svn/ -m "Initial import"<br />
</code><br />
В /etc/apache2/mods-enabled/dav_svn.conf указать:</p>
<pre><code>
&lt;Location /svn&gt;
    DAV svn
    SVNPath /var/svn/
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dav_svn.passwd
    AuthSVNAccessFile /etc/apache2/dav_svn.authz
    Require valid-user
&lt;/Location&gt;
</code></pre>
<p>и убрать ненужные Location&#8217;ы (подкаталоги svn&#8217;а), если они там есть.</p>
<p>А вот уже в файле аутентификации /etc/apache2/dav_svn.authz мы прописываем права на проекты:<br />
<code><br />
[/]<br />
megaroot = rw</code><br />
<code><br />
[/SomeProject]<br />
user1 = rw<br />
user2 = r</code><br />
<code><br />
[/AnotherProject]<br />
user1 = rw<br />
user2 = r</code></p>
<p>При создании окружений в trac-admin, мы в пути к репозиторию, соответственно, указываем /var/svn/SomeProject</p>
<p>Теперь можно возвращаться и читать про htpasswd и TracWebAdmin. Больше ничего не надо. А, хотя нет &#8211; потом вернитесь и прочитайте пункт <i>Третье</i>. Я расскажу про то, что делать, когда уже все поставлено.</p>
<p><i>Второе.</i> <a href="http://trac.edgewall.org/wiki/TimeTracking">Timing</a> устанавливается точно так, как указано в рководстве, так что пояснений я делать не буду :). Остальные основные плагины (<a href="http://trac-hacks.org/wiki/AccountManagerPlugin">авторизация формой/аккаунты</a>, <a href="http://trac-hacks.org/wiki/DiscussionPlugin">форумы</a> и <a href="http://trac-hacks.org/wiki/WikiGoodiesPlugin">бла-бла-бла</a>) прикручиваются еще легче &#8211; сборкой<br />
<code><br />
python setup.py bdist_egg<br />
</code><br />
из распакованных сурсов, взятием из каталога dist результирующего яйца (.egg, прошу не обижаться &#8211; это почти что питоновский почти что аналог почти что .jar-ов) и укладкой его в каталог plugins окружения trac&#8217;a (не забываем про права www-data) (+ прописывание плагина в trac.ini окружения, как указано в описании или включение его в админке) . (для плагина с авторизацией в /etc/apache2/sites-enabled/trac надо закомментить весь Location trac.cgi/*/login, выключить траковский LoginModule и включить LoginModule из этого плагина, указать ему на /etc/apache/dav_svn.passwd и затем рестартовать апач).</p>
<p>Сложнее с плагином <a href="http://trac-hacks.org/wiki/GraphvizPlugin">Graphviz</a>, так что если он действительно нужен и никак его не поставить &#8211; пишите мне. Но думаю если вы справились со всем предыдущим &#8211; у вас и здесь все пройдет на ура :).</p>
<p><i>Третье</i>. Когда нужно создать новый проект уже после того как все поставлено (а то и через некоторое время) &#8211; все просто. Пользователю megaroot (см. /etc/apache2/dav_svn.authz) закоммитить в /var/svn/ каталог с этим проектом (+ trunk-tags-branches).</p>
<p>Затем:<br />
<code><br />
sudo trac-admin /var/trac/NewProject initenv (в пути к subversion указываем /var/svn/NewProject)<br />
sudo chown -R www-data:www-data /var/trac/NewProject<br />
</code><br />
Теперь надо настроить аутентификацию, делаем:<br />
<code><br />
sudo vi /etc/apache2/dav_svn.authz<br />
</code><br />
Жмем Insert и <i>вставляем в конец</i> файла:<br />
<code><br />
[/NewProject]<br />
user1 = rw<br />
user2 = r<br />
megaroot = rw<br />
</code><br />
делаем Esc/:wq и&#8230;. все. Вот так &#8211; если все правильно настроено &#8211; делать нужно минимум.</p>
<p>Насчет добавления пользователя. Добавлять его нужно только в /etc/apache2/dav_svn.passwd и никуда больше:<br />
<code><br />
sudo htpasswd /etc/apache2/dav_svn.passwd new_user<br />
</code><code><br />
И если у вас все правильно настроено - примет его корректно и trac, и subversion.</code></p>
<p>Ах, ну да, для subversion его нужно еще пустить в проект :):<br />
<code><br />
sudo vi /etc/apache2/dav_svn.authz<br />
</code><br />
<i>Вставляем</i> в нужный проект:<br />
<code><br />
[/SomeProject]<br />
user1 = rw<br />
user2 = r<br />
megaroot = rw<br />
new_user = rw<br />
</code></p>
<p>Вот теперь точно все. Успехов :).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/shamansir.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/shamansir.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shamansir.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shamansir.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shamansir.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shamansir.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shamansir.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shamansir.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shamansir.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shamansir.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shamansir.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shamansir.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shamansir.wordpress.com&blog=1450937&post=15&subd=shamansir&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shamansir.wordpress.com/2006/12/16/trac-subversion-ubuntu-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%bd%d0%b0%d1%8f-%d0%b7%d0%b0%d0%b1%d0%b0%d0%b2%d0%b0-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd%d1%8c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a2d33923a3370522905ebd5ab5f14cf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaman.sir</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2008/05/wikidot.gif" medium="image">
			<media:title type="html">This acrticle at wikidot.com</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/ubuntu.png" medium="image">
			<media:title type="html">Ubuntu</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/trac.png" medium="image">
			<media:title type="html">Trac</media:title>
		</media:content>

		<media:content url="http://shamansir.files.wordpress.com/2007/08/svn.png" medium="image">
			<media:title type="html">Subversion</media:title>
		</media:content>
	</item>
	</channel>
</rss>