<?xml version="1.0" encoding="windows-1251"?>
<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>Dogma blog</title>
	<atom:link href="http://herli.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://herli.ru</link>
	<description>вид на море  =)</description>
	<lastBuildDate>Fri, 27 Aug 2010 14:16:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Настройка VNC на свежеустановленный CentOS</title>
		<link>http://herli.ru/2010/08/27/nastroyka-vnc-na-svezheustanovlennyiy-centos/</link>
		<comments>http://herli.ru/2010/08/27/nastroyka-vnc-na-svezheustanovlennyiy-centos/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 14:14:46 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[vnc]]></category>
		<category><![CDATA[ultravnc]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=523</guid>
		<description><![CDATA[Если я захотел управлять удаленным сервером через графический интерфейс &#8211; сделаю как хочу) и поможет мне в этом чудо vnc кстати, настоящего одмина можно напугать етим страшным словом из трёх букв Для того, что бы всё хорошо работатло, нам нужно поправить файл   /etc/sysconfig/vncservers раскомментировав строки: VNCSERVERS=&#8221;2:root&#8221; VNCSERVERARGS[2]=&#8221;-geometry 1024&#215;768&#8243; задаём для пользователя root, пароль на [...]]]></description>
			<content:encoded><![CDATA[<sape_index><p><a href="http://herli.ru/wp-content/uploads/2010/08/ot-080923-opp-marijuana.jpg"><img class="aligncenter size-medium wp-image-524" title="ot-080923-opp-marijuana" src="http://herli.ru/wp-content/uploads/2010/08/ot-080923-opp-marijuana-300x179.jpg" alt="" width="300" height="179" /></a></p>
<p>Если я захотел управлять удаленным сервером через графический интерфейс &#8211; сделаю как хочу) и поможет мне в этом чудо <strong>vnc</strong></p>
<p>кстати, настоящего одмина можно напугать етим страшным словом из трёх букв<span id="more-523"></span></p>
<p>Для того, что бы всё хорошо работатло, нам нужно поправить файл   /etc/sysconfig/vncservers раскомментировав строки:</p>
<div>
<blockquote>
<div style="padding-left: 30px;">VNCSERVERS=&#8221;2:root&#8221;<br />
VNCSERVERARGS[2]=&#8221;-geometry 1024&#215;768&#8243;</div>
</blockquote>
</div>
<p>задаём для пользователя root, пароль на подключение к vnc:</p>
<div>
<blockquote>
<div style="padding-left: 30px;">[root@dev ~]# su root<br />
[root@dev root]$ vncpasswd<br />
Password: ваш_пароль<br />
Verify: ваш_пароль</div>
</blockquote>
</div>
<p>теперь запускаем vncserver и добавляем в автозагрузку:</p>
<div>
<blockquote>
<div style="padding-left: 30px;">[root@dev ~]# /etc/init.d/vncserver start<br />
Запускается сервер VNC: 2:admin<br />
New &#8216;dev:2 (admin)&#8217; desktop is dev:2</p>
<p>Starting applications specified in /home/admin/.vnc/xstartup<br />
Log file is /home/admin/.vnc/dev:2.log<br />
[  OK  ]<br />
[root@dev ~]# chkconfig vncserver on</p>
</div>
</blockquote>
</div>
<p>При такой настройке будут запускаться иксы, если нужно чтобы  запускался оконный менеджер (kde, gnome), то в конфиге  /home/admin/.vnc/xstartup нужно раскомментировать строки:</p>
<div>
<blockquote>
<div style="padding-left: 30px;">unset SESSION_MANAGER<br />
exec /etc/X11/xinit/xinitrc</div>
</blockquote>
</div>
<p>обязательно после  перезапустить vncserver.</p>
<p>в качестве vnc клиента под windows я использую бесплатный <a title="скачать" href="http://0xz.ru/g9tyk5" target="_blank">Ultr@VNC</a>.</p>
<p>подключение к вашему vnc серверу будет следующим -</p>
<blockquote>
<p style="padding-left: 30px;">ваш.ip:2</p>
</blockquote>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/08/27/nastroyka-vnc-na-svezheustanovlennyiy-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как оживить сервер (восстановление файловой системы centos в жару)</title>
		<link>http://herli.ru/2010/08/02/kak-ozhivit-server-vosstanovlenie-faylovoy-sistemyi-centos-v-zharu/</link>
		<comments>http://herli.ru/2010/08/02/kak-ozhivit-server-vosstanovlenie-faylovoy-sistemyi-centos-v-zharu/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 11:16:34 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[umount]]></category>
		<category><![CDATA[ошибка]]></category>
		<category><![CDATA[файловая система]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=517</guid>
		<description><![CDATA[всё, писдец.. в мск под плюс сорок, сервер умер в пять утра. похоже умер на бекапе, похоже на винчестере бедблок.. аларм и ахтунг ахтунг ахтунг так как я только учусь и мне не стыдно заглянуть в гугл по этому поводу, нашёл инструкцию, путь бу тут sudo shutdown now — переходим в однопользовательский режим (мне не [...]]]></description>
			<content:encoded><![CDATA[<sape_index><p><img class="aligncenter size-medium wp-image-518" title="Как оживить сервер в жару" src="http://herli.ru/wp-content/uploads/2010/08/Mac-G3-Beer-Server-300x281.jpg" alt="" width="300" height="281" /></p>
<p>всё, писдец.. в мск под плюс сорок, сервер умер в пять утра.<br />
похоже умер на бекапе, похоже на винчестере бедблок.. аларм и ахтунг</p>
<p><span id="more-517"></span></p>
<p>ахтунг ахтунг</p>
<p>так как я только учусь и мне не стыдно заглянуть в гугл по этому поводу, нашёл инструкцию, путь бу тут</p>
<p><strong>sudo shutdown now</strong> — переходим в однопользовательский режим (мне не нужно было, хз времени нет разбираться).</p>
<p><strong>umount /</strong> — эта команда отмонтирует файловую систему, операцию будем делать под наркозом, поэтому нужно отмонтировать</p>
<p><strong>fsck -y -f -c /dev/sda1</strong> — проводим проверку файловой системы. (<strong>dev/sda1 &#8211; это где что &#8211; у меня сработало просто со слешем / )<br />
</strong></p>
<p>Ключи и параметры fsck:</p>
<ul>
<li><strong>y</strong> — отвечать yes на все вопросы (альтернатива: ключ p — запускает проверку в полностью автоматическом режиме);</li>
<li><strong>f</strong> — принудительная проверка (проводится даже если файловая система помечена как работоспособная);</li>
<li><strong>c</strong> — искать битые блоки (bad blocks) и помечать их соответствующим образом;</li>
<li><strong>/dev/sda1</strong> — устройство и раздел, которые следует проверять (в данном случае, указан первый раздел первого диска).</li>
</ul>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/08/02/kak-ozhivit-server-vosstanovlenie-faylovoy-sistemyi-centos-v-zharu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Работа с модулями в движке</title>
		<link>http://herli.ru/2010/07/21/rabota-s-modulyami-v-dvizhke/</link>
		<comments>http://herli.ru/2010/07/21/rabota-s-modulyami-v-dvizhke/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:42:34 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[CooperCMS]]></category>
		<category><![CDATA[параметр]]></category>
		<category><![CDATA[переменная]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=514</guid>
		<description><![CDATA[Как передать значение в модуль через переменную? {include file=&#8221;engine/modules/module.php?show=value&#38;show2=value2&#8243;} это всё прекрасно, но как ловить переменные в модуле? все значения передаются через $_GET, но ловятся не гетом и реквестом, а самим движком, поймать значения можно конструкцией if ( $show ) $showid = intval( $show ); if ( $show2 ) $showid = intval( $show2 );]]></description>
			<content:encoded><![CDATA[<sape_index><p>Как передать значение в модуль через переменную? <span id="more-514"></span></p>
<blockquote><p>{include file=&#8221;engine/modules/module.php?show=value&amp;show2=value2&#8243;}</p></blockquote>
<p>это всё прекрасно, но как ловить переменные в модуле? все значения передаются через $_GET, но ловятся не гетом и реквестом, а самим движком, поймать значения можно конструкцией</p>
<blockquote><p>if ( $show ) $showid = intval( $show );<br />
if ( $show2 ) $showid = intval( $show2 );</p></blockquote>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/07/21/rabota-s-modulyami-v-dvizhke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS и второй ip адрес &#8211; как прикрутить и чтоб не отвалилось</title>
		<link>http://herli.ru/2010/07/20/centos-i-vtoroy-ip-adres-kak-prikrutit-i-chtob-ne-otvalilos/</link>
		<comments>http://herli.ru/2010/07/20/centos-i-vtoroy-ip-adres-kak-prikrutit-i-chtob-ne-otvalilos/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 05:44:35 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[дополнительный ip]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=507</guid>
		<description><![CDATA[Как добавить второй ip na один сетевой интерфейс? как как, сядь да &#8230; Начинается с команды ifconfig &#8211; смотрим в экран и втыкаем: eth0 Link encap:Ethernet HWaddr 00:26:B9:2A:B9:13 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 Потребовалось навесить второй ip на сервер, делается командой nano /etc/sysconfig/network-scripts/ifcfg-eth0:0 с содержанием DEVICE=eth0:0 ONBOOT=yes BOOTPROTO=static IPADDR=нужный ip NETMASK=255.255.255.255 После этого нужно перезапустить сетевые [...]]]></description>
			<content:encoded><![CDATA[<sape_index><p><a href="http://herli.ru/wp-content/uploads/2010/07/Music_Crazy_Frog_004021_.jpg"><img class="aligncenter size-medium wp-image-510" title="centos и 2 ip" src="http://herli.ru/wp-content/uploads/2010/07/Music_Crazy_Frog_004021_-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p>Как добавить второй ip na один сетевой интерфейс? как как, сядь да &#8230;</p>
<p>Начинается с команды ifconfig &#8211; смотрим в экран и втыкаем:</p>
<p style="padding-left: 30px;">eth0 Link encap:Ethernet HWaddr 00:26:B9:2A:B9:13<br />
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0</p>
<p><span id="more-507"></span></p>
<p>Потребовалось навесить второй ip на сервер, делается командой</p>
<p style="padding-left: 30px;">nano /etc/sysconfig/network-scripts/ifcfg-eth0:0</p>
<p style="padding-left: 30px;">с содержанием</p>
<p style="padding-left: 30px;">DEVICE=eth0:0<br />
ONBOOT=yes<br />
BOOTPROTO=static<br />
IPADDR=нужный ip<br />
NETMASK=255.255.255.255</p>
<p>После этого нужно перезапустить сетевые службы:</p>
<p style="padding-left: 30px;">service network restart</p>
<p>Выполняем ifconfig и видим, что появился “алиас” eth0:0</p>
<p style="padding-left: 30px;">eth0:0 Link encap:Ethernet HWaddr 00:26:B9:2A:B9:13<br />
inet addr:192.168.0.200 Bcast:192.168.0.11 Mask:255.255.255.255<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
Interrupt:185 Base address:0xa000</p>
<p>для добавления сразу 30 ip, выполняем</p>
<p style="padding-left: 30px;">nano /etc/sysconfig/network-scripts/ifcfg-eth0-range0:</p>
<p style="padding-left: 30px;">IPADDR_START=192.168.1.100<br />
IPADDR_END=192.168.1.130<br />
NETMASK=255.255.255.255<br />
CLONENUM_START=1<br />
NO_ALIASROUTING=yes</p>
<p>потом</p>
<p style="padding-left: 30px;">service network restart</p>
<p>В результате появятся 30 алиасов eth0:1 – eth0:20, c нужными адресами.</p>
<p>Ещё можно добавлять, изменять и удалять ip-адреса можно с помощью команд ip и ifconfig, например если нужно временно поднять дополнительный адрес:</p>
<p style="padding-left: 30px;">ifconfig eth0:0 inet 192.168.1.100/32</p>
<p>Естественно, после перезагрузки адрес пропадет. Чтобы убрать временный адрес:</p>
<p style="padding-left: 30px;">ifconfig eth0:0 down</p>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/07/20/centos-i-vtoroy-ip-adres-kak-prikrutit-i-chtob-ne-otvalilos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Huawei e1550 &#8211; разлочили, разблокировали, настроили.. что дальше?</title>
		<link>http://herli.ru/2010/07/14/huawei-e1550-razlochili-razblokirovali-nastroili-chto-dalshe/</link>
		<comments>http://herli.ru/2010/07/14/huawei-e1550-razlochili-razblokirovali-nastroili-chto-dalshe/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 17:11:34 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[Веб]]></category>
		<category><![CDATA[Программы]]></category>
		<category><![CDATA[e1550]]></category>
		<category><![CDATA[huawei]]></category>
		<category><![CDATA[modem]]></category>
		<category><![CDATA[unlock]]></category>
		<category><![CDATA[разблокировка]]></category>
		<category><![CDATA[разлочка]]></category>
		<category><![CDATA[хуавей]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=500</guid>
		<description><![CDATA[Чем и как разлочить модем 3G Huawei ( в моём случае e1550 )? &#8211; двумя бесплатными программами, а не платя &#8220;спецам&#8221; за разблокирование. что нам нужно? это IMEI модема который мы скормим одной проге, на выходе получив Unlock modem code &#8211; который внедрим в наш модем второй программой. Помыкавшись по форумам, увидел печальную картину &#8211; [...]]]></description>
			<content:encoded><![CDATA[<sape_index><p><a rel="attachment wp-att-501" href="http://herli.ru/2010/07/14/huawei-e1550-razlochili-razblokirovali-nastroili-chto-dalshe/l3-4-key-unlock/"><img class="aligncenter size-medium wp-image-501" title="huawei unlock" src="http://herli.ru/wp-content/uploads/2010/07/L3-4-Key-Unlock-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Чем и как разлочить модем 3G Huawei ( в моём случае e1550 )? &#8211; двумя бесплатными программами, а не платя &#8220;спецам&#8221; за разблокирование.</p>
<p><span id="more-500"></span></p>
<p>что нам нужно? это IMEI модема который мы скормим одной проге, на выходе  получив Unlock modem code &#8211; который внедрим в наш модем второй  программой.</p>
<p>Помыкавшись по форумам, увидел печальную картину &#8211; &#8220;специалисты&#8221; по разлочке модемов  берут за разблокирование около 5 евро &#8211; ето не большие, но всё же деньги. Есть такие, кто разблокирует ваш Хуавей за бесплатно, но ты должен об этом попросить и ждать не определённое количество времени. Печально то, что почти все эти специалисты пользуются специальными бесплатными программами, сделанными для разлочки модемов.</p>
<p>это маленький шажок в сторону хорошей <a href="http://sipli.ru">SIP телефонии</a> на базе Huawei e1550 и <a href="http://herli.ru/category/asterisk/"><strong>Asterisk</strong></a> с подключенным оператором sipnet</p>
<p>хочешь разлочить &#8211; спроси меня как  в комментах ниже</p>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/07/14/huawei-e1550-razlochili-razblokirovali-nastroili-chto-dalshe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Правила обработки соединений, или диалпланы в Astreisk *</title>
		<link>http://herli.ru/2010/07/12/pravila-obrabotki-soedineniy-ili-dialplanyi-v-astreisk/</link>
		<comments>http://herli.ru/2010/07/12/pravila-obrabotki-soedineniy-ili-dialplanyi-v-astreisk/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 15:13:56 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[asterisk]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=495</guid>
		<description><![CDATA[Статья перепечатана со всем опечатками  и покладена на &#8220;операционный стол&#8221;, тоесть  будет подвергнута изучению в ближайшее время. я надеюсь эта информация поможет мне соединить Астериск  и хуавей с внешним миром =) Сегодня поговорим о структуре &#8220;сердца&#8221; Asterisk &#8211; файла диалпланов extensions.conf. Именно в этом файле мы определяем, как будет вести себя asterisk при входящих и [...]]]></description>
			<content:encoded><![CDATA[<sape_index><p><img class="aligncenter size-medium wp-image-498" title="asterisk - пациент ждёт" src="http://herli.ru/wp-content/uploads/2010/07/Untitled-1-300x196.jpg" alt="" width="300" height="196" />Статья перепечатана со всем опечатками  и покладена на &#8220;операционный стол&#8221;, тоесть  будет подвергнута изучению в ближайшее время.</p>
<p>я надеюсь эта информация поможет мне соединить Астериск  и хуавей с внешним миром =)</p>
<p><span id="more-495"></span></p>
<p>Сегодня поговорим о  структуре &#8220;сердца&#8221; Asterisk &#8211; файла диалпланов extensions.conf. Именно в  этом файле мы определяем, как будет вести себя asterisk при входящих и  исходящих вызовах. По сути, он состоит из списка инструкций или шагов,  которым будет следовать Asterisk. В отличие от традиционных систем телефонной связи, диалплан Asterisk является полностью настраиваемым. Чтобы добиться успеха в построении собственной системы Asterisk, необходимо понять концепцию диалплана. Если вы пытались прочитать некоторые примеры  диалпланов и сочли их невыполнимыми или пробовали написать диалплан Asterisk и не достигли успеха, не отчаивайтесь, сейчас мы все попробуем разобрать.</p>
<p>Диалплан состоит из четырех основных элементов: контекстов, добавочных номеров, приоритетов и приложений. Мы рассмотрим все эти части и то, как они работают<br />
вместе. После объяснения роли каждого из этих элементов в диалплане перейдем к процессу поэтапного создания базового функционального диалплана.</p>
<p><strong>Контексты</strong></p>
<p>Диалпланы разбиты на разделы, называемые контекстами. Контексты – это именованные группы добавочных номеров, которые выполняют несколько функций.<br />
Контексты изолируют разные части диалплана, предотвращая возможность их взаимодействия. Добавочный номер, определенный в одном контексте, полностью изолирован от добавочных номеров другого контекста, если только взаимодействие не разрешено специально.</p>
<p>Контексты различаются по именам. Имена контекстов заключаются в квадратные скобки ([ ]). Допустимыми символами для образования имени являются буквы от A до Z (верхнего и нижнего регистра), цифры от 0 до 9, дефис и символ подчеркивания. Например, контекст для входящих вызовов может выглядеть так:</p>
<p><em>[incoming]</em></p>
<p>Все инструкции, размещаемые после описания контекста и до описания следующего контекста, являются частью данного контекста. В начале диалплана находятся два специальных контекста, [general] и [globals].<br />
Раздел [general] содержит список общих настроек диалплана (о которых, вероятно, вам никогда не придется беспокоиться), а о контексте [globals] мы поговорим в другой статье, когда речь пойдет о «Глобальных переменных». Пока что достаточно знать, что эти два контекста являются специальными. Созданные вами контексты можно называть как угодно, только не используйте имена [general] и [globals]!</p>
<p>При описании канала (а именно так выполняется подключение элементов к системе) одним из параметров этого описания является контекст. Иначе говоря, контекст – это точка диалплана, с которой будет начинаться обработка соединений, выполняемых через этот канал.<br />
Другое важное применение контекстов (возможно, самое важное) – обеспечение безопасности. Правильно применяя контексты, определенным абонентам можно предоставить доступ к функциям (таким, как междугородная связь), которые недоступны для других. Если диалплан разработан неаккуратно, пользователи из-за ваших же косяков могут получить возможность мошенничать в вашей системе.</p>
<p><strong>Добавочные номера</strong></p>
<p>В мире телекоммуникаций термин «добавочный номер» (extension) обычно обозначает числовой идентификатор, который присвоен линии, идущей к конкретному телефону. Однако в Asterisk это намного более широкое понятие, поскольку оно определяет уникальные последовательности шагов (каждый шаг включает приложение), которые<br />
Asterisk будет применять к вызову по этой линии. В каждом контексте может быть задано столько добавочных номеров, сколько требуется.<br />
При вызове конкретного добавочного номера (входящим или внутренним звонком) Asterisk будет выполнять шаги, определенные для этого добавочного номера. Поэтому именно добавочные номера определяют, что происходит со звонками при их обработке соответственно диалплану.</p>
<p>Синтаксис добавочного номера – это слово exten, за которым следует  стрелка, образованная знаками равенства и «больше чем»:</p>
<p><em>exten =&gt;</em></p>
<p>Далее указывается имя (или номер). В традиционных системах телефонной связи под добавочными номерами мы понимаем цифры, которые надо набрать, чтобы другой телефон зазвонил.</p>
<p>Полный добавочный номер состоит из трех компонентов:</p>
<ul>
<li>Имени (или номера).</li>
<li>Приоритета (каждый добавочный номер  может включать множество шагов; порядковый номер шага называется его  приоритетом).</li>
<li>Приложения (или команды), которое выполняет  некоторое действие над вызовом.</li>
</ul>
<p>Эти три компонента разделяются запятыми:</p>
<p><em>exten =&gt; имя,приоритет,приложение()</em></p>
<p>Вот пример того, как может выглядеть настоящий добавочный номер:</p>
<p><em>exten =&gt; 123,1,Answer()</em></p>
<p>В этом примере имя добавочного номера – 123, приоритет – 1, а приложение – Answer(). Теперь пойдем дальше и рассмотрим, что такое приоритеты и приложения.</p>
<p><strong>Приоритеты</strong></p>
<p>Каждый добавочный номер может включать множество шагов, называемых приоритетами. Каждый приоритет пронумерован последовательно, начиная с 1, и выполняет одно определенное приложение. Например, следующий добавочный номер отвечает на звонок (в приоритете под номером 1) и затем выполняет разъединение (в приоритете под<br />
номером 2):</p>
<p><em>exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,2,Hangup()</em></p>
<p>Не переживайте, если вы не понимаете, что такое Answer() и Hangup(), мы очень скоро их рассмотрим. Здесь главное – запомнить, что для отдельного добавочного номера Asterisk выполняет приоритеты по порядку.</p>
<p><strong>Ненумерованные приоритеты</strong></p>
<p>Начиная с версии 1.2 Asterisk был введен приоритет n, что означает «следующий». Каждый раз, когда Asterisk встречает приоритет n, она берет номер предыдущего приоритета и добавляет 1. Это упрощает внесение изменений в диалплан, поскольку<br />
теперь не надо изменять номера всех шагов. Например, диалплан может быть  таким:</p>
<p><em>exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,выполнить что-то<br />
exten =&gt; 123,n,выполнить что-то еще<br />
exten =&gt; 123,n,выполнить последнее<br />
exten =&gt; 123,n,Hangup()</em></p>
<p>Asterisk будет самостоятельно вычислять номер следующего приоритета при каждой встрече с приоритетом n. Однако следует отметить, что приоритет под номером 1 должен быть задан <strong><em>обязательно</em></strong>.  Если случайно для идущего первым приоритета задать n вместо 1,  добавочный номер будет недоступен.</p>
<p><strong>Приложения</strong></p>
<p>Приложения – это рабочие лошадки диалплана. Каждое приложение выполняет определенное действие над данным каналом, например воспроизведение звука, прием тонального ввода, вызов канала, разрыв соединения и т. д. В предыдущем примере было представлено два простых приложения: Answer() и Hangup(). Сейчас мы подробнее рассмотрим, как они работают.</p>
<p>Для выполнения некоторых приложений, таких как Answer() и Hangup(), не требуется никаких дополнительных инструкций. Некоторым приложениям необходима дополнительная информация. Эти данные, называемые аргументами, могут передаваться в приложения, чтобы оказывать влияние на то, как они выполняют свои действия. Чтобы передать аргументы в приложение, разместите их через запятую в круглых скобках, следующих за именем приложения.</p>
<p><strong>Простой диалплан</strong></p>
<p>Попроюуем создать простейший диалплан для одного номера. Asterisk будет брать трубку, проигрывать мелодию и разрывать соединение. Используем этот простой пример, чтобы обозначить наиболее важные концепции диалплана.</p>
<p><strong>Добавочный номер s</strong></p>
<p>Прежде чем приступить к настройке диалплана, придется остановиться еще на одном вопросе. Необходимо рассмотреть добавочный номер s. Когда в контекст поступают вызовы, для которых не указан конкретный добавочный номер, они передаются на добавочный номер s. (s – сокращение от start (начало), поскольку именно здесь начнется обработка вызова, если с ним не передана информация о добавочном номере.)</p>
<p>Поскольку это именно то, что требуется для нашего диалплана, перейдем к делу. Для каждого вызова будет выполняться три действия (ответ на него, воспроизведение звукового файла и разъединение), поэтому добавочному номеру s понадобится три приоритета. Поместим три приоритета в контекст [incoming], поскольку было принято реше-<br />
ние о том, что все входящие вызовы должны обрабатываться в этом  контексте.</p>
<p><em>[incoming]<br />
exten =&gt; s,1,приложение()<br />
exten =&gt; s,n,приложение()<br />
exten =&gt; s,n,приложение()</em></p>
<p>Теперь осталось только вставить приложения – и наш первый диалплан  готов.</p>
<p><strong>Приложения Answer(), Playback() и Hangup()</strong></p>
<p>Прежде чем мы будем отвечать на звонок, воспроизводить звуковой файл и затем выполнять разъединение вызова, нам нужно научиться это делать. Приложение Answer() (Ответ) используется для ответа каналу, по которому выполняется звонок. Оно выполняет исходную настройку для канала, получающего входящий вызов. (Некоторые приложения не требуют обязательного ответа каналу, но соответствующий ответ на звонок перед тем, как выполнять какие-либо действия над каналом, является очень хорошей практикой.)<br />
Как упоминалось ранее, Answer() не принимает аргументов. Приложение Playback() (Воспроизведение) воспроизводит в канале предварительно записанный звуковой файл. При использовании приложения Playback() ввод, поступающий от пользователя, просто игнорируется.</p>
<p>Чтобы использовать Playback(), задайте в качестве аргумента имя файла (без расширения). Например, Playback(filename) обеспечит воспроизведение звукового файла filename.gsm (о форматах и кодеках разговор будет в другой статье), предполагая, что он размещен в стандартной папке для звуковых файлов. Обратите внимание, что по желанию можно указать и полный путь к файлу.<br />
Приложение Hangup() (Разъединить) выполняет именно то, что подразумевается под его именем: оно разъединяет активный канал. Это приложение должно применяться в конце контекста для завершения текущего вызова, что защитит от несанкционированного использования диалплана абонентами. Приложение Hangup() не принимает аргументов.</p>
<p><strong>Наш первый диалплан</strong></p>
<p>Теперь, когда добавочный номер готов, сведем все вместе и создадим  наш первый диалплан.<br />
В первом приоритете нашего добавочного номера мы будем отвечать на звонок, во втором – воспроизводить звуковой файл hello-world.gsm, а в третьем будет выполнен разрыв соединения. Вот как выглядит диалплан:</p>
<p><em>[incoming]<br />
exten =&gt; s,1,Answer()<br />
exten =&gt; s,n,Playback(hello-world)<br />
exten =&gt; s,n,Hangup()</em></p>
<p>Даже несмотря на то что этот пример очень мал и прост, он раскрывает основные принципы контекстов, добавочных номеров, приоритетов и приложений. Если все получилось и этот диалплан заработал, значит, вы разобрались с основами, на базе которых создаются все диалпланы.</p>
<p><strong>Создание  интерактивного диалплана</strong></p>
<p>Созданный в предыдущей части диалплан был статическим; он всегда выполняет одни и те же действия для всех вызовов. Теперь мы собираемся добавить некоторую логику в диалплан, чтобы он осуществлял разные действия на основании ввода пользователя. Для этого необходимо рассмотреть еще некоторые приложения.</p>
<p><strong>Приложения Background(), WaitExten() и Goto()</strong></p>
<p>Один из самых важных ключей к построению интерактивных диалпланов Asterisk – приложение Background()(Фон). Как и Playback(), это приложение воспроизводит записанный звуковой файл. Однако, в отличие от Playback(), если пользователь нажимает кнопку (или последовательность кнопок) на клавиатуре телефона, оно прерывает воспроизведение и переходит к добавочному номеру соответственно нажатым цифрам. Например, если абонент нажмет кнопку 5, Asterisk прекратит воспроизводить звуковое сообщение и передаст управление вызовом первому приоритету добавочного номера 5.</p>
<p>Чаще всего приложение Background() используется для создания голосовых меню (которые часто называют автоответчиками или интерактивными секретарями). Многие компании используют голосовые меню для направления абонентов на соответствующий добавочный номер, таким образом освобождая своих секретарей от необходимости отвечать на все звонки.</p>
<p>Синтаксис Background() аналогичен синтаксису Playback():</p>
<p><em>exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,Background(main-menu)</em></p>
<p>В более ранних версиях Asterisk, если приложение Background() завершало воспроизведение звукового сообщения и в текущем добавочном номере больше не было приоритетов, Asterisk ничего не делала и ожидала ввода абонента. Такое поведение больше не является для Asterisk принятым по умолчанию. Если требуется, чтобы Asterisk ожидала ввода абонента после завершения воспроизведения звукового сообщения, можно вызвать приложение WaitExten() (Ожидание добавочного номера). Приложение WaitExten() ожидает от абонента набора телефонного номера и часто вызывается сразу после приложения Background(), как в данном фрагменте диалплана:</p>
<p><em>exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,Background(main-menu)<br />
exten =&gt; 123,n,WaitExten()</em></p>
<p>Если требуется, чтобы приложение WaitExten() ожидало ответа в течение определенного времени (вместо использования времени ожидания по умолчанию), просто укажите число, соответствующее необходимому количеству секунд, в качестве первого аргумента в WaitExten():</p>
<p><em>exten =&gt; 123,n,WaitExten(5)</em></p>
<p>И Background(), и WaitExten() позволяют абоненту производить набор номера. После этого Asterisk пытается найти в текущем контексте добавочный номер, соответствующий введенным абонентом цифрам. Если Asterisk находит однозначное соответствие, она направляет вызов на этот добавочный номер. Продемонстрируем это, добавив несколько строк в наш пример:</p>
<p><em>exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,Background(main-menu)<br />
exten =&gt; 123,n,WaitExten()<br />
exten =&gt; 2,1,Playback(digits/2)<br />
exten =&gt; 3,1,Playback(digits/3)<br />
exten =&gt; 4,1,Playback(digits/4)</em></p>
<p>Если вызвать добавочный номер 123 из примера выше, он воспроизведет звуковое сообщение с фразой «main menu» (главное меню) и после этого будет ожидать ввода цифр 2, 3 или 4. Если нажать одну из этих цифр, Asterisk воспроизведет ее для вас. Также вы обнаружите, что, если ввести другую цифру (например, 5), Asterisk не обеспечит ожида-<br />
емого результата.</p>
<p>Также возможна ситуация, когда Asterisk обнаружит неоднозначное соответствие. Это можно легко продемонстрировать, введя в предыдущий пример добавочный номер под именем 1:</p>
<p><em>exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,Background(main-menu)<br />
exten =&gt; 123,n,WaitExten()<br />
exten =&gt; 1,1,Playback(digits/1)<br />
exten =&gt; 2,1,Playback(digits/2)<br />
exten =&gt; 3,1,Playback(digits/3)<br />
exten =&gt; 4,1,Playback(digits/4)</em></p>
<p>Наберите добавочный номер 123 и затем по подсказке главного меню введите 1. Почему Asterisk сразу же не воспроизводит этот номер? Потому, что цифра 1 неоднозначна; Asterisk не понимает, какой добавочный номер вызывается, 1 или 123. Он ожидает несколько секунд ввода другой цифры (например, 2 для вызова добавочного номера 123). Если набора никаких других цифр не последовало, по завершении времени<br />
ожидания Asterisk направляет вызов на добавочный номер 1. (Задавать  собственные значения времени ожидания мы научимся посже)<br />
Прежде чем двигаться дальше, посмотрим, что было сделано на данный момент. Вызвав наш диалплан, абоненты услышат приветствие. Если они нажмут 1, то услышат номер 1, если 2 – то номер 2 и т. д. Для начала это неплохо, но давайте это все немного усовершенствуем. С помощью приложения Goto() (Перейти к) заставим диалплан повторять приветствие после воспроизведения номера.</p>
<p>Как следует из его имени, приложение Goto() используется для перенаправления вызова в другую часть диалплана. Синтаксис Goto() требует передачи в него в качестве аргументов целевого контекста, добавочного номера и приоритета:</p>
<p><em>exten =&gt; 123,n,Goto(контекст,добавочныйномер,приоритет)</em></p>
<p>Теперь давайте применим приложение Goto() в нашем диалплане:</p>
<p><em>[incoming]<br />
exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,Background(main-menu)<br />
exten =&gt; 1,1,Playback(digits/1)<br />
exten =&gt; 1,n,Goto(incoming,123,1)<br />
exten =&gt; 2,1,Playback(digits/2)<br />
exten =&gt; 2,n,Goto(incoming,123,1)</em></p>
<p>Две новые строки обеспечат возвращение управления над вызовом  добавочному номеру 123 после воспроизведения выбранного номера.</p>
<p><strong>Обработка ошибочных вводов и времени ожидания</strong></p>
<p>Теперь, когда создание нашего первого голосового меню уже близится к завершению, введем специальные добавочные номера. Во-первых, нам необходим добавочный номер для недействительных вводов; когда абонент нажимает не ту кнопку (например, 9 для предыдущего примера), вызов направляется на добавочный номер i. Во-вторых, необходим<br />
добавочный номер для обработки ситуаций, когда абонент не производит ввод вовремя (время ожидания по умолчанию – 10 с). Если абонент слишком долго не нажимает кнопку после запуска приложения WaitExten(), вызовы направляются на добавочный номер t. Вот как будет выглядеть диалплан после введения этих двух добавочных номеров:</p>
<p><em>[incoming]<br />
exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,Background(enter-ext-of-person)<br />
exten =&gt; 123,n,WaitExten()<br />
exten =&gt; 1,1,Playback(digits/1)<br />
exten =&gt; 1,n,Goto(incoming,123,1)<br />
exten =&gt; 2,1,Playback(digits/2)<br />
exten =&gt; 2,n,Goto(incoming,123,1)<br />
exten =&gt; 3,1,Playback(digits/3)<br />
exten =&gt; 3,n,Goto(incoming,123,1)<br />
exten =&gt; i,1,Playback(pbx-invalid)<br />
exten =&gt; i,n,Goto(incoming,123,1)<br />
exten =&gt; t,1,Playback(vm-goodbye)<br />
exten =&gt; t,n,Hangup()</em></p>
<p>Использование добавочных номеров i и t делает диалплан несколько более надежным и практичным. Но надо сказать, он по-прежнему довольно примитивен, потому что внешние абоненты не имеют возможности соединения с реальным живым человеком. Для этого нам придется ознакомиться с еще одним приложением – Dial() (Звонить).</p>
<p>Одно из самых ценных свойств  Asterisk – это возможность установления соединения между разными абонентами. Это особенно полезно, когда абоненты используют разные методы связи. Например, абонент А может звонить по традиционной аналоговой телефонной линии, тогда как пользователь В может сидеть в кафе в другой части света и говорить по IP-телефону. К счастью, большую часть тяжелой работы по установлению соединения и выполнению преобразований между разными сетями Asterisk берет на себя. От вас требуется лишь научиться использовать приложение Dial().</p>
<p>Синтаксис Dial() немного сложнее, чем синтаксис приложений, которые применялись до сих пор, но не пугайтесь. Dial() принимает четыре аргумента. Первый – получатель вызова. Он состоит (в самой простой форме) из названия технологии (или транспортного протокола), с помощью которой выполняется вызов, символа слэш и имени удаленной<br />
конечной точки или ресурса. Самыми широко используемыми типами технологий являются Zap (для аналоговых каналов и каналов T1/E1/J1), SIP и IAX2. Например, допустим, требуется вызвать конечную точку Zap, определенную как Zap/1, которая представляет собой FXS-канал с подключенным к нему аналоговым телефоном. Технология –<br />
Zap, ресурс – 1. Аналогично, для вызова устройства SIP получателем вызова может быть SIP/Jane, а для устройства IAX – IAX2/Fred. Если бы потребовалось, чтобы при вызове добавочного номера 123 диалплана Asterisk звонил по каналу Zap/1, мы бы ввели следующий добавочный номер:</p>
<p><em>exten =&gt; 123,1,Dial(Zap/1)</em></p>
<p>Также можно звонить по нескольким каналам одновременно, объединяя  получателей вызова с помощью символа амперсанда (&amp;):</p>
<p><em>exten =&gt; 123,1,Dial(Zap/1&amp;Zap/2&amp;SIP/Jane)</em></p>
<p>Приложение Dial() будет дозваниваться всем заданным получателям вызовов одновременно и установит связь с любым из заданных каналов, который ответит первым. Если приложение не может связаться ни с одним вызываемым абонентом, Asterisk задаст переменной DIALSTATUS (статус звонка) значение, соответствующее ситуации невозможности дозвониться на вызываемые номера, и продолжит выполнение следующего приоритета добавочного номера.</p>
<p>Приложение Dial() также позволяет устанавливать связь с удаленной конечной точкой VoIP, которая не была предварительно описана в конфигурационных файлах канала. Вот полный синтаксис такого типа соединения:</p>
<p><em>Dial(технология/пользователь[:пароль]@удаленный_хост[:порт][/удаленный_доба-<br />
вочный_номер])</em></p>
<p>В качестве примера можно позвонить на демонстрационный сервер Digium, который использует протокол IAX2, по следующему добавочному номеру:</p>
<p><em>exten =&gt; 500,1,Dial(IAX2/guest@misery.digium.com/s)</em></p>
<p>Полный синтаксис приложения Dial() для звоноков по каналам Zap  немного иной, как показано ниже:</p>
<p><em>Dial(Zap/[gGrR]канал_или_группа[/удаленный_добавочный_номер])</em></p>
<p>Например, вот как описывался бы вызов номера <img src="chrome://skype_ff_toolbar_win/content/cb_transparent_l.gif" alt="" height="11" /><img src="chrome://skype_ff_toolbar_win/content/famfamfam/us.gif" alt="" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/arrow.gif" alt="" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" /><img src="chrome://skype_ff_toolbar_win/content/space.gif" alt="" width="1" height="1" />1-800-555-1212<img src="chrome://skype_ff_toolbar_win/content/cb_transparent_r.gif" alt="" height="11" /> по Zap-каналу под номером 4.</p>
<p><em>exten =&gt; 501,1,Dial(Zap/4/18005551212)</em></p>
<p>Второй аргумент приложения Dial() – время ожидания, задаваемое в секундах. Если время ожидания задано, Dial() будет пытаться дозвониться по заданным номерам в течение этого количества секунд, а потом перейдет к следующему приоритету добавочного номера. Если время ожидания не задано, Dial() будет дозваниваться на вызываемые<br />
каналы до тех пор, пока кто-нибудь не ответит или пока вызывающий абонент не повесит трубку. Введем для нашего добавочного номера время ожидания 10 с:</p>
<p><em>exten =&gt; 123,1,Dial(Zap/1,10)</em></p>
<p>Если ответ на звонок получен до истечения времени ожидания, связь между каналами устанавливается и диалплан выполнен. Если вызываемый номер просто не отвечает, занят или недоступен по какой-то другой причине, Asterisk задаст переменную DIALSTATUS и перейдет к следующему приоритету добавочного номера.</p>
<p>Давайте применим то, что изучили на данный момент, в другом примере:</p>
<p><em>exten =&gt; 123,1,Dial(Zap/1,10)<br />
exten =&gt; 123,n,Playback(vm-nobodyavail)<br />
exten =&gt; 123,n,Hangup()</em></p>
<p>Как видите, этот пример будет воспроизводить звуковой файл  vm-nobodyavail.gsm в случае, если звонок остается без ответа.</p>
<p>Третий аргумент Dial() – строка опций. Она может содержать один или более символов, влияющих на поведение приложения Dial(). Список возможных опций слишком велик, чтобы приводить его здесь ( о нем мы поговорим позже); рассмотрим лишь самую популярную из них – опцию m. Если указать m в качестве третьего аргумента, вызывающая сторона, пока выполняется дозвон до вызываемого абонента, будет слышать во время ожидания вместо гудков музыку (конечно, если эта музыка сконфигурирована правильно). Чтобы добавить опцию m в наш последний пример, просто<br />
изменим первую строку:</p>
<p><em>exten =&gt; 123,1,Dial(Zap/1,10,m)<br />
exten =&gt; 123,n,Playback(vm-nobodyavail)<br />
exten =&gt; 123,n,Hangup()</em></p>
<p>Теперь, когда мы научились использовать приложение Dial(), добавочные номера 1 и 2 в диалплане стали бесполезными. Давайте заменим их новыми добавочными номерами, которые позволят внешним абонентам дозваниваться до Виталия (Vit) и Елены (Lena):</p>
<p><em>[incoming]<br />
exten =&gt; 123,1,Answer()<br />
exten =&gt; 123,n,Background(enter-ext-of-person)<br />
exten =&gt; 123,n,WaitExten()<br />
exten =&gt; 1,1,Dial(Zap/1,10)<br />
exten =&gt; 1,n,Playback(vm-nobodyavail)<br />
exten =&gt; 1,n,Hangup()<br />
exten =&gt; 2,1,Dial(SIP/Lena,10)<br />
exten =&gt; 2,n,Playback(vm-nobodyavail)<br />
exten =&gt; 2,n,Hangup()<br />
exten =&gt; i,1,Playback(pbx-invalid)<br />
exten =&gt; i,n,Goto(incoming,123,1)<br />
exten =&gt; t,1,Playback(vm-goodbye)<br />
exten =&gt; t,n,Hangup()</em></p>
<p>Четвертый и последний аргумент приложения Dial() – URL. Если вызываемый канал поддерживает прием URL в момент вызова, заданный URL будет передан (например, если используется IP-телефон, поддерживающий прием URL, этот URL появится на дисплее телефона; аналогично, если используется программный телефон, URL может<br />
быть выведен на экран монитора). Этот аргумент применяется очень редко.</p>
<p>Обратите внимание, что второй, третий и четвертый аргументы могут быть опущены. Например, если требуется определить опцию, но при этом вы не собираетесь задавать время ожидания, просто оставьте пропуск на месте аргумента времени ожидания, как в данном примере:</p>
<p><em>exten =&gt; 1,1,Dial(Zap/1,,m)</em></p>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/07/12/pravila-obrabotki-soedineniy-ili-dialplanyi-v-astreisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS и графические среды &#8211; Gnome, KDE</title>
		<link>http://herli.ru/2010/07/10/centos-i-graficheskie-sredyi-gnome-kde/</link>
		<comments>http://herli.ru/2010/07/10/centos-i-graficheskie-sredyi-gnome-kde/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 10:38:59 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[groupinstall]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[startx]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=488</guid>
		<description><![CDATA[Астериск установился (спасибо Андрею), chan_datacard собрался, теперь можно и окошки поставить 1. Установка KDE: # yum groupinstall &#8220;X Window System&#8221; &#8220;KDE (K Desktop Environment)&#8221; 2. Установка GNOME: (попадёте на трафик в полгига) # yum groupinstall &#8220;X Window System&#8221; &#8220;GNOME Desktop Environment&#8221; запускаем всё это дело так: # startx Для автоматической загрузки гуи при старте системы [...]]]></description>
			<content:encoded><![CDATA[<sape_index><p id="post-841"><a href="http://herli.ru/wp-content/uploads/2010/07/nude-in-window-2.jpg"><img class="aligncenter size-medium wp-image-489" title="ставим окошки на CentOS" src="http://herli.ru/wp-content/uploads/2010/07/nude-in-window-2-300x218.jpg" alt="" width="300" height="218" /></a></p>
<p>Астериск установился (спасибо Андрею), chan_datacard собрался, теперь можно и окошки поставить</p>
<p><span id="more-488"></span></p>
<div>
<p>1. Установка KDE:</p>
<p style="padding-left: 60px;"><span style="color: #ff6600;"><strong># yum groupinstall &#8220;X Window System&#8221; &#8220;KDE (K Desktop  Environment)&#8221;</strong></span></p>
<p>2. Установка GNOME:</p>
<blockquote><p>(попадёте на трафик в полгига)</p></blockquote>
<p style="padding-left: 60px;"><span style="color: #ff6600;"><strong># yum groupinstall &#8220;X Window System&#8221; &#8220;GNOME Desktop  Environment&#8221;</strong></span></p>
<p>запускаем всё это дело так:</p>
<p style="padding-left: 60px;"><span style="color: #ff6600;"><strong># startx</strong></span></p>
<p>Для автоматической загрузки гуи при старте системы редактируем файл <strong>inittab</strong>:</p>
<p style="padding-left: 60px;"><strong><span style="color: #ff6600;"># vi  /etc/inittab</span></strong></p>
<p>Ищем строчку:</p>
<p style="padding-left: 60px;"><em> <strong><span style="color: #ff6600;">id:3:initdefault: </span></strong></em></p>
<p>Меняем цифру<strong> 3</strong> на <strong>5</strong></p>
<p><em><strong>смотрю на окошки и радуюсь</strong></em><strong><br />
</strong></p>
</div>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/07/10/centos-i-graficheskie-sredyi-gnome-kde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Дополинительные репозитории для CentOS &#8211; больше не значит лучше</title>
		<link>http://herli.ru/2010/07/08/other-repositories-centos/</link>
		<comments>http://herli.ru/2010/07/08/other-repositories-centos/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 03:41:47 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[ос]]></category>
		<category><![CDATA[репозитории]]></category>
		<category><![CDATA[центос]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=480</guid>
		<description><![CDATA[хорошая заметка про дополнительные репозитории для Центоса.. лень запоминать всё это, путь будет тут. как резюме &#8211; нужно подключать только необходимые, всё подряд ставить не нужно (эпилог заметки раскрывает тему) Дополнительные репозитории. В базовых репозиториях не так то много пакетов. По этому существуют дополнительные репозитарии. Наиболее распостраненные и широкоиспользуемые дополнительные репозитории &#8211; EPEL (Extra Packages [...]]]></description>
			<content:encoded><![CDATA[<sape_index><p><a href="http://herli.ru/2010/07/08/other-repositories-centos/"><img class="aligncenter size-medium wp-image-481" title="Репозитории CentOS - больше пакетов, больше..." src="http://herli.ru/wp-content/uploads/2010/07/whywomencantfixcars-300x170.jpg" alt="" width="300" height="170" /></a><br />
хорошая заметка про дополнительные репозитории для Центоса.. лень запоминать всё это, путь будет тут.<br />
как резюме &#8211; нужно подключать только необходимые, всё подряд ставить не нужно (эпилог заметки раскрывает тему)<br />
<span id="more-480"></span></p>
<h2><strong>Дополнительные репозитории.</strong></h2>
<p>В базовых репозиториях не так то много пакетов. По этому существуют дополнительные репозитарии. Наиболее распостраненные и широкоиспользуемые дополнительные репозитории &#8211; EPEL (Extra Packages for Enterprise Linux) и RPMforge Кроме того в доп. репозитариях как правило более <a>новые пакеты</a>. Например, версии nginx обновляется регулярно. Для подключения репозиториев можно просто установить соотвествующий rpm.</p>
<pre style="padding-left: 30px;"><span style="color: #ff6600;"><strong>rpm -Uhv http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm</strong></span></pre>
<p>Или можно повозиться с пачкой репозиториев: Ставим пакеты:</p>
<p style="padding-left: 30px;"><span style="color: #ff6600;"><strong>yum install yum-priorities yum-fastestmirror</strong></span></p>
<p><em>yum-priorities &#8211; yum плагин, позволяющий назначить приоритеты для репозиториев от 1 до 99.</em></p>
<p><em>yum-fastestmirror &#8211; yum плагин, определяющих и использующий самые быстрые зеркала CentOS</em></p>
<p>Подключаем дополнительные репозитории для CentOS-5:</p>
<pre style="padding-left: 30px;"><span style="color: #ff6600;">rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
rpm -Uvh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm</span>
<span style="color: #ff6600;">rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/5/i386/rpmfusion-free-release-5-0.1.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/el/updates/testing/5/i386/rpmfusion-nonfree-release-5-0.1.noarch.rpm
rpm -Uvh http://repo.redhat-club.org/redhat/5/i386/redhatclub-repository-release-5-4.el5.rhc.noarch.rpm</span></pre>
<p>Выставляем приоритеты для каждого репозитория.</p>
<p>Смотрим список доступных пакетов:</p>
<p style="padding-left: 30px;"><strong>yum list available</strong></p>
<p style="padding-left: 30px;">
<p style="padding-left: 30px;"><strong><br />
</strong></p>
<h2>Совместимость репозиториев</h2>
<p>Полный набор пакетов CentOS содержит несколько тысяч пакетов, которые все совместимы между собой. Если пакет разрабатывается сторонним разработчиком, он тоже должен быть совместим со всеми пакетами официального дистрибутива. Но это условие трудно выполнить просто из-за большого объема проверок, которые для этого необходимо проделать. Конечно, создатели репозитория такую работу проводят, и все пакеты, включенные в отдельный репозиторий совместимы друг с другом. Но если мы подключаем несколько репозиториев, то гарантий, что все пакеты объединенной совокупности будут совместимы, уже никто не дает.</p>
<p style="text-align: right;"><em>Кроме того, сторонние производители ПО могут предлагать версии некоторых продуктов, которые отличаются от аналогичных продуктов, производимых сообществом , функционируют по-другому и так далее. Обычно информация о таких несовместимостях присутствует на сайте производителя продукта. Вы сами должны оценивать необходимость и целесообразность использования альтернативных версий ПО.</em></p>
<p>Еще один вариант возникновения несовместимости &#8211; смена версии самого дистрибутива. Пакеты, созданные для одной версии, могут оказаться несовместимы с пакетами, разработанными для другой версии (последующей). Создатели репозитория должны четко указывать (а вы &#8211; найти эту информацию перед использованием репозитория) на какую версию рассчитан данный репозиторий.</p>
<p><span style="color: #ff0000;">Примечания:</span></p>
<address style="padding-left: 30px;"><span style="color: #ff0000;"><em>* Всегда следует помнить, что если вы сконфигурируете yum на использование нескольких репозиториев, процедура обновления системы или какого-то отдельного приложения может завершиться неудачно.</em></span></address>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/07/08/other-repositories-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ягд-терьер и милиционер</title>
		<link>http://herli.ru/2010/06/24/yagd-terier-i-milicioner/</link>
		<comments>http://herli.ru/2010/06/24/yagd-terier-i-milicioner/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 12:35:19 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[хм]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=477</guid>
		<description><![CDATA[тётеньки в форме тоже умеют улыбаться при виде ягда =) оказывается у неё тоже был ягд, истерик и &#8220;качок-переросток&#8221;, но добрый сцуко)) вот ещё один стереотип разрушен и человек в форме может оказаться довольно милым =) но насторожила фраза, сказанная уверенным голосом &#8211; &#8220;ещё увидимся&#8221; &#8230; что бы ето значило О_о]]></description>
			<content:encoded><![CDATA[<sape_index><p><img src="http://herli.ru/wp-content/uploads/2010/06/police-woman-300x200.jpg" alt="" title="police woman" width="300" height="200" class="aligncenter size-medium wp-image-478" /><br />
тётеньки в форме тоже умеют улыбаться при виде ягда  =) оказывается у неё тоже был ягд, истерик и &#8220;качок-переросток&#8221;, но добрый сцуко))<br />
вот  ещё один стереотип разрушен и человек в форме может оказаться довольно милым =) но насторожила фраза, сказанная уверенным голосом &#8211; <span id="more-477"></span> &#8220;ещё увидимся&#8221; &#8230; что бы ето значило О_о</p>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/06/24/yagd-terier-i-milicioner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Все старые браузеры &#8211; огромный архив веб браузеров</title>
		<link>http://herli.ru/2010/04/22/vse-staryie-brauzeryi-ogromnyiy-arhiv-veb-brauzerov/</link>
		<comments>http://herli.ru/2010/04/22/vse-staryie-brauzeryi-ogromnyiy-arhiv-veb-brauzerov/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 08:17:26 +0000</pubDate>
		<dc:creator>Dogma</dc:creator>
				<category><![CDATA[хм]]></category>
		<category><![CDATA[архив]]></category>
		<category><![CDATA[браузеры]]></category>
		<category><![CDATA[веб]]></category>
		<category><![CDATA[старые браузеры]]></category>
		<category><![CDATA[старый]]></category>

		<guid isPermaLink="false">http://herli.ru/?p=470</guid>
		<description><![CDATA[Ну приспичило найти старые браузеры, нужно, понимаешь, для дела =) несколько лет назад натыкался на сайт-архив с браузерами, но потерял линк.. таки нашлось &#8211; там и старые быстрая opera (даже тех лет, когда она была платная и с рекламой), internet explorer древний и такой родной-глючный путь лежит тут &#8211; http://0xz.ru/5508aq &#8211; не потеряется))]]></description>
			<content:encoded><![CDATA[<sape_index><p><a href="http://herli.ru/wp-content/uploads/2010/04/old_computer.jpg"><img src="http://herli.ru/wp-content/uploads/2010/04/old_computer-300x194.jpg" alt="" title="old_computer" width="300" height="194" class="aligncenter size-medium wp-image-471" /></a><br />
Ну приспичило найти старые браузеры, нужно, понимаешь, для дела =)<br />
несколько лет назад натыкался на сайт-архив с браузерами, но потерял линк..<span id="more-470"></span><br />
таки нашлось &#8211; там и старые быстрая opera (даже тех лет, когда она была платная и с рекламой), internet explorer древний и такой родной-глючный<br />
путь лежит тут &#8211; http://0xz.ru/5508aq &#8211; не потеряется))</p>
</sape_index><!--c17637946500-->]]></content:encoded>
			<wfw:commentRss>http://herli.ru/2010/04/22/vse-staryie-brauzeryi-ogromnyiy-arhiv-veb-brauzerov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
