<?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/"
	>

<channel>
	<title>IT блог Дениса Каратаева</title>
	<atom:link href="http://dskarataev.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://dskarataev.ru</link>
	<description></description>
	<lastBuildDate>Sat, 05 May 2012 11:19:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Улучшенный аналог ondelete=restrict для полей many2many</title>
		<link>http://dskarataev.ru/2012/05/uluchshennyj-analog-ondeleterestrict-dlya-polej-many2many/</link>
		<comments>http://dskarataev.ru/2012/05/uluchshennyj-analog-ondeleterestrict-dlya-polej-many2many/#comments</comments>
		<pubDate>Sat, 05 May 2012 07:45:48 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[openerp]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=274</guid>
		<description><![CDATA[По умолчанию у полей с типом many2many нет параметра ondelete, как у полей с типом many2one, который отвечает за то, что делать с элементом, который ссылается на другой элемент, если этот другой элемент удаляют. У опции ondelete есть в таком случае два варианта: cascade &#8211; удалять элемент при удалении родителя (не знаю как правильно назвать [...]]]></description>
			<content:encoded><![CDATA[<p>По умолчанию у полей с типом many2many нет параметра ondelete, как у полей с типом many2one, который отвечает за то, что делать с элементом, который ссылается на другой элемент, если этот другой элемент удаляют.</p>
<p>У опции ondelete есть в таком случае два варианта:<br />
cascade &#8211; удалять элемент при удалении родителя (не знаю как правильно назвать тот элемент, НА который ссылаются)<br />
restrict &#8211; запрет удаления родительского элемента</p>
<p>Бывают случаи, когда для полей many2many тоже было бы неплохо использовать аналог опции ondelete=restrict. У меня как раз такой случай. Есть две модели &#8211; product.attribute и product.attribute.group, между которыми связь many2many.<br />
<cut><br />
Я переопределил метод unlink, внутри которого проверяю наличие связей у удаляемой записи. Ниже пример для проверки связей при попытке удаления product.attribute:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> unlink<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, cr, uid, ids, context=<span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> context <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            context = <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> attribute <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">browse</span><span style="color: black;">&#40;</span>cr, uid, ids<span style="color: black;">&#41;</span>:
            attribute_group = <span style="color: #008000;">self</span>.<span style="color: black;">pool</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'product.attribute.group'</span><span style="color: black;">&#41;</span>
            attribute_group_ids = attribute_group.<span style="color: black;">search</span><span style="color: black;">&#40;</span>cr, uid, <span style="color: black;">&#91;</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'attribute_ids'</span>, <span style="color: #483d8b;">'in'</span>, attribute.<span style="color: #008000;">id</span><span style="color: black;">&#41;</span>,<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> attribute_group_ids:
                attribute_group_names = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
                <span style="color: #ff7700;font-weight:bold;">for</span> attribute_group_element <span style="color: #ff7700;font-weight:bold;">in</span> attribute_group.<span style="color: black;">browse</span><span style="color: black;">&#40;</span>cr, uid, attribute_group_ids<span style="color: black;">&#41;</span>:
                    attribute_group_names.<span style="color: black;">append</span><span style="color: black;">&#40;</span>attribute_group_element.<span style="color: black;">name</span><span style="color: black;">&#41;</span>
                attribute_group_names_str = <span style="color: #483d8b;">', '</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>attribute_group_names<span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">raise</span> osv.<span style="color: black;">except_osv</span><span style="color: black;">&#40;</span>_<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Some attribute groups have references to the attribute '</span><span style="color: black;">&#41;</span> + attribute.<span style="color: black;">name</span> + <span style="color: #483d8b;">'!'</span>,
                                     _<span style="color: black;">&#40;</span><span style="color: #483d8b;">'First remove these  references: '</span><span style="color: black;">&#41;</span> + attribute_group_names_str<span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>product_attribute_group, <span style="color: #008000;">self</span><span style="color: black;">&#41;</span>.<span style="color: black;">unlink</span><span style="color: black;">&#40;</span>cr, uid, ids<span style="color: black;">&#41;</span></pre></div></div>

<p>Аналогичный код написан и для проверки при попытке удаления product.attribute.group. Если находим ссылки на удаляемую запись, тогда формируем строку с перечислением записей, которые ссылаются на текущую, и выводим пользователю сообщение о том, что сначала нужно удалить эти ссылки. Таким образом пользователь сразу узнает, что конкретно мешает удалению текущей записи (кстати хорошо бы было сделать такое же сообщение и при ondelete=restrict, а то там просто выводится ошибка, а что конкретно нужно сделать чтобы все-таки удалить запись, не написано).</p>
<p>Вы можете заметить что тексты сообщения обрамлены в функцию _(), это для того чтобы строки были переводимыми. Чтобы эту функцию использовать, нужно подключить ее такой строкой:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> tools.<span style="color: black;">translate</span> <span style="color: #ff7700;font-weight:bold;">import</span> _</pre></div></div>

<p>Вопросы и комментарии приветствуются.</p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2012/05/uluchshennyj-analog-ondeleterestrict-dlya-polej-many2many/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dpkg и автоматическая установка зависимостей</title>
		<link>http://dskarataev.ru/2012/04/dpkg-i-avtomaticheskaya-ustanovka-zavisimostej/</link>
		<comments>http://dskarataev.ru/2012/04/dpkg-i-avtomaticheskaya-ustanovka-zavisimostej/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 09:20:12 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[решение проблем]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=266</guid>
		<description><![CDATA[Многие сталкиваются с тем, что при установке пакета из файла а не из репозитория, зависимости автоматически не устанавливаются, когда вы выполняете команду dpkg -i имя_пакета Сам dpkg зависимости автоматически устанавливать не умеет (насколько я знаю), но вам поможет вот такая последовательность команд: dpkg -i имя_пакета apt-get -f install Вторая команда скачивает и устанавливает все зависимости, [...]]]></description>
			<content:encoded><![CDATA[<p>Многие сталкиваются с тем, что при установке пакета из файла а не из репозитория, зависимости автоматически не устанавливаются, когда вы выполняете команду <code>dpkg -i имя_пакета</code></p>
<p>Сам dpkg зависимости автоматически устанавливать не умеет (насколько я знаю), но вам поможет вот такая последовательность команд:</p>
<p><code>dpkg -i имя_пакета<br />
apt-get -f install</code></p>
<p>Вторая команда скачивает и устанавливает все зависимости, которых не хватило первой команде, после чего автоматически продолжает установку нужного вам пакета, т.е. повторно dpkg запускать не требуется. Вот так все просто.</p>
<p>Другие полезные команды Linux можно посмотреть на странице <a href="http://dskarataev.ru/2011/07/poleznye-komandy-linux/">Полезные команды Linux</a>, которая постоянно пополняется новыми командами.</p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2012/04/dpkg-i-avtomaticheskaya-ustanovka-zavisimostej/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройки звука сбиваются при перезагрузке (Linux, Gnome, ALSA)</title>
		<link>http://dskarataev.ru/2012/03/nastrojki-zvuka-sbivayutsya-pri-perezagruzke-linux-gnome-alsa/</link>
		<comments>http://dskarataev.ru/2012/03/nastrojki-zvuka-sbivayutsya-pri-perezagruzke-linux-gnome-alsa/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 06:56:23 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[решение проблем]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=264</guid>
		<description><![CDATA[Если у вас настройки звука сбиваются при перезагрузке (например выставляются на ноль), нужно сделать следующее: Настроить колонки и микрофон на комфортный уровень В терминале (с правами администратора) выполнить команду alsactl store Если терминал скажет что команды alsactl он не знает, возможно вам нужно установить пакет alsa-utils (это в Debian, в других дистрибутивах возможно он называется [...]]]></description>
			<content:encoded><![CDATA[<p>Если у вас настройки звука сбиваются при перезагрузке (например выставляются на ноль), нужно сделать следующее:</p>
<ol>
<li>Настроить колонки и микрофон на комфортный уровень</li>
<li>В терминале (с правами администратора) выполнить команду alsactl store</li>
</ol>
<p>Если терминал скажет что команды alsactl он не знает, возможно вам нужно установить пакет alsa-utils (это в Debian, в других дистрибутивах возможно он называется по другому).</p>
<p>После этих телодвижений звук должен сохраняться при выключении и перезагрузке на выставленном уровне.</p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2012/03/nastrojki-zvuka-sbivayutsya-pri-perezagruzke-linux-gnome-alsa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TOP 7 поисковых фраз (ответы на вопросы)</title>
		<link>http://dskarataev.ru/2012/01/top-7-poiskovyx-fraz-otvety-na-voprosy/</link>
		<comments>http://dskarataev.ru/2012/01/top-7-poiskovyx-fraz-otvety-na-voprosy/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 04:41:58 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[denwer]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[openerp]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=219</guid>
		<description><![CDATA[Всем привет! Просматривая статистику по поисковым запросам, которые приводят на мой сайт, выявил популярные вопросы. 1 &#8211; shell du посчитать количество файлов Вероятно, вас интересует, как посчитать количество файлов с помощью команды du (disk usage). Вообще, не очень понятен смысл считать количество файлов командой du, т.к. она показывает количество используемого места на диске. Обычно я [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Просматривая статистику по поисковым запросам, которые приводят на мой сайт, выявил популярные вопросы.</p>
<h3>1 &#8211; shell du посчитать количество файлов</h3>
<p>Вероятно, вас интересует, как посчитать количество файлов с помощью команды du (disk usage). Вообще, не очень понятен смысл считать количество файлов командой du, т.к. она показывает количество используемого места на диске. Обычно я считаю количество файлов с помощью команды find. Но раз вы так хотите, то и это осуществимо.</p>
<p>Для начала, чтобы посчитать количество файлов, нужно вывести все файлы в выбранном каталоге командой du. Для этого служит параметр -a или &#8211;all. Нижеприведенная команда показывает все файлы в каталоге /var</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">-a</span> <span style="color: #000000; font-weight: bold;">/</span>var
<span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">--all</span> <span style="color: #000000; font-weight: bold;">/</span>var</pre></div></div>

<p>Потом нужно все эти файлы посчитать. Этим займется команда wc. Эта команда печатает количество строк, слов и байт в указанном файле, но в данном случае она будет брать не файл а входной поток. Т.е. вывод предыдущей команды она воспринимает как текстовый файл, и считает в нем строки, т.к. у нас каждый файл на новой строке. Чтобы команда wc считала исключительно строки, добавляем параметр -l (&#8211;lines). Выглядеть это будет так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">-a</span> <span style="color: #000000; font-weight: bold;">/</span>var <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span>
<span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">--all</span> <span style="color: #000000; font-weight: bold;">/</span>var <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">--lines</span></pre></div></div>

<p>У меня в /var получилось 24009 файлов. Кстати, если вы хотите подсчитать суммарный размер файлов, используйте команду du с флагом -s. И чтобы вывод был не в байтах, а в человечном виде (например в гигабайтах), нужно использовать еще флаг -h. Так можно узнать суммарный размер любого каталога.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">-sh</span> <span style="color: #000000; font-weight: bold;">/</span>var
<span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">--summarize</span> <span style="color: #660033;">--human-readable</span> <span style="color: #000000; font-weight: bold;">/</span>var</pre></div></div>

<h3>2 &#8211; наложить патч на файл linux</h3>
<p>Как это делается было объяснено в статье <a href="http://dskarataev.ru/2011/09/sozdanie-i-nalozhenie-patchej/">Создание и наложение патчей</a>. Если что-то не понятно, пишите там в комментарии, я отвечу. Возможно вам придется поставить пакет patch чтобы установить недостающие компоненты, если что-то не работает.</p>
<h3>3 &#8211; не запускается web клиент openerp</h3>
<p>Здесь нужно смотреть, какие при этом он выдает ошибки в консоли терминала. Как правило не установлены нужные модули (зависимости). Посмотрите еще раз в <a href="http://doc.openerp.com/v6.0/install/linux/web/index.html">документации по установке на сайте OpenERP</a> (ссылка для версии 6.0.x, для 6.1 нужны другие зависимости)</p>
<h3>4 &#8211; bash количество каталогов</h3>
<p>Ну, это совсем просто. Нам потребуется использовать две команды в связке. Первая выводит все каталоги в нужной папке (type=directory), вторая, уже описанная в этом посте выше, считает количество строк в выводе и выводит результат.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>var <span style="color: #660033;">-type</span> d <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span></pre></div></div>

<h3>5 &#8211; debian denwer</h3>
<p>Извините, но зачем вам denwer на debian, когда полноценный веб-сервер ставится за одну минуту? Точно не уверен, но мне кажется что denwer под debian не существует, по крайней мере необходимости в нем на linux нет. Наберите команду:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> update <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> apache2 php5 mysql-server php5-mysql</pre></div></div>

<p>можно еще добавить нужные вам библиотеки, например я обычно еще добавляю php5-gd для уменьшения изображений.</p>
<h3>6 &#8211; linux bash shell команды</h3>
<p>Постоянно обновляемый и пополняемый список полезных linux bash shell команд приведен на странице <a href="http://dskarataev.ru/2011/07/poleznye-komandy-linux/">Полезные команды Linux</a></p>
<h3>7 &#8211; кто работал с openerp</h3>
<p>OpenERP сообщество в России еще не особо большое. Можно посмотреть в <a href="http://www.openerp.com/forum/forum36.html">российской ветке форума OpenERP</a>.</p>
<p>Еще есть <a href="http://arterp.ru">arterp.ru</a> &#8211; по ссылке имеется список клиентов с успешными внедрениями в России. Еще посетите <a href="http://wiki.arterp.ru">wiki.arterp.ru</a>, там есть инструкции со скриншотами и красивые схемы движения материалов <img src='http://dskarataev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Блоги наших зарубежных коллег:<br />
<a href="http://mohsinpage.wordpress.com/category/openerp/">http://mohsinpage.wordpress.com/category/openerp/</a><br />
<a href="http://www.zbeanztech.com/blog">http://www.zbeanztech.com/blog</a></p>
<p>С OpenERP также работаю я <img src='http://dskarataev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li>мои записи по OpenERP можно посмотреть в этом блоге по тегу <a href="http://dskarataev.ru/tag/openerp/">openerp</a>.</li>
<li>написанные мной модули и патчи к OpenERP можно посмотреть на <a href="https://github.com/dskarataev/dskopenerp">GitHub</a>.</li>
</ul>
<p>С OpenERP можешь начать работать и ты! Дерзай и все получится.</p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2012/01/top-7-poiskovyx-fraz-otvety-na-voprosy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bash команда watch</title>
		<link>http://dskarataev.ru/2011/12/bash-komanda-watch/</link>
		<comments>http://dskarataev.ru/2011/12/bash-komanda-watch/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 11:03:09 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=210</guid>
		<description><![CDATA[Потребовалось в реальном времени видеть количество файлов в папке, чтобы видеть как они прибавляются и сколько еще ждать. Нашел полезную команду watch, которая через заданный интервал повторяет нужную вам команду и отображает ее результат. Используется так: watch -n количество_секунд &#34;ваша команда&#34; В моем случае получилось так: watch -n 1 &#34;ls -1 &#124; wc -l&#34; Посмотреть [...]]]></description>
			<content:encoded><![CDATA[<p>Потребовалось в реальном времени видеть количество файлов в папке, чтобы видеть как они прибавляются и сколько еще ждать.</p>
<p>Нашел полезную команду watch, которая через заданный интервал повторяет нужную вам команду и отображает ее результат. Используется так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">watch <span style="color: #660033;">-n</span> количество_секунд <span style="color: #ff0000;">&quot;ваша команда&quot;</span></pre></div></div>

<p>В моем случае получилось так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">watch <span style="color: #660033;">-n</span> <span style="color: #000000;">1</span> <span style="color: #ff0000;">&quot;ls -1 | wc -l&quot;</span></pre></div></div>

<p>Посмотреть другие полезные команды Linux можно на странице <a href="http://dskarataev.ru/2011/07/poleznye-komandy-linux/">Полезные команды Linux</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2011/12/bash-komanda-watch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FATAL: Ident authentication failed for user &#8220;openerp&#8221;</title>
		<link>http://dskarataev.ru/2011/11/fatal-ident-authentication-failed-for-user-openerp/</link>
		<comments>http://dskarataev.ru/2011/11/fatal-ident-authentication-failed-for-user-openerp/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 12:18:03 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openerp]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=207</guid>
		<description><![CDATA[If you see this error, try to change &#8216;ident&#8217; to &#8216;md5&#8242; in file /etc/postgresql/9.0/main/pg_hba.conf It works!]]></description>
			<content:encoded><![CDATA[<p>If you see this error, try to change &#8216;ident&#8217; to &#8216;md5&#8242; in file /etc/postgresql/9.0/main/pg_hba.conf</p>
<p>It works!</p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2011/11/fatal-ident-authentication-failed-for-user-openerp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenERP Tips &amp; Tricks</title>
		<link>http://dskarataev.ru/2011/09/openerp-tips-tricks/</link>
		<comments>http://dskarataev.ru/2011/09/openerp-tips-tricks/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 06:19:30 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[openerp]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=196</guid>
		<description><![CDATA[If you&#8217;re looking for manipulate many2many and one2many fields in OpenERP (to link objects to each other or delete or modify this link), you must write one of these values to many2many or one2many field: many2many: (0, 0, { values }) link to a new record that needs to be created with the given values [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re looking for manipulate many2many and one2many fields in OpenERP (to link objects to each other or delete or modify this link), you must write one of these values to many2many or one2many field:</p>
<p><strong>many2many:</strong></p>
<pre>(0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
(1, ID, { values })    update the linked record with id = ID (write *values* on it)
(2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
(3, ID)                cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
(4, ID)                link to existing record with id = ID (adds a relationship)
(5)                    unlink all (like using (3,ID) for all linked records)
(6, 0, [IDs])          replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)

Example:
   [(6, 0, [8, 5, 6, 4])] sets the many2many to ids [8, 5, 6, 4]</pre>
<p><strong>one2many:</strong></p>
<pre>(0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
(1, ID, { values })    update the linked record with id = ID (write *values* on it)
(2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)

Example:
   [(0, 0, {'field_name':field_value_record1, ...}), (0, 0, {'field_name':field_value_record2, ...})]</pre>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2011/09/openerp-tips-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создание и наложение патчей</title>
		<link>http://dskarataev.ru/2011/09/sozdanie-i-nalozhenie-patchej/</link>
		<comments>http://dskarataev.ru/2011/09/sozdanie-i-nalozhenie-patchej/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 07:43:24 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openerp]]></category>
		<category><![CDATA[patch]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=182</guid>
		<description><![CDATA[Приходится по работе сейчас патчить openerp-web (веб-клиент для открытой ERP системы OpenERP http://openerp.com), т.к. он глюковат. Вот, чтобы не забыть, как создать патч и как потом применить его к оригинальному файлу. Создать патч: diff -uN file.orig file.new &#62; file.patch Наложить патч: patch file.orig &#60; file.patch Если кого-то интересуют патчи к openerp-web, загляните ко мне на [...]]]></description>
			<content:encoded><![CDATA[<p>Приходится по работе сейчас патчить openerp-web (веб-клиент для открытой ERP системы OpenERP <a href="http://openerp.com">http://openerp.com</a>), т.к. он глюковат.</p>
<p>Вот, чтобы не забыть, как создать патч и как потом применить его к оригинальному файлу.</p>
<p>Создать патч:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">diff</span> <span style="color: #660033;">-uN</span> file.orig file.new <span style="color: #000000; font-weight: bold;">&gt;</span> file.patch</pre></div></div>

<p>Наложить патч:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">patch</span> file.orig <span style="color: #000000; font-weight: bold;">&lt;</span> file.patch</pre></div></div>

<p>Если кого-то интересуют патчи к openerp-web, загляните ко мне на GitHub: <a href="https://github.com/dskarataev/dskopenerp">https://github.com/dskarataev/dskopenerp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2011/09/sozdanie-i-nalozhenie-patchej/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Запускаем openerp-web как сервис (для версии 6.0)</title>
		<link>http://dskarataev.ru/2011/08/zapuskaem-openerp-web-kak-servis/</link>
		<comments>http://dskarataev.ru/2011/08/zapuskaem-openerp-web-kak-servis/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 16:05:18 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openerp]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=166</guid>
		<description><![CDATA[Если вы уже скачали и установили openerp-web (об этом написано в инструкции), он запускается вручную и всё работает, и вы просто хотите чтобы он работал не только запущенным вручную, а всегда, то эта статья для вас. Для того чтобы openerp-web работал всегда, нужно запускать его как сервис, т.е. прописать в /etc/init.d/ Для начала скопируйте содержимое [...]]]></description>
			<content:encoded><![CDATA[<p>Если вы уже скачали и установили openerp-web (об этом написано в <a href="http://doc.openerp.com/v6.0/install/linux/web/index.html#installing-the-openerp-web-client">инструкции</a>), он запускается вручную и всё работает, и вы просто хотите чтобы он работал не только запущенным вручную, а всегда, то эта статья для вас.</p>
<p>Для того чтобы openerp-web работал всегда, нужно запускать его как сервис, т.е. прописать в /etc/init.d/</p>
<p>Для начала скопируйте содержимое скрипта, представленного ниже, в файл /etc/init.d/openerp-web</p>
<p><span id="more-166"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;">### BEGIN INIT INFO</span>
<span style="color: #666666; font-style: italic;"># Provides:             openerp-web</span>
<span style="color: #666666; font-style: italic;"># Required-Start:       $syslog</span>
<span style="color: #666666; font-style: italic;"># Required-Stop:        $syslog</span>
<span style="color: #666666; font-style: italic;"># Should-Start:         $network</span>
<span style="color: #666666; font-style: italic;"># Should-Stop:          $network</span>
<span style="color: #666666; font-style: italic;"># Default-Start:        2 3 4 5</span>
<span style="color: #666666; font-style: italic;"># Default-Stop:         0 1 6</span>
<span style="color: #666666; font-style: italic;"># Short-Description:    OpenERP Web - the Web Client of the OpenERP</span>
<span style="color: #666666; font-style: italic;"># Description:          OpenERP is a complete ERP and CRM software.</span>
<span style="color: #666666; font-style: italic;">### END INIT INFO</span>
&nbsp;
<span style="color: #007800;">PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin
<span style="color: #007800;">DAEMON</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>openerp-web
<span style="color: #007800;">NAME</span>=openerp-web
<span style="color: #007800;">DESC</span>=openerp-web
&nbsp;
<span style="color: #666666; font-style: italic;"># Specify the user name (Default: openerp).</span>
<span style="color: #007800;">USER</span>=<span style="color: #ff0000;">&quot;openerp&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Specify an alternate config file (Default: /etc/openerp-web.cfg).</span>
<span style="color: #007800;">CONFIGFILE</span>=<span style="color: #ff0000;">&quot;/etc/openerp-web.cfg&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># pidfile</span>
<span style="color: #007800;">PIDFILE</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$NAME</span>.pid
&nbsp;
<span style="color: #666666; font-style: italic;"># Additional options that are passed to the Daemon.</span>
<span style="color: #007800;">DAEMON_OPTS</span>=<span style="color: #ff0000;">&quot;-c <span style="color: #007800;">$CONFIGFILE</span>&quot;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$DAEMON</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$CONFIGFILE</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
&nbsp;
checkpid<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1</span>
    <span style="color: #007800;">pid</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$PIDFILE</span><span style="color: #000000; font-weight: bold;">`</span>
    <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$pid</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">0</span>
    <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>lsb<span style="color: #000000; font-weight: bold;">/</span>init-functions <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>gentoo-release <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
&nbsp;
    do_start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        start-stop-daemon <span style="color: #660033;">--start</span> <span style="color: #660033;">--verbose</span> <span style="color: #660033;">--pidfile</span> <span style="color: #007800;">$PIDFILE</span> \
            <span style="color: #660033;">--chuid</span> <span style="color: #007800;">$USER</span>  <span style="color: #660033;">--background</span> <span style="color: #660033;">--make-pidfile</span> \
            <span style="color: #660033;">--exec</span> <span style="color: #007800;">$DAEMON</span> <span style="color: #660033;">--</span> <span style="color: #007800;">$DAEMON_OPTS</span>
&nbsp;
        <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span>
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>         <span style="color: #666666; font-style: italic;"># wait for few seconds</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
    <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
    do_stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        start-stop-daemon <span style="color: #660033;">--stop</span> <span style="color: #660033;">--quiet</span> <span style="color: #660033;">--pidfile</span> <span style="color: #007800;">$PIDFILE</span> <span style="color: #660033;">--oknodo</span>
&nbsp;
        <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span>
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">2</span>         <span style="color: #666666; font-style: italic;"># wait for few seconds</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span>  <span style="color: #666666; font-style: italic;"># remove pidfile</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
    <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
    do_restart<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        start-stop-daemon <span style="color: #660033;">--stop</span> <span style="color: #660033;">--quiet</span> <span style="color: #660033;">--pidfile</span> <span style="color: #007800;">$PIDFILE</span> <span style="color: #660033;">--oknodo</span>
&nbsp;
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">2</span>         <span style="color: #666666; font-style: italic;"># wait for few seconds</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span>  <span style="color: #666666; font-style: italic;"># remove pidfile</span>
&nbsp;
        start-stop-daemon <span style="color: #660033;">--start</span> <span style="color: #660033;">--quiet</span> <span style="color: #660033;">--pidfile</span> <span style="color: #007800;">$PIDFILE</span> \
            <span style="color: #660033;">--chuid</span> <span style="color: #007800;">$USER</span> <span style="color: #660033;">--background</span> <span style="color: #660033;">--make-pidfile</span> \
            <span style="color: #660033;">--exec</span> <span style="color: #007800;">$DAEMON</span> <span style="color: #660033;">--</span> <span style="color: #007800;">$DAEMON_OPTS</span>
&nbsp;
        <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span>
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>         <span style="color: #666666; font-style: italic;"># wait for few seconds</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
    <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
    do_start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #007800;">$DAEMON</span> <span style="color: #007800;">$DAEMON_OPTS</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">&amp;</span>
&nbsp;
        <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span>
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>         <span style="color: #666666; font-style: italic;"># wait for few seconds</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$!</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$PIDFILE</span>  <span style="color: #666666; font-style: italic;"># create pidfile</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
    <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
    do_stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
        <span style="color: #007800;">pid</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$PIDFILE</span><span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #c20cb9; font-weight: bold;">kill</span> <span style="color: #660033;">-15</span> <span style="color: #007800;">$pid</span>
&nbsp;
        <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span>
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">2</span>         <span style="color: #666666; font-style: italic;"># wait for few seconds</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span>  <span style="color: #666666; font-style: italic;"># remove pidfile</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
    <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
    do_restart<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
            do_stop
        <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
        do_start
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$?</span>
    <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
start_daemon<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;pidfile already exists: <span style="color: #007800;">$PIDFILE</span>&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Starting <span style="color: #007800;">$DESC</span>: &quot;</span>
&nbsp;
    do_start
&nbsp;
    checkpid
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$?</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;failed.&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;done.&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
stop_daemon<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
    checkpid
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$?</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Stopping <span style="color: #007800;">$DESC</span>: &quot;</span>
&nbsp;
    do_stop
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$?</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;failed.&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;done.&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
restart_daemon<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Reloading <span style="color: #007800;">$DESC</span>: &quot;</span>
&nbsp;
    do_restart
&nbsp;
    checkpid
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$?</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$PIDFILE</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;failed.&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;done.&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
status_daemon<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Checking <span style="color: #007800;">$DESC</span>: &quot;</span>
&nbsp;
    checkpid
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$?</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;stopped.&quot;</span>
    <span style="color: #000000; font-weight: bold;">else</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;running.&quot;</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
    start<span style="color: #7a0874; font-weight: bold;">&#41;</span> start_daemon <span style="color: #000000; font-weight: bold;">;;</span>
    stop<span style="color: #7a0874; font-weight: bold;">&#41;</span> stop_daemon <span style="color: #000000; font-weight: bold;">;;</span>
    restart<span style="color: #000000; font-weight: bold;">|</span>force-reload<span style="color: #7a0874; font-weight: bold;">&#41;</span> restart_daemon <span style="color: #000000; font-weight: bold;">;;</span>
    status<span style="color: #7a0874; font-weight: bold;">&#41;</span> status_daemon <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #007800;">N</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$NAME</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: <span style="color: #007800;">$N</span> {start|stop|restart|force-reload|status}&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
<span style="color: #000000; font-weight: bold;">esac</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># vim: sts=4 st=4 et</span></pre></div></div>

<p>Не забудьте поставить для этого файла права на выполнение!</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>openerp-web</pre></div></div>

<p>Теперь чтобы добавить его в rc.d, выполняем команду:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">chkconfig <span style="color: #660033;">--add</span> openerp-web</pre></div></div>

<p>Если у вас не установлен chkconfig, то установите. На Debian/Ubuntu это делается так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> update <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> chkconfig</pre></div></div>

<p>Далее нужно скопировать конфигурационный файл openerp-web.cfg в /etc/openerp-web.cfg<br />
openerp. У вас может быть другой путь, если другая версия OpenEPR, например.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>python2.6<span style="color: #000000; font-weight: bold;">/</span>dist-packages<span style="color: #000000; font-weight: bold;">/</span>openerp_web-6.0.3-py2.6.egg<span style="color: #000000; font-weight: bold;">/</span>doc<span style="color: #000000; font-weight: bold;">/</span>openerp-web.cfg <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>После чего можно пробовать запускать сервис:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">service openerp-web start</pre></div></div>

<p>или (если у вас нет команды service) так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>openerp-web start</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2011/08/zapuskaem-openerp-web-kak-servis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как установить пакет из unstable (sid) на Debian testing (wheezy)</title>
		<link>http://dskarataev.ru/2011/07/kak-ustanovit-paket-iz-unstable-sid-na-debian-testing-wheezy/</link>
		<comments>http://dskarataev.ru/2011/07/kak-ustanovit-paket-iz-unstable-sid-na-debian-testing-wheezy/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 12:00:35 +0000</pubDate>
		<dc:creator>Денис Каратаев</dc:creator>
				<category><![CDATA[Записи]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[решение проблем]]></category>

		<guid isPermaLink="false">http://dskarataev.ru/?p=155</guid>
		<description><![CDATA[Бывает нужным установка пакета с unstable, когда у тебя testing. Например, такое недавно случилось с пакетом nvidia-glx после очередного обновления. nvidia-glx в testing оказался устаревшим. Нет ничего проще, нужно сделать всего-то ничего: 1)добавить в /etc/apt/sources.list ветку unstable: deb http://ftp.de.debian.org/debian testing main contrib non-free deb http://ftp.de.debian.org/debian unstable main contrib non-free 2)чтобы не потянуть из unstable еще [...]]]></description>
			<content:encoded><![CDATA[<p>Бывает нужным установка пакета с unstable, когда у тебя testing. Например, такое недавно случилось с пакетом nvidia-glx после очередного обновления. nvidia-glx в testing оказался устаревшим.<br />
<br />
Нет ничего проще, нужно сделать всего-то ничего:<br />
<br />
1)добавить в /etc/apt/sources.list ветку unstable:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">deb http:<span style="color: #000000; font-weight: bold;">//</span>ftp.de.debian.org<span style="color: #000000; font-weight: bold;">/</span>debian testing main contrib non-free
deb http:<span style="color: #000000; font-weight: bold;">//</span>ftp.de.debian.org<span style="color: #000000; font-weight: bold;">/</span>debian unstable main contrib non-free</pre></div></div>

<p>
2)чтобы не потянуть из unstable еще кучу зависимостей, прописать основной веткой testing в /etc/apt/apt.conf (скорее всего вам потребуется создать этот файл):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">APT::Default-Release <span style="color: #ff0000;">&quot;testing&quot;</span>;</pre></div></div>

<p>3)теперь все почти как обычно. Обновляем список пакетов, и ставим нужный пакет из нужной ветки:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> update
<span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #660033;">-t</span> unstable <span style="color: #c20cb9; font-weight: bold;">install</span> nvidia-glx</pre></div></div>

<p>если не указывать другим пакетам вручную ветку, из которой следует их поставить, то они будут устанавливаться из той ветки, которая прописана как Default-Release. Вот и всё.</p>
]]></content:encoded>
			<wfw:commentRss>http://dskarataev.ru/2011/07/kak-ustanovit-paket-iz-unstable-sid-na-debian-testing-wheezy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

