<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1640831195049620902</id><updated>2011-09-11T15:25:17.403+04:00</updated><category term='IP-TV'/><category term='J2ME'/><category term='Conky'/><category term='Nimbus'/><category term='Xorg'/><category term='RAID'/><category term='Fonts'/><category term='FreeBSD'/><category term='ports'/><category term='GNU'/><category term='NetBeans'/><category term='Java'/><category term='NVIDIA'/><category term='GNOME'/><category term='GPL'/><category term='Tomcat'/><category term='make'/><category term='Firefox'/><category term='CUPS'/><category term='автоматизация'/><category term='3D'/><category term='Linux'/><category term='Eclipse'/><category term='GPT'/><category term='ATI'/><category term='Музыка'/><category term='UnionFS'/><category term='JSF'/><category term='PPP'/><category term='PF'/><category term='USB-флэшка'/><category term='HPLIP'/><category term='BSDL'/><category term='update'/><category term='ZFS'/><category term='Xfce'/><title type='text'>Путь свободен!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-7333494234545467264</id><published>2011-09-11T06:15:00.003+04:00</published><updated>2011-09-11T15:25:22.497+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Xfce'/><title type='text'>Xfce 4.8.2: завершение работы и рестарт</title><content type='html'>Хм, продолжаем сношаться с чёткой системой костылей и подпорок, придуманной нашими пернатыми друзьями под чутким руководстом коммерческих компаний и FSF во главе с товарищем Штольманом.&lt;br /&gt;&lt;br /&gt;Чтобы иметь возможность перезагружать компьютер или завершать работу не из командной строки, а из самой среды Xfce 4.8.2, необходимо сделать доступными кнопки диалога "Выйти" — "Перезагрузить" и "Выключить", соответственно.&lt;br /&gt;&lt;br /&gt;Решение проблемы описано здесь: &lt;a href="http://forums.freebsd.org/showthread.php?t=21043&amp;page=3"&gt;перейти к обсуждению проблемы&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Создаём файл:&lt;/li&gt;&lt;code&gt;% touch /usr/local/etc/polkit-1/localauthority/50-local.d/org.freedesktop.consolekit.pkla&lt;/code&gt;&lt;li&gt;Смотрим сообщение из файла &lt;i&gt;/usr/ports/x11-wm/xfce4-session/pkg-message&lt;/i&gt; и редактируем созданный файл в соответствии пожеланиями линуксятников PUTTY-пользователям FreeBSD:&lt;/li&gt;&lt;pre&gt;[Restart]&lt;br /&gt;Identity=unix-group:operator&lt;br /&gt;Action=org.freedesktop.consolekit.system.restart&lt;br /&gt;ResultAny=yes&lt;br /&gt;ResultInactive=yes&lt;br /&gt;ResultActive=yes&lt;br /&gt;&lt;br /&gt;[Shutdown]&lt;br /&gt;Identity=unix-group:operator&lt;br /&gt;Action=org.freedesktop.consolekit.system.stop&lt;br /&gt;ResultAny=yes&lt;br /&gt;ResultInactive=yes&lt;br /&gt;ResultActive=yes&lt;/pre&gt;&lt;/ul&gt;(Пользователь, имеющий право перезагружать и выключать компьютер в Unix, как правило, входит в группу &lt;i&gt;operator&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;После этого диалог выхода Xfce приобретает законченный вид:&lt;br /&gt;&lt;a href="http://izen.dev.juga.ru/image/freebsd8.2-xfce4.8.2-exit.png"&gt;&lt;img src="http://izen.dev.juga.ru/image/freebsd8.2-xfce4.8.2-exit.png" width="50%" high="50%"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-7333494234545467264?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/7333494234545467264/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=7333494234545467264' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7333494234545467264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7333494234545467264'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2011/09/xfce-482.html' title='Xfce 4.8.2: завершение работы и рестарт'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-3715873033153385940</id><published>2011-07-19T03:01:00.000+04:00</published><updated>2011-07-19T03:01:37.192+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='make'/><title type='text'>FreeBSD: обновление системы из исходников</title><content type='html'>Пересборка системы FreeBSD из исходников состоит из следующих этапов:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;загрузка файлов с исходными кодами&lt;/li&gt;&lt;li&gt;редактирование конфигурационных файлов&lt;/li&gt;&lt;li&gt;непосредственная компиляция и сборка системы из исходников&lt;/li&gt;&lt;li&gt;инсталляция собранных ядра и системного окружения&lt;/li&gt;&lt;li&gt;слияние новых настроечных файлов системы с существующими&lt;/li&gt;&lt;li&gt;перезагрузка для вступления в силу всех изменений&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Рассмотрим эти этапы подробнее.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Конфигурационные файлы&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;В системе должны быть три файла, влияющие на этапы загрузки (обновления), компиляции и сборки системы. Это файлы: &lt;i&gt;/etc/make.conf&lt;/i&gt;, &lt;i&gt;/etc/src.conf&lt;/i&gt; и &lt;i&gt;/etc/sys-supfile&lt;/i&gt;. При этом файлы &lt;i&gt;src.conf&lt;/i&gt; и &lt;i&gt;sys-supfile&lt;/i&gt; необязательно присутствуют в системе, но их можно и нужно создать на основе примеров.&lt;br /&gt;&lt;br /&gt;Примерный файл &lt;i&gt;/etc/make.conf&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;#2011-06-23&lt;br /&gt;KERNCONF=SELENA&lt;br /&gt;#MAKEOBJDIRPREFIX=/usr/obj&lt;br /&gt;WRKDIRPREFIX=/usr/obj&lt;br /&gt;DISTDIR=/store/distfiles&lt;br /&gt;PACKAGES=/store/pckgs64 # ln -s /store/pckgs64 /usr/ports/packages&lt;br /&gt;# see /usr/share/examples/etc/make.conf&lt;br /&gt;#--MAKE_JOBS_NUMBER=7&lt;br /&gt;CFLAGS= -O -pipe&lt;br /&gt;LOADER_ZFS_SUPPORT=true&lt;br /&gt;LOCALIZED_LANG=ru&lt;br /&gt;WITH_LCD_FILTERING=true&lt;br /&gt;WITH_XFT=true&lt;br /&gt;WITHOUT_TTF_BYTECODE_ENABLED=false&lt;br /&gt;WITH_TTF_BYTECODE_ENABLED=true&lt;br /&gt;WITH_MSWINDOWS_LICENSE=true&lt;br /&gt;WITHOUT_NOUVEAU=true&lt;br /&gt;WITH_A4SIZE=true&lt;br /&gt;WITHOUT_GNUTLS=true&lt;br /&gt;WITHOUT_GSTREAMER=true&lt;br /&gt;WITHOUT_ALSA=true&lt;br /&gt;WITHOUT_MYSQL=true&lt;br /&gt;WITHOUT_NAUTILUS=true&lt;br /&gt;WITHOUT_GCONF=true&lt;br /&gt;#LICENSE_PERMS=true&lt;br /&gt;#-WITHOUT_IPV6=true&lt;br /&gt;#-DISABLE_VULNERABILITIES=true&lt;br /&gt;#-NOPORTDOCS=true #-xfce Terminal&lt;br /&gt;#OVERRIDE_LINUX_BASE_PORT=f10&lt;br /&gt;#OVERRIDE_LINUX_NONBASE_PORTS=f10&lt;br /&gt;&lt;br /&gt;# print/hplip without Qt GUI&lt;br /&gt;.if ${.CURDIR} == ${PORTSDIR}/print/hplip&lt;br /&gt;WITHOUT_GUI=true&lt;br /&gt;WITHOUT_DBUS=true&lt;br /&gt;WITHOUT_XSANE=true&lt;br /&gt;WITH_SNMP=true&lt;br /&gt;.endif&lt;br /&gt;&lt;br /&gt;.if ${.CURDIR} == ${PORTSDIR}/graphics/gimp&lt;br /&gt;WITHOUT_PYTHON=true&lt;br /&gt;WITH_HELP=true&lt;br /&gt;.endif&lt;br /&gt;&lt;br /&gt;# added by use.perl 2011-07-12 16:27:34&lt;br /&gt;PERL_VERSION=5.12.4&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Как не трудно заметить, опции файла &lt;i&gt;make.conf&lt;/i&gt; влияют на компиляцию не только операционной системы, но и прикладного программного обеспечения, устанавливаемого из &lt;i&gt;коллекции портов&lt;/i&gt;. Но вот опции компиляции ПО из коллекции портов не влияют на сборку системы.&lt;br /&gt;&lt;br /&gt;Примерный файл &lt;i&gt;/etc/src.conf&lt;/i&gt; (дополнительно см. &lt;i&gt;man src.conf&lt;/i&gt;):&lt;br /&gt;&lt;code&gt;#-WITHOUT_AMD=true&lt;br /&gt;WITHOUT_ASSERT_DEBUG=true&lt;br /&gt;WITHOUT_ATM=true&lt;br /&gt;#-WITHOUT_AUDIT=true&lt;br /&gt;WITHOUT_BIND_DNSSEC=true&lt;br /&gt;WITHOUT_BIND_ETC=true&lt;br /&gt;WITHOUT_BIND_LIBS_LWRES=true&lt;br /&gt;WITHOUT_BIND_MTREE=true&lt;br /&gt;WITHOUT_BIND_NAMED=true&lt;br /&gt;WITHOUT_EXAMPLES=true&lt;br /&gt;WITHOUT_FLOPPY=true&lt;br /&gt;WITHOUT_FREEBSD_UPDATE=true&lt;br /&gt;WITHOUT_GAMES=true&lt;br /&gt;WITHOUT_GDB=true&lt;br /&gt;#-WITHOUT_GNU_GREP=true&lt;br /&gt;WITHOUT_GPIB=true&lt;br /&gt;WITHOUT_HTML=true&lt;br /&gt;WITH_IDEA=true&lt;br /&gt;#-WITHOUT_INET6=true&lt;br /&gt;#-WITHOUT_INET6_SUPPORT=true&lt;br /&gt;#-WITHOUT_INFO=true&lt;br /&gt;WITHOUT_IPFILTER=true&lt;br /&gt;WITHOUT_IPFW=true&lt;br /&gt;WITHOUT_IPX=true&lt;br /&gt;WITHOUT_IPX_SUPPORT=true&lt;br /&gt;WITHOUT_LPR=true&lt;br /&gt;#-WITHOUT_MAIL=true&lt;br /&gt;#-WITHOUT_MAILWRAPPER=true&lt;br /&gt;WITHOUT_NCP=true&lt;br /&gt;WITHOUT_NDIS=true&lt;br /&gt;#-WITHOUT_NIS=true&lt;br /&gt;#-WITHOUT_NS_CACHING=true&lt;br /&gt;#-WITHOUT_OBJC=true&lt;br /&gt;WITHOUT_PROFILE=true&lt;br /&gt;WITHOUT_QUOTAS=true&lt;br /&gt;WITHOUT_RCS=true&lt;br /&gt;#-WITHOUT_RESCUE=true&lt;br /&gt;WITHOUT_SENDMAIL=true&lt;br /&gt;#-WITHOUT_SHAREDOCS=true&lt;br /&gt;WITHOUT_SYSINSTALL=true&lt;br /&gt;WITHOUT_TELNET=true&lt;/code&gt;&lt;br /&gt;Мне нужен не весь &lt;i&gt;BIND&lt;/i&gt;, а только некоторые утилиты из него. MTA &lt;i&gt;Sendmail&lt;/i&gt; и отладчик &lt;i&gt;GDB&lt;/i&gt; на обычной рабочей станции не нужны. Также ненужны устаревшие сетевые протоколы &lt;i&gt;ATM&lt;/i&gt; и &lt;i&gt;IPX&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Примерный файл &lt;i&gt;/etc/sys-supfile&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;*default host=cvsup10.FreeBSD.org&lt;br /&gt;*default base=/var/db&lt;br /&gt;*default prefix=/usr&lt;br /&gt;*default release=cvs&lt;br /&gt;*default tag=RELENG_8&lt;br /&gt;*default delete use-rel-suffix&lt;br /&gt;*default compress&lt;br /&gt;src-all&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;То есть при использовании этого файла будут загружены исходные коды FreeBSD 8-STABLE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Процесс обновления&lt;/b&gt;&lt;br /&gt;(непосредственно процесс обновления по шагам расписан позднее, здесь даются лишь базовые понятия)&lt;br /&gt;&lt;br /&gt;Обновление исходников системы производится системной утилитой &lt;i&gt;csup&lt;/i&gt; примерно так:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% csup /etc/sys-supfile&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Необходимое и достаточное условие: активное прямое Интернет-соединение!&lt;br /&gt;(здесь и далее символ "%" говорит о том, что используется командная оболочка &lt;i&gt;/bin/tcsh&lt;/i&gt; с правами рута; символ "&gt;" говорит о том, что используется командная оболочка &lt;i&gt;/bin/tcsh&lt;/i&gt; с правами пользователя.)&lt;br /&gt;&lt;br /&gt;Потом необходимо сделать копию файла настроек ядра &lt;i&gt;GENERIC&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% cd /sys/amd64/conf/ &amp;&amp; cp GENERIC SELENA&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;и отредактировать эту копию. Проследите, чтобы имя файла, в данном случае &lt;i&gt;/sys/amd64/conf/SELENA&lt;/i&gt;, совпало с именем ядра переменной &lt;i&gt;KERNCONF&lt;/i&gt; в файле &lt;i&gt;make.conf&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Файл &lt;i&gt;/sys/amd64/conf/SELENA&lt;/i&gt; здесь не весь(!!!), а лишь несколько строчек, в которых я что-то меняю:&lt;br /&gt;&lt;code&gt;# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.531.2.17 2011/04/09 12:04:35 bz Exp $&lt;br /&gt;&lt;br /&gt;cpu  HAMMER&lt;br /&gt;ident  SELENA&lt;br /&gt;&lt;br /&gt;# To statically compile in device wiring instead of /boot/device.hints&lt;br /&gt;#hints  "GENERIC.hints"  # Default places to look for devices.&lt;br /&gt;&lt;br /&gt;# Use the following to compile in values accessible to the kernel&lt;br /&gt;# through getenv() (or kenv(1) in userland). The format of the file&lt;br /&gt;# is 'variable=value', see kenv(1)&lt;br /&gt;#&lt;br /&gt;# env  "GENERIC.env"&lt;br /&gt;&lt;br /&gt;#-makeoptions DEBUG=-g  # Build kernel with gdb(1) debug symbols&lt;br /&gt;&lt;br /&gt;options  SCHED_ULE  # ULE scheduler&lt;br /&gt;options  PREEMPTION  # Enable kernel thread preemption&lt;br /&gt;options  INET   # InterNETworking&lt;br /&gt;options  INET6   # IPv6 communications protocols&lt;br /&gt;options  SCTP   # Stream Control Transmission Protocol&lt;br /&gt;options  FFS   # Berkeley Fast Filesystem&lt;br /&gt;options  SOFTUPDATES  # Enable FFS soft updates support&lt;br /&gt;options  UFS_ACL   # Support for access control lists&lt;br /&gt;options  UFS_DIRHASH  # Improve performance on big directories&lt;br /&gt;options  UFS_GJOURNAL  # Enable gjournal-based UFS journaling&lt;br /&gt;options  MD_ROOT   # MD is a potential root device&lt;br /&gt;options  NFSCLIENT  # Network Filesystem Client&lt;br /&gt;options  NFSSERVER  # Network Filesystem Server&lt;br /&gt;options  NFSLOCKD  # Network Lock Manager&lt;br /&gt;options  NFS_ROOT  # NFS usable as /, requires NFSCLIENT&lt;br /&gt;options  MSDOSFS   # MSDOS Filesystem&lt;br /&gt;options  CD9660   # ISO 9660 Filesystem&lt;br /&gt;options  PROCFS   # Process filesystem (requires PSEUDOFS)&lt;br /&gt;options  PSEUDOFS  # Pseudo-filesystem framework&lt;br /&gt;options  GEOM_PART_GPT  # GUID Partition Tables.&lt;br /&gt;options  GEOM_LABEL  # Provides labelization&lt;br /&gt;options  COMPAT_43TTY  # BSD 4.3 TTY compat (sgtty)&lt;br /&gt;options  COMPAT_FREEBSD32 # Compatible with i386 binaries&lt;br /&gt;options  COMPAT_FREEBSD4  # Compatible with FreeBSD4&lt;br /&gt;options  COMPAT_FREEBSD5  # Compatible with FreeBSD5&lt;br /&gt;options  COMPAT_FREEBSD6  # Compatible with FreeBSD6&lt;br /&gt;options  COMPAT_FREEBSD7  # Compatible with FreeBSD7&lt;br /&gt;options  SCSI_DELAY=5000  # Delay (in ms) before probing SCSI&lt;br /&gt;#-options  KTRACE   # ktrace(1) support&lt;br /&gt;#-options  STACK   # stack(9) support&lt;br /&gt;options  SYSVSHM   # SYSV-style shared memory&lt;br /&gt;options  SYSVMSG   # SYSV-style message queues&lt;br /&gt;options  SYSVSEM   # SYSV-style semaphores&lt;br /&gt;options  P1003_1B_SEMAPHORES # POSIX-style semaphores&lt;br /&gt;options  _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions&lt;br /&gt;options  PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.&lt;br /&gt;options  KBD_INSTALL_CDEV # install a CDEV entry in /dev&lt;br /&gt;options  HWPMC_HOOKS  # Necessary kernel hooks for hwpmc(4)&lt;br /&gt;options  AUDIT   # Security event auditing&lt;br /&gt;options  MAC   # TrustedBSD MAC Framework&lt;br /&gt;#options  KDTRACE_FRAME  # Ensure frames are compiled in&lt;br /&gt;#options  KDTRACE_HOOKS  # Kernel DTrace hooks&lt;br /&gt;options  INCLUDE_CONFIG_FILE     # Include this file in kernel&lt;br /&gt;&lt;br /&gt;#-options  KDB   # Kernel debugger related code&lt;br /&gt;#-options  KDB_TRACE  # Print a stack trace for a panic&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Полная инструкция сборки всего системного окружения и ядра FreeBSD&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Удаляем бинарники от предыдущей компиляции:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% cd /usr/obj/ &amp;&amp; chflags -R noschg * &amp;&amp; rm -rf *&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Редактируем файл &lt;i&gt;/etc/sys-supfile&lt;/i&gt; для обновления исходников до нужной версии системы:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% ee /etc/sys-supfile&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Синхронизируем дерево исходного кода с серверным:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% cd /usr/src/ &amp;&amp; chflags -R noschg * &amp;&amp; csup /etc/sys-supfile&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;На этом шаге делаем копию конфига ядра:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% cd /sys/amd64/conf/ &amp;&amp; cp GENERIC SELENA&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Редактируем конфиг будущего ядра:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% ee /sys/amd64/conf/SELENA&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;На этом этапе редактируем &lt;i&gt;make.conf&lt;/i&gt; и &lt;i&gt;src.conf&lt;/i&gt;, если нужно:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% ee /etc/make.conf&lt;br /&gt;&lt;/code&gt;и&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% ee /etc/src.conf&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Очищаем исходники:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% cd /usr/src/ &amp;&amp; chflags -R noschg * &amp;&amp; make cleandir &amp;&amp; make cleandir &amp;&amp; make cleandir&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Собираем Мир и Ядро:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% cd /usr/src/ &amp;&amp; make buildworld buildkernel&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Инсталлируем Ядро и Мир в однопользовательском режиме, обновляем файлы конфигурации системы:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% shutdown now&lt;br /&gt;# cd /usr/src/ &amp;&amp; make installkernel installworld&lt;br /&gt;# mergemaster&lt;br /&gt;# shutdown -r now&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;В одних случаях может быть достаточно нажимать клавишу [i] на вопросы утилиты &lt;i&gt;mergemaster&lt;/i&gt; — инсталлировать новые файлы конфигурации. Но сначала нужно проверить, какой файл обрабатывается, прежде чем что-то сделать с ним: заменить старую версию файла новым [i], оставить старый [d], посмотреть изменения [v] или произвести слияние нового со старым [m], сделать ссылку [l] (бывает и такое). В завершение процесса на вопрос об удалении временного каталога можно нажать клавишу [y].&lt;/li&gt;&lt;li&gt;Перезагружаемся:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# shutdown -r now&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Загружаемся как обычно, но затем снова переходим в однопользовательском режим и удаляем мусор от предыдущей инсталляции:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% shutdown now&lt;br /&gt;# cd /usr/src/ &amp;&amp; make BATCH_DELETE_OLD_FILES=true delete-old delete-old-libs&lt;br /&gt;# shutdown -r now&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Вот и всё.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-3715873033153385940?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/3715873033153385940/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=3715873033153385940' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3715873033153385940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3715873033153385940'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/10/freebsd.html' title='FreeBSD: обновление системы из исходников'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-6522486191481577234</id><published>2011-06-07T14:02:00.004+04:00</published><updated>2011-06-07T14:08:23.049+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><title type='text'>Популярность копилефт-лицензий падает</title><content type='html'>Ссылка на статью: &lt;a href="http://www.opennet.ru/opennews/art.shtml?num=30796"&gt;Популярность копилефт-лицензий падает&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Согласно &lt;a href="http://blogs.the451group.com/opensource/2011/06/06/the-trend-towards-permissive-licensing/"&gt;сводке&lt;/a&gt; результатов исследований, проведённых экспертами центра Open Source Resource Center компании &lt;a href="http://www.blackducksoftware.com/"&gt;Black Duck&lt;/a&gt; процентное количество открытых проектов, использующих лицензии семейства GPL, снизилось с 70% (июнь 2008 г.) до 61% (июнь 2011 г.), а использование конкретно лицензии GPLv2 снизилось с 58% до 45% за те же три года. При этом количество проектов, использующих GPL-лицензии, в реальном исчислении увеличилось за последние несколько лет. Например, число проектов под лицензией GPLv2 возросло на 5.5% между июнем 2009 и июнем 2011 года, в то время как общее число проектов с открытым кодом увеличилось более чем на 16%.&lt;br /&gt;&lt;br /&gt;Количество проектов, использующих лицензию Apache, выросло на 46% в течение последних двух лет, в то время как количество проектов, лицензируемых на условиях &lt;a href="http://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D0%B8_MIT"&gt;MIT-лицензий&lt;/a&gt;, выросло на целых 152%. &lt;a href="http://www.blackducksoftware.com/oss/licenses#top20"&gt;Графики&lt;/a&gt; из исследования Black Duck ясно указывают на то, что лицензии MIT являются лидером в последние два года, их показатель вырос с 3.8% от всех проектов в июне 2009 года до 8.23% на сегодняшний момент времени, и обогнал по общему показателю прогресса использование лицензии Apache, BSD, GPLv3 и LGPLv2.1.&lt;br /&gt;&lt;br /&gt;Данные исследования Black Duck демонстрируют в последние годы не только снижение важности &lt;a href="http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BF%D0%B8%D0%BB%D0%B5%D1%84%D1%82"&gt;копилефт-лицензий&lt;/a&gt;, требующих при создании производных работ или внесения изменений открытия кода на тех же условиях. Исследование, проведённое в рамках доклада &lt;a href="http://blogs.the451group.com/opensource/2010/11/03/control-and-community/"&gt;Control and Community&lt;/a&gt;, также указывает на то, что снижается количество производителей, связывающих себя с ПО, лицензируемым строго под копилефт-лицензиями. Были оценены OpenSource стратегии трёхсот компаний-вендоров и их филиалов. Рассматривались такие вопросы, как выбор лицензии, модель разработки, стратегия авторских прав и источник прибыли.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Очень интересные графики, демонстрирующие тренды заинтересованности в той или иной политике лицензирования проектов за последние годы. Особенно мне понравился вот этот график:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.the451group.com/opensource/files/year_software_license-2.png"/&gt;&lt;br /&gt;— в мае-июне 2006 мне наконец-то удалось разобраться с многообразием дистрибутивов GNU/Linux, попробовать LiveCD BLiN 2.0 на основе GNOME, DVD9 ALT Linux Compact 3.0 со стабильной оболочкой KDE и ужасно глючным Xfce DE. В конце-концов, остановишись и установив в июне 2006 года Ubuntu 6.06, стал готов к окончательному переходу на BSD и проекты с исключительно открытым кодом и вскоре сделал это!&lt;br /&gt;&lt;br /&gt;Как-будто чувствовал тренды...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-6522486191481577234?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/6522486191481577234/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=6522486191481577234' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6522486191481577234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6522486191481577234'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2011/06/blog-post.html' title='Популярность копилефт-лицензий падает'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-767032986319280222</id><published>2011-06-06T23:23:00.001+04:00</published><updated>2011-06-07T19:34:22.136+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>ZFSv28 портирована в ветку FreeBSD 8-STABLE</title><content type='html'>&lt;a href="http://www.mail-archive.com/freebsd-stable@freebsd.org/msg116307.html"&gt;Файловая система ZFSv28 портирована в ветку FreeBSD 8-STABLE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Дождались! :)&lt;br /&gt;&lt;br /&gt;Вкратце:&lt;ul&gt;&lt;li&gt;добавлен уровень RAIDZ3 — RAID-5 с тройной чётностью&lt;br /&gt;&lt;li&gt;дедупликация блоков данных на уровне файловой системы (экономит место на носителях при наличии одинаковых данных в различных файлах)&lt;br /&gt;&lt;li&gt;сравнение снапшотов командой &lt;i&gt;zfs diff&lt;/i&gt;&lt;br /&gt;&lt;li&gt;получение независимых клонов пулов командой &lt;i&gt;zpool split&lt;/i&gt; для переноса на другие машины&lt;br /&gt;&lt;li&gt;cчётчик ссылок на снапшот для защиты снапшотов от ошибочного удаления&lt;br /&gt;&lt;li&gt;восстановление FAULTED-пула путём отматывания последних транзакций записи (ранее практиковался &lt;a href="http://www.lissyara.su/articles/freebsd/file_system/zfs_recovery/"&gt;ручной&lt;/a&gt; метод восстановления)&lt;br /&gt;&lt;li&gt;другие улучшения&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-767032986319280222?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/767032986319280222/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=767032986319280222' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/767032986319280222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/767032986319280222'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2011/06/zfsv28-freebsd-8-stable.html' title='ZFSv28 портирована в ветку FreeBSD 8-STABLE'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-2658833378858742911</id><published>2011-05-14T01:01:00.001+04:00</published><updated>2011-07-13T19:54:34.023+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='автоматизация'/><title type='text'>Автоматизация пересборки FreeBSD</title><content type='html'>&lt;h5&gt;1. Обновление исходников&lt;/h5&gt;&lt;br /&gt;csup-файл:&lt;code&gt;&lt;br /&gt;*default host=cvsup11.FreeBSD.org&lt;br /&gt;*default base=/var/db&lt;br /&gt;*default prefix=/usr&lt;br /&gt;*default release=cvs&lt;br /&gt;*default tag=RELENG_8&lt;br /&gt;*default delete use-rel-suffix&lt;br /&gt;*default compress&lt;br /&gt;src-all&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Скрипт обновления исходников:&lt;code&gt;&lt;br /&gt;#!/bin/csh&lt;br /&gt;set SYSTEMPOOL=selena&lt;br /&gt;set TIMESTAMP=`date -u +%Y%m%d%H%M`&lt;br /&gt;#-zfs snapshot ${SYSTEMPOOL}/usr/src@${TIMESTAMP}&lt;br /&gt;cd /usr/src &amp;&amp; chflags -R noschg *&lt;br /&gt;csup /etc/sys-supfile&lt;br /&gt;head -25 /usr/src/UPDATING&lt;br /&gt;cd /usr/src/sys/`uname -m`/conf/ &amp;&amp; diff `uname -i` GENERIC&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;2. Скрипт компиляции и сборки&lt;/h5&gt;&lt;code&gt;&lt;br /&gt;#!/bin/csh&lt;br /&gt;set LOG=/var/log/update_system_build.log&lt;br /&gt;set DONE="System Build Failed."&lt;br /&gt;set TIMESTAMP=`date -u +%Y%m%d%H%M`&lt;br /&gt;cd /usr/src/ &amp;&amp; chflags -R noschg * &amp;&amp; make cleandir &amp;&amp; make cleandir buildworld buildkernel &amp;&amp; set DONE="System Build Success."&lt;br /&gt;echo "${TIMESTAMP}: ${DONE}" &gt;&gt; ${LOG}&lt;br /&gt;tail -n1 ${LOG}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;3. Ручная работа&lt;/h5&gt;&lt;code&gt;&lt;br /&gt;shutdown now&lt;br /&gt;cd /usr/src/ &amp;&amp; make installkernel installworld&lt;br /&gt;mergemaster&lt;br /&gt;shutdown -r now&lt;br /&gt;shutdown now&lt;br /&gt;cd /usr/src/ &amp;&amp; make BATCH_DELETE_OLD_FILES=true delete-old delete-old-libs&lt;br /&gt;shutdown -r now&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;*) mergemaster я обычно выполняю в диалоговом режиме, чтобы увидеть изменения в системных конфигурационных файлах. В повседневных пересборках, как правило, практически нет критичных изменений и можно смело нажимать [i] для принятия нового.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-2658833378858742911?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/2658833378858742911/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=2658833378858742911' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/2658833378858742911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/2658833378858742911'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2011/03/freebsd.html' title='Автоматизация пересборки FreeBSD'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-2647113092243864000</id><published>2011-05-14T00:51:00.003+04:00</published><updated>2011-07-13T20:03:59.625+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ports'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='автоматизация'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Update? Ports. Install!</title><content type='html'>Идея быстрого развёртывания рабочей конфигурации FreeBSD весьма далека от пользователей. Предлагаемый сценарий «карты» ПО даёт сравнительно менее затратный способ получения мультимедийного и рабочего окружения на основе графических сред Fluxbox, Xfce4 или GNOME-lite, а также даёт возможность привести поломанное программное окружение к определённому базовому состоянию.&lt;br /&gt;&lt;br /&gt;Для управления ПО используется пакет утилит &lt;i&gt;portupgrade&lt;/i&gt; (порт &lt;a href="http://www.freshports.org/ports-mgmt/portupgrade/"&gt;ports-mgmt/portupgrade&lt;/a&gt;), но можно использовать и &lt;i&gt;portmaster&lt;/i&gt; (порт &lt;a href="http://www.freshports.org/ports-mgmt/portmaster/"&gt;ports-mgmt/portmaster&lt;/a&gt;).&lt;br /&gt;&lt;h5&gt;Сценарий карты ПО&lt;/h5&gt;&lt;code&gt;&lt;br /&gt;#!/bin/csh&lt;br /&gt;alias installport 'portinstall -p'&lt;br /&gt;# Или из бинарных пакетов: alias installport 'env PKG_PATH=/store/pckgs64/All/ portinstall -yPP'&lt;br /&gt;# Или с помощью portmaster: alias installport 'portmaster -gD' # --delete-build-only'&lt;br /&gt;set LOG=/var/log/update_ports.log&lt;br /&gt;set TIMESTAMP_BEGIN=`date -u +%Y%m%d%H%M`&lt;br /&gt;echo "${TIMESTAMP_BEGIN}: begin installation ports" &gt;&gt; ${LOG}&lt;br /&gt;installport sysutils/ataidle&lt;br /&gt;installport sysutils/smartmontools&lt;br /&gt;installport archivers/unrar&lt;br /&gt;installport archivers/p7zip&lt;br /&gt;installport ports-mgmt/pkg_cutleaves&lt;br /&gt;installport ports-mgmt/pkg_tree&lt;br /&gt;installport audio/faad&lt;br /&gt;installport audio/faac&lt;br /&gt;installport audio/sox&lt;br /&gt;installport multimedia/libdvdcss&lt;br /&gt;installport net/liveMedia&lt;br /&gt;installport audio/libaacplus&lt;br /&gt;installport multimedia/libquicktime&lt;br /&gt;#-=Xorg=-&lt;br /&gt;installport x11-drivers/xorg-drivers&lt;br /&gt;installport x11-servers/xorg-server&lt;br /&gt;installport x11/xorg-minimal&lt;br /&gt;installport x11/setxkbmap&lt;br /&gt;installport x11/xhost&lt;br /&gt;installport x11/xset&lt;br /&gt;installport x11/xinput&lt;br /&gt;installport x11/xdpyinfo&lt;br /&gt;installport graphics/mesa-demos&lt;br /&gt;installport x11-fonts/dejavu&lt;br /&gt;installport x11-fonts/urwfonts&lt;br /&gt;installport x11-fonts/urwfonts-ttf&lt;br /&gt;installport x11-fonts/isabella&lt;br /&gt;installport x11-wm/fluxbox&lt;br /&gt;installport x11-themes/cursor-jimmac-theme&lt;br /&gt;installport x11-themes/gtk-murrina-fancy-clearlooks&lt;br /&gt;installport misc/gnome-icon-theme&lt;br /&gt;installport x11/xscreensaver&lt;br /&gt;installport audio/grip&lt;br /&gt;installport www/midori&lt;br /&gt;installport x11/slim&lt;br /&gt;installport math/galculator&lt;br /&gt;#-installport net-im/gajim&lt;br /&gt;installport ftp/gftp&lt;br /&gt;installport textproc/meld&lt;br /&gt;#-installport net-p2p/transmission-gtk2&lt;br /&gt;installport net-p2p/deluge&lt;br /&gt;installport audio/deadbeef&lt;br /&gt;#-=printing=-&lt;br /&gt;installport print/hplip&lt;br /&gt;#-=GNOME App=-&lt;br /&gt;installport archivers/file-roller&lt;br /&gt;installport editors/gedit-plugins&lt;br /&gt;installport graphics/eog-plugins&lt;br /&gt;installport graphics/evince&lt;br /&gt;installport multimedia/gnome-mplayer&lt;br /&gt;installport sysutils/gnome-system-monitor&lt;br /&gt;installport net/gnome-nettool&lt;br /&gt;#-=other=-&lt;br /&gt;installport mail/thunderbird&lt;br /&gt;installport mail/thunderbird-i18n&lt;br /&gt;set TIMESTAMP_END=`date -u +%Y%m%d%H%M`&lt;br /&gt;echo "${TIMESTAMP_END}: end installation ports" &gt;&gt; ${LOG}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Инсталляция Xfce 4.6.2 (из отдельного дерева портов)&lt;/h5&gt;&lt;code&gt;&lt;br /&gt;#!/bin/csh&lt;br /&gt;alias installport 'portinstall -p'&lt;br /&gt;#alias installport 'portmaster -gD' # --delete-build-only'&lt;br /&gt;#-=Xfce4=-&lt;br /&gt;#-installport deskutils/xfce4-notifyd # conflict with xfce4-notification-daemon&lt;br /&gt;installport deskutils/xfce4-notification-daemon # conflict with xfce4-notifyd&lt;br /&gt;#-installport audio/thunar-media-tags-plugin&lt;br /&gt;installport archivers/thunar-archive-plugin&lt;br /&gt;installport x11-wm/xfce4-session&lt;br /&gt;installport x11-wm/xfce4&lt;br /&gt;installport sysutils/xfce4-systemload-plugin&lt;br /&gt;installport x11/xfce4-screenshooter-plugin&lt;br /&gt;installport x11/xfce4-clipman-plugin&lt;br /&gt;installport sysutils/xfce4-netload-plugin&lt;br /&gt;installport misc/xfce4-weather-plugin&lt;br /&gt;installport sysutils/xfburn&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Восстановление конфигурации&lt;/h5&gt;&lt;code&gt;#!/bin/csh&lt;br /&gt;set CONFIG_DIR=/root/update/config&lt;br /&gt;set LOCALBASE=/usr/local&lt;br /&gt;set TIMESTAMP=`date -u +%Y%m%d%H%M`&lt;br /&gt;cd ${LOCALBASE}/etc/ &amp;&amp; mv -v slim.conf slim.conf.${TIMESTAMP} &amp;&amp; cp -v ${CONFIG_DIR}/slim.conf ${LOCALBASE}/etc/&lt;br /&gt;cd ${LOCALBASE}/etc/PolicyKit/ &amp;&amp; mv -v PolicyKit.conf PolicyKit.conf.${TIMESTAMP} &amp;&amp; cp -v ${CONFIG_DIR}/PolicyKit.conf ${LOCALBASE}/etc/PolicyKit/ &amp;&amp; chmod 644 ${LOCALBASE}/etc/PolicyKit/PolicyKit.conf&lt;br /&gt;cd ${LOCALBASE}/etc/xdg/xfce4/ &amp;&amp; mv -v mount.rc mount.rc.${TIMESTAMP} &amp;&amp; cp -v ${CONFIG_DIR}/mount.rc ${LOCALBASE}/etc/xdg/xfce4/ &amp;&amp; chmod 644 ${LOCALBASE}/etc/xdg/xfce4/mount.rc&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Важные замечания&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;Дерево портов должно быть своевременно обновлено.&lt;/li&gt;&lt;li&gt;Обращаю внимание на то, что по умолчанию настройки политик логина пользователей, монтирования сменных носителей от имени непривелегированных пользователей не определены. Поэтому нужно заранее подготовить файлы &lt;i&gt;slim.conf&lt;/i&gt;, &lt;i&gt;PolicyKit.conf&lt;/i&gt; и &lt;i&gt;mount.rc&lt;/i&gt;, описанные в соответствующих &lt;a href="http://izenfire.blogspot.com/2010/05/xfce4.html"&gt;статьях&lt;/a&gt;, и разместить их в защищённом от записи непривелегированным пользователем каталоге, например, в &lt;i&gt;/root/update/config&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;Для пакетного режима работы сценария важно наличие сформированного каталога &lt;i&gt;/var/db/ports/&lt;/i&gt; с заданными необходимыми опциями сборки портов. Иначе придётся настраивать установку одельных портов и их зависимостей в процессе исполнения сценария. ;)&lt;/li&gt;&lt;li&gt;Команды этого сценария подготавливают графическую среду для работы и развлечения, не уничтожая исходные файлы конфигурации.&lt;/li&gt;&lt;/ul&gt;&lt;h5&gt;Сценарий повседневного обновления ПО&lt;/h5&gt;&lt;code&gt;&lt;br /&gt;#!/bin/csh&lt;br /&gt;#-alias upgradeports 'pkgdb -vfFu &amp;&amp; portsdb -u &amp;&amp; portupgrade -aF &amp;&amp; portupgrade -ap'&lt;br /&gt;alias upgradeports 'portmaster -agD --delete-build-only'&lt;br /&gt;alias listupdates 'portmaster -L | grep "New"'&lt;br /&gt;set LOG=/var/log/update_ports.log&lt;br /&gt;set DONE="Ports Updating Failed."&lt;br /&gt;set SYSTEMPOOL=selena&lt;br /&gt;set TIMESTAMP=`date -u +%Y%m%d%H%M`&lt;br /&gt;zfs snapshot ${SYSTEMPOOL}/usr/local@${TIMESTAMP}&lt;br /&gt;zfs snapshot ${SYSTEMPOOL}/var/db/pkg@${TIMESTAMP}&lt;br /&gt;cd /usr/ports/ &amp;&amp; chflags -R noschg * &amp;&amp; portsnap fetch update&lt;br /&gt;listupdates&lt;br /&gt;head -17 /usr/ports/UPDATING&lt;br /&gt;upgradeports &amp;&amp; set DONE="Ports Updating Success."&lt;br /&gt;echo "${TIMESTAMP}: ${DONE}" &gt;&gt; ${LOG}&lt;br /&gt;tail -n1 ${LOG}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-2647113092243864000?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/2647113092243864000/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=2647113092243864000' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/2647113092243864000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/2647113092243864000'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/06/update-ports-install.html' title='Update? Ports. Install!'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-8547095047602065070</id><published>2011-03-18T22:22:00.005+03:00</published><updated>2011-03-18T22:29:25.271+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Xorg'/><category scheme='http://www.blogger.com/atom/ns#' term='ATI'/><title type='text'>AMD 785G с Phenom II X4 810</title><content type='html'>&lt;h5&gt;Было&lt;/h5&gt;&lt;code&gt;&lt;br /&gt;% glxgears&lt;br /&gt;2014 frames in 5.0 seconds = 402.682 FPS&lt;br /&gt;2101 frames in 5.0 seconds = 420.139 FPS&lt;br /&gt;2102 frames in 5.0 seconds = 420.367 FPS&lt;br /&gt;2101 frames in 5.0 seconds = 420.153 FPS&lt;br /&gt;2107 frames in 5.0 seconds = 421.336 FPS&lt;br /&gt;2109 frames in 5.0 seconds = 421.762 FPS&lt;/code&gt;&lt;br /&gt;Процессор при этом нагружен на 35-45%, причём — все четыре ядра! Это называется софтверным ускорением. :))&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Включаем аппаратное 3D-ускорение на Radeon HD&lt;/h5&gt;&lt;br /&gt;1) Добавляем строчку игнорирования NOUVEAU, чтобы он не мешал графическому окружению:&lt;code&gt;&lt;br /&gt;% echo 'WITHOUT_NOUVEAU=true' &gt;&gt; /etc/make.conf&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) Пересобираем graphics/libdrm, graphics/libGL*, graphics/libglut: &lt;code&gt;&lt;br /&gt;% portupgrade -fp graphics/libdrm &amp;&amp; portupgrade -fp graphics/libGL &amp;&amp; portupgrade -fp graphics/libGLU &amp;&amp; portupgrade -fp graphics/libglut graphics/mesa-demos&lt;/code&gt;&lt;br /&gt;или, если есть время, так: &lt;code&gt;&lt;br /&gt;% portupgrade -fpr graphics/libdrm&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Перезагружаемся и смотрим на результат:&lt;code&gt;&lt;br /&gt;% glxinfo | grep render&lt;br /&gt;IRQ's not enabled, falling back to busy waits: 2 0&lt;br /&gt;direct rendering: Yes&lt;br /&gt;OpenGL renderer string: Mesa DRI R600 (RS880 9710) 20090101  TCL&lt;br /&gt;&lt;br /&gt;% glxinfo | grep glx&lt;br /&gt;IRQ's not enabled, falling back to busy waits: 2 0&lt;br /&gt;server glx vendor string: SGI&lt;br /&gt;server glx version string: 1.2&lt;br /&gt;server glx extensions:&lt;br /&gt;client glx vendor string: Mesa Project and SGI&lt;br /&gt;client glx version string: 1.4&lt;br /&gt;client glx extensions:&lt;br /&gt;&lt;br /&gt;% glxgears&lt;br /&gt;IRQ's not enabled, falling back to busy waits: 2 0&lt;br /&gt;9033 frames in 5.0 seconds = 1806.251 FPS&lt;br /&gt;8878 frames in 5.0 seconds = 1775.427 FPS&lt;br /&gt;8993 frames in 5.0 seconds = 1798.448 FPS&lt;br /&gt;8999 frames in 5.0 seconds = 1799.691 FPS&lt;br /&gt;9056 frames in 5.0 seconds = 1811.054 FPS&lt;br /&gt;9000 frames in 5.0 seconds = 1799.960 FPS&lt;br /&gt;9031 frames in 5.0 seconds = 1806.070 FPS&lt;br /&gt;8957 frames in 5.0 seconds = 1791.309 FPS&lt;br /&gt;^C&lt;br /&gt;&lt;br /&gt;% uname -rsm&lt;br /&gt;FreeBSD 8.2-STABLE amd64&lt;br /&gt;&lt;br /&gt;% pkg_info -Ex video-ati&lt;br /&gt;xf86-video-ati-6.14.0_1&lt;br /&gt;&lt;br /&gt;% pkg_info -Ex dri&lt;br /&gt;dri-7.6.1,2&lt;br /&gt;dri2proto-2.3&lt;br /&gt;xorg-drivers-7.5.1&lt;br /&gt;&lt;br /&gt;% pkg_info -Ex mesa&lt;br /&gt;mesa-demos-7.6.1&lt;br /&gt;&lt;br /&gt;% pkg_info -Ex libGL&lt;br /&gt;libGL-7.6.1&lt;br /&gt;libGLU-7.6.1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;xorg.conf&lt;/h5&gt;&lt;code&gt;&lt;br /&gt;Section "ServerLayout"&lt;br /&gt;Identifier     "X.org Configured"&lt;br /&gt;Screen      0  "Screen0" 0 0&lt;br /&gt;InputDevice    "Mouse0" "CorePointer"&lt;br /&gt;InputDevice    "Keyboard0" "CoreKeyboard"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Files"&lt;br /&gt;ModulePath   "/usr/local/lib/xorg/modules"&lt;br /&gt;FontPath     "/usr/local/lib/X11/fonts/misc/"&lt;br /&gt;FontPath     "/usr/local/lib/X11/fonts/TTF/"&lt;br /&gt;FontPath     "/usr/local/lib/X11/fonts/OTF"&lt;br /&gt;FontPath     "/usr/local/lib/X11/fonts/Type1/"&lt;br /&gt;FontPath     "/usr/local/lib/X11/fonts/100dpi/"&lt;br /&gt;FontPath     "/usr/local/lib/X11/fonts/75dpi/"&lt;br /&gt;FontPath     "/usr/local/lib/X11/fonts/dejavu/"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Module"&lt;br /&gt;#-Load  "glx"&lt;br /&gt;Load  "extmod"&lt;br /&gt;Load  "record"&lt;br /&gt;Load  "dbe"&lt;br /&gt;Load  "dri"&lt;br /&gt;Load  "dri2"&lt;br /&gt;Load  "freetype"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt;Identifier  "Keyboard0"&lt;br /&gt;Driver      "kbd"&lt;br /&gt;Option      "XkbLayout" "us,ru"&lt;br /&gt;Option      "XkbVariant" ",winkeys"&lt;br /&gt;Option      "XkbOptions" "grp:caps_toggle,grp_led:caps,compose:ralt"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt;Identifier  "Mouse0"&lt;br /&gt;Driver      "mouse"&lt;br /&gt;Option     "Protocol" "auto"&lt;br /&gt;Option     "Device" "/dev/sysmouse"&lt;br /&gt;Option     "ZAxisMapping" "4 5 6 7"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "ServerFlags"&lt;br /&gt;Option "AutoAddDevices" "false"&lt;br /&gt;Option "AllowEmptyInput" "off"&lt;br /&gt;Option "AllowMouseOpenFail" "true"&lt;br /&gt;Option "IgnoreABI" "on"&lt;br /&gt;Option "AIGLX" "true"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Monitor"&lt;br /&gt;#DisplaySize   540   350 # mm&lt;br /&gt;Identifier   "Monitor0"&lt;br /&gt;VendorName   "HWP"&lt;br /&gt;ModelName    "HP LP2475w"&lt;br /&gt;HorizSync    30.0 - 94.0&lt;br /&gt;VertRefresh  48.0 - 85.0&lt;br /&gt;Option     "DPMS"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Modes"&lt;br /&gt;Identifier "Mode0"&lt;br /&gt;EndSection &lt;br /&gt;&lt;br /&gt;Section "Device"&lt;br /&gt;Option "int10" "on"&lt;br /&gt;Option "BusType" "PCIE"&lt;br /&gt;Option "RenderAccel" "on"&lt;br /&gt;Option "AccelMethod" "exa"&lt;br /&gt;Option "DynamicPM" "on"&lt;br /&gt;Option "DRI" "on"&lt;br /&gt;Identifier  "Card0"&lt;br /&gt;#Driver      "vesa"&lt;br /&gt;Driver      "ati"&lt;br /&gt;VendorName  "ATI Technologies Inc"&lt;br /&gt;BoardName   "RS880 [Radeon HD 4200]"&lt;br /&gt;#-BusID       "PCI:1:5:0"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Screen"&lt;br /&gt;Identifier "Screen0"&lt;br /&gt;Device     "Card0"&lt;br /&gt;Monitor    "Monitor0"&lt;br /&gt;SubSection "Display"&lt;br /&gt;Viewport   0 0&lt;br /&gt;Depth     24&lt;br /&gt;#Modes   "1680x1050"&lt;br /&gt;Modes   "1920x1200"&lt;br /&gt;EndSubSection&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "DRI"&lt;br /&gt;Mode 0666&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Extensions"&lt;br /&gt;Option "Composite" "true"&lt;br /&gt;Option "DAMAGE" "true"&lt;br /&gt;Option "RENDER" "true"&lt;br /&gt;EndSection&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-8547095047602065070?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/8547095047602065070/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=8547095047602065070' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8547095047602065070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8547095047602065070'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/03/amd-785g-phenom-ii-x4-810.html' title='AMD 785G с Phenom II X4 810'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-4483765495559993134</id><published>2010-06-16T20:55:00.005+04:00</published><updated>2010-06-16T21:14:00.365+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RAID'/><title type='text'>Недорогое хранилище данных</title><content type='html'>Есть SATA-контроллёр, распаянный на материнке. В наличии имеется всего 4  доступных для винчестеров физических портов SATA.&lt;br /&gt;&lt;br /&gt;Система собирается  в очень компактном корпусе для NAS/Backup. В наличии только одно место  под одно 5,25"-устройство (представьте привод CD-ROM).&lt;br /&gt;&lt;br /&gt;Под это дело нужно 4  винчестера компактного (не больше 2,5") форм-фактора, несильно горячие, так как их  придётся запихнуть хоть и в продуваемую корзину, но каждый в четверть от объёма под 5,25"-устройство.&lt;br /&gt;&lt;br /&gt;Итак, расклад такой (значения ёмкости округлены  для прикидочных расчётов):&lt;br /&gt;HDD1 — 320ГБ (два логических тома: один  на 20ГБ, другой на 300ГБ);&lt;br /&gt;HDD2 — 320ГБ (два логических тома: один на  20ГБ, другой на 300ГБ);&lt;br /&gt;HDD3 — 640ГБ (один логический том на 600ГБ);&lt;br /&gt;HDD4 — 640ГБ (один логический том на 600ГБ).&lt;br /&gt;&lt;br /&gt;Формируем из них  массивы:&lt;br /&gt;RAID-1: HDD1.1+HDD2.1 — 20ГБ для операционной системы;&lt;br /&gt;RAID-0: HDD1.2+HDD2.2 — 600ГБ логический том для RAID-5;&lt;br /&gt;RAID-5: (HDD1.2+HDD2.2)+HDD3+HDD4 — 1200ГБ для данных.&lt;br /&gt;&lt;br /&gt;Пробуем!&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Цены&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;Western Digital Scorpio Blue WD3200BEVT 320ГБ ~ 1700 руб. (&lt;a href="http://www.thg.ru/storage/notebook_hdd_2008_2/notebook_hdd_2008_2-02.html"&gt;обзор 1&lt;/a&gt;, &lt;a href="http://www.fcenter.ru/online.shtml?articles/hardware/hdd/24174"&gt;обзор 2&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Samsung Spinpoint M7E HM641JI 640ГБ ~ 2700 руб. (&lt;a href="http://www.thg.ru/storage/notebook_hdd_640_750_gb/notebook_hdd_640_750_gb-01.html"&gt;обзор 1&lt;/a&gt;, &lt;a href="http://www.fcenter.ru/online.shtml?articles/hardware/hdd/28891#04"&gt;обзор 2&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-4483765495559993134?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/4483765495559993134/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=4483765495559993134' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4483765495559993134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4483765495559993134'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/06/blog-post.html' title='Недорогое хранилище данных'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-8338994587719965354</id><published>2010-06-02T15:56:00.003+04:00</published><updated>2010-06-02T16:07:34.555+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xfce'/><title type='text'>Меню рабочего стола Xfce 4.6 как в Xfce 4.4</title><content type='html'>Как получить такое меню:&lt;br /&gt;&lt;img src="http://izen.dev.juga.ru/image/Menu_Xfce4.6_as_4.4.png" alt="Xfce4 Menu"&gt;&lt;br /&gt;&lt;h5&gt;Делаем&lt;/h5&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Настройки -&gt; Рабочий стол -&gt;  вкладка Значки -&gt; Тип значков: Ничего.&lt;br /&gt;Настройки -&gt; Рабочий стол -&gt; вкладка Меню: флажок Показать меню приложений по щелчку правой кнопкой мыши&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Включить, а затем отключить отображение значков на Рабочем столе&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;P.S.&lt;br /&gt;Вот такое вот шаманство. Но всё именно так :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-8338994587719965354?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/8338994587719965354/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=8338994587719965354' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8338994587719965354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8338994587719965354'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/06/xfce-46-xfce-44.html' title='Меню рабочего стола Xfce 4.6 как в Xfce 4.4'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-8890532609684667329</id><published>2010-05-31T03:30:00.005+04:00</published><updated>2010-06-14T16:05:55.698+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><title type='text'>GNOME: ненужные иконки на Рабочем столе</title><content type='html'>Концепция иконок на Рабочем столе стала популярна ещё в Windows. Но если посмотреть на этот вид представления, то окажется, что иконки "работают" до первого открытия окна, а потом для запуска следующей программы или поиска какого-то документа на Рабочем столе потребуется свернуть все открытые окна. Процесс бессмысленный по своей сути.&lt;br /&gt;&lt;br /&gt;Способ убрать иконки следующий:&lt;br /&gt;&lt;br /&gt;1. Запускаем gconf-editor (Приложения-&gt;Системные-&gt;Редактор конфигурации).&lt;br /&gt;&lt;br /&gt;2. Снимаем галку со свойства /apps/nautilus/preferences/show_desktop&lt;br /&gt;&lt;br /&gt;Готово!&lt;br /&gt;&lt;h6&gt;Полезные ссылки&lt;/h6&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.freebsd.org/gnome/docs/faq2.html"&gt;FreeBSD GNOME Project: GNOME 2.30 FAQ&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-8890532609684667329?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/8890532609684667329/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=8890532609684667329' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8890532609684667329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8890532609684667329'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/05/gnome.html' title='GNOME: ненужные иконки на Рабочем столе'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-4964775343236547942</id><published>2010-05-26T22:40:00.003+04:00</published><updated>2010-05-27T00:38:24.934+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='BSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><title type='text'>Индустрия моды как успешный образец культуры Open Source</title><content type='html'>&lt;i&gt;Некоммерческая организация TED выложила на своём сайте &lt;a href="http://news.slashdot.org/story/10/05/25/2222207/The-Fashion-Industry-As-a-Model-For-IP-Reformhttp://www.ted.com/talks/johanna_blakley_lessons_from_fashion_s_free_culture.html"&gt;видеозапись&lt;/a&gt;  выступления &lt;a href="http://news.slashdot.org/story/10/05/25/2222207/The-Fashion-Industry-As-a-Model-For-IP-Reformhttp://www.ted.com/speakers/johanna_blakley.html"&gt;Джоанны Блекли&lt;/a&gt; с недавно прошедшей конференции TEDxUSC 2010 в университете Южной Калифорнии. Это очень любопытная лекция (15 минут), основная идея которой состоит в том, что индустрия моды со своей слабым использованием копирайта может стать примером для медийной индустрии и для софтверного рынка. Она показывает, как рынок дизайна одежды и генерирует сотни миллиардов долларов практически при полном отсутствии интеллектуальной собственности (у них есть только трейдмарки, то есть можно полностью копировать чужой дизайн, но нельзя копировать логотип).&lt;/i&gt;&lt;br /&gt;Обсуждение: http://habrahabr.ru/blogs/copyright/94630/&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Интересно, а что если…&lt;/h4&gt;&lt;br /&gt;Например, Вячеслав Зайцев придумал модный/удобный фасон одежды. Через несколько месяцев китайцы заваливают российский рынок ширпотреба одеждой аналогичного фасона. Зайцев якобы лишается недополученной прибыли.&lt;br /&gt;&lt;br /&gt;Что если бы Зайцев закрыл свой интеллектальный продукт патентами и не дал китайцам выбрасывать на рынок похожий товар, то что бы изменилось для потребителей?&lt;br /&gt;&lt;br /&gt;Ответ: цены на такую одежду взлетели бы до небес.&lt;br /&gt;&lt;br /&gt;А что если бы Зайцев специально отдал свою интеллектуальную собственность в руки международного союза кутюрье и запретил бы "закрывать" свои фасоны от широкого распространения, то есть обозначил статус своего творчества как только открытого и доступного для всевозможных вариаций другими кутюрье, не брал бы за это ни копья денег (авторских отчислений). То кто бы выиграл от такого «открытия»?&lt;br /&gt;&lt;br /&gt;Ответ: выиграли бы Зайцев с китайцами за счёт союза кутюрье; цены были бы ниже плинтуса за счёт массовости. Творческий союз кутюрье оказался бы в проигрыше из-за демпинга, несопоставимого объёма и дикой разницы цен между «зайцевским» ширпотребом и эксклюзивного товара от других кутюрье — налицо вытеснение кутюрье из массового сегмента рынка и сильной сегментации. Расслоение общества потребления неизбежно.&lt;br /&gt;&lt;br /&gt;Третий вариант: Зайцев генерирует только идеи и не патентует их, строит свой бизнес на реализации их наравне с конкурирующими партнёрами в лице других профессиональных кутюрье и китайцев. Что бы было?&lt;br /&gt;&lt;br /&gt;Ответ: хорошо сбалансированная на основе чисто рыночных механизмов модель производство-потребления, учитывающая запросы всех без исключения производителей продукции и потребителей, которые покупают то, что им нравится и за адекватную цену.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-4964775343236547942?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/4964775343236547942/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=4964775343236547942' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4964775343236547942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4964775343236547942'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/05/open-source.html' title='Индустрия моды как успешный образец культуры Open Source'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-1566298441462156415</id><published>2010-05-02T11:47:00.016+04:00</published><updated>2011-05-14T15:44:14.724+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xfce'/><category scheme='http://www.blogger.com/atom/ns#' term='USB-флэшка'/><title type='text'>Автомаунт подсоединяемых носителей в Xfce4</title><content type='html'>Вопросы по автомаунту флэшек и CD/DVD с русскими именами под Xfce4/Thunar+HAL решены.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Убираем все точки монтирования сменных носителей из &lt;i&gt;/etc/fstab&lt;/i&gt;.&lt;br /&gt;&lt;li&gt;Редактируем файл &lt;i&gt;/usr/local/etc/xdg/xfce4/mount.rc&lt;/i&gt;:&lt;code&gt;&lt;br /&gt;[vfat]&lt;br /&gt;uid=&lt;auto&gt;&lt;br /&gt;shortname=winnt&lt;br /&gt;# FreeBSD specific option&lt;br /&gt;longnames=true&lt;br /&gt;-L=ru_RU.UTF-8&lt;br /&gt;-D=CP866&lt;br /&gt;-m=0664&lt;br /&gt;-M=0775&lt;br /&gt;&lt;br /&gt;[iso9660]&lt;br /&gt;uid=&lt;auto&gt;&lt;br /&gt;longnames=true&lt;br /&gt;-C=UTF-8&lt;br /&gt;-m=0664&lt;br /&gt;-M=0775&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;li&gt;Пишем &lt;i&gt;/usr/local/etc/PolicyKit/PolicyKit.conf&lt;/i&gt;:&lt;style type="text/css"&gt;&lt;!--body {color: #000000; background-color: #ffffff; font-family: DejaVu Sans Mono}pre {color: #000000; background-color: #ffffff; font-family: DejaVu Sans Mono}table {color: #000000; background-color: #e9e8e2; font-family: DejaVu Sans Mono}.xml-comment {color: #969696}.xml-tag {color: #0000e6}.xml-attribute {color: #009900}.xml-value {color: #ce7b00}.ST0 {color: #00007c; font-family: DejaVu Sans Mono; font-weight: bold}--&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt; &lt;span class="xml-comment"&gt;&amp;lt;!-- -*- XML -*- --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;!DOCTYPE pkconfig PUBLIC &lt;/span&gt;&lt;span class="xml-value"&gt;&amp;quot;-//freedesktop//DTD PolicyKit Configuration 1.0//EN&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-value"&gt;&amp;quot;http://hal.freedesktop.org/releases/PolicyKit/&lt;/span&gt;&lt;span class="xml-value"&gt;1.0/config.dtd&amp;quot;&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-comment"&gt;&amp;lt;!-- See the manual page PolicyKit.conf(5) for file format --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;config&lt;/span&gt; &lt;span class="xml-attribute"&gt;version&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;0.1&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;define_admin_auth&lt;/span&gt; &lt;span class="xml-attribute"&gt;group&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;operator&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesktop.hal.storage.mount-removable&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/match&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesktop.hal.storage.mount-fixed&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/match&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesktop.hal.storage.eject&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/match&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesktop.hal.stor&lt;/span&gt;&lt;span class="xml-value"&gt;age.unmount-others&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/match&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesktop.hal.power-management.reboot&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/m&lt;/span&gt;&lt;span class="xml-tag"&gt;atch&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesktop.hal.power-management.shutdown&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/match&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesk&lt;/span&gt;&lt;span class="xml-value"&gt;top.hal.power-management.hibernate&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/match&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;match&lt;/span&gt; &lt;span class="xml-attribute"&gt;action&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;org.freedesktop.hal.power-management.suspend&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="xml-tag"&gt;&amp;lt;return&lt;/span&gt; &lt;span class="xml-attribute"&gt;result&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xml-tag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="xml-tag"&gt;match&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/config&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Добавляем пользователя в группу &lt;i&gt;operator&lt;/i&gt; (редактируем файл &lt;i&gt;/etc/group&lt;/i&gt;): &lt;code&gt;operator:*:5:root,username&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Перезагружаемся, чтобы удостоверится, что всё заработает.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-1566298441462156415?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/1566298441462156415/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=1566298441462156415' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1566298441462156415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1566298441462156415'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/05/xfce4.html' title='Автомаунт подсоединяемых носителей в Xfce4'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-6347258039240049059</id><published>2010-03-03T23:30:00.002+03:00</published><updated>2010-03-04T01:25:17.655+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PF'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='IP-TV'/><title type='text'>PF для рабочей станции в локальной сети</title><content type='html'>Типичный конфиг (файл &lt;span style="font-style:italic;"&gt;/etc/pf.conf&lt;/span&gt;) для пакетного фильтра рабочей станции:&lt;pre&gt;&lt;br /&gt;#PF:2010-03-03&lt;br /&gt;#-------------------&lt;br /&gt;#1/Macros&lt;br /&gt;# Сетевой интерфейс&lt;br /&gt;ext_if="net0"&lt;br /&gt;# Разрешенные типы icmp сообщений&lt;br /&gt;allowed_icmp_types="{ echoreq, unreach }"&lt;br /&gt;# Разрешённые сервисы&lt;br /&gt;# 1. разрешить запросы к серверу NFS и RPCBIND только из локальной сети&lt;br /&gt;# 2. обеспечить запуск с флагами mountd -p 883, rpc.lockd -p 884, rpc.statd -p 885 в rc.conf&lt;br /&gt;# 3. выделенные порты для torrent и http/https/ssh-серверов доступны всем&lt;br /&gt;allowed_lan_tcp_services="{ ssh, www, http, https, ntp, nfsd, rpcbind, 883, 884, 885, 6881:6991, 8080 }"&lt;br /&gt;allowed_lan_udp_services="{ ntp, nfsd, rpcbind, 883, 884, 885, 6881:6991 }"&lt;br /&gt;allowed_wan_tcp_services="{ ssh, www, 6881:6991, 8080, 8081 }"&lt;br /&gt;allowed_wan_udp_services="{ ntp, 5501, 6881:6991 }"&lt;br /&gt;#-------------------&lt;br /&gt;#2/Tables&lt;br /&gt;#-------------------&lt;br /&gt;#3/Options&lt;br /&gt;# ведение лога&lt;br /&gt;#--set loginterface $ext_if&lt;br /&gt;# тем, кто лезет туда, куда не нужно, - бить по рукам&lt;br /&gt;set block-policy drop&lt;br /&gt;# на интерфейсах петли пакеты не фильтровать&lt;br /&gt;set skip on { lo }&lt;br /&gt;# укороченный таймаут для состояния установленного tcp соединения&lt;br /&gt;set timeout { frag 10, tcp.established 24000, icmp.first 10, icmp.error 5 }&lt;br /&gt;#-------------------&lt;br /&gt;#4/Scrub&lt;br /&gt;# Нормализовать все входящие пакеты&lt;br /&gt;scrub in all&lt;br /&gt;#-scrub on $ext_if random-id max-mss 1452 reassemble tcp fragment reassemble&lt;br /&gt;#-------------------&lt;br /&gt;#5/Queueing&lt;br /&gt;#-------------------&lt;br /&gt;#6/Translations&lt;br /&gt;# Перенаправить tcp трафик с порта 80 на порт 8080 для пользовательского Web-сервера&lt;br /&gt;rdr proto tcp from any to any port http -&gt; self port 8080&lt;br /&gt;#-------------------&lt;br /&gt;#7/Filter Rules&lt;br /&gt;# Антиспуффинг&lt;br /&gt;#-antispoof for $ext_if&lt;br /&gt;# Блокировать всё, что не разрешено&lt;br /&gt;block all&lt;br /&gt;#-------------------&lt;br /&gt;# Разрешить входящий ICMP (ping)&lt;br /&gt;pass inet proto icmp all icmp-type $allowed_icmp_types&lt;br /&gt;# Разрешить трафик IGMP для IP-TV&lt;br /&gt;pass quick on $ext_if inet proto igmp from any to any allow-opts&lt;br /&gt;# Разрешающий доступ откуда угодно (ограниченные службы)&lt;br /&gt;pass in quick on $ext_if proto tcp to port $allowed_wan_tcp_services&lt;br /&gt;pass in quick on $ext_if proto udp to port $allowed_wan_udp_services&lt;br /&gt;# Разрешающий доступ из локальной сети (ограниченные службы)&lt;br /&gt;pass in quick on $ext_if proto tcp from $ext_if:network to port $allowed_lan_tcp_services&lt;br /&gt;pass in quick on $ext_if proto udp from $ext_if:network to port $allowed_lan_udp_services&lt;br /&gt;# Разрешить исходящий трафик&lt;br /&gt;pass out all&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Проверка синтаксиса&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% pfctl -nf /etc/pf.conf&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Запуск в работу&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% echo 'pf_enable="YES"' &gt;&gt; /etc/rc.conf&lt;br /&gt;% echo 'pf_rules="/etc/pf.conf"' &gt;&gt; /etc/rc.conf&lt;br /&gt;% pfctl -ef /etc/pf.conf&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Проверка действующих правил и прочей статистики&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% pfctl -sa&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Выключение&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% pfctl -d&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Примечание касательно трансляции IP-TV&lt;/h4&gt;При запуске VLC, например, с URL-адресом такого вида &lt;i&gt;udp://@239.1.1.28:5501&lt;/i&gt; воспроизведение начнётся не сразу, а спустя примерно 45 секунд с момента нажатия на кнопку PLAY. Однако переключение на другие каналы будет происходить практически мгновенно.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-6347258039240049059?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/6347258039240049059/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=6347258039240049059' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6347258039240049059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6347258039240049059'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/03/pf.html' title='PF для рабочей станции в локальной сети'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-114911019529280095</id><published>2010-01-19T23:40:00.001+03:00</published><updated>2010-10-30T02:04:57.416+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='BSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><title type='text'>BSDL даёт работу программистам</title><content type='html'>&lt;h4&gt;Слава и награда&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;Слава твоя останется в веках в виде причисления твоего имени к списку разработчиков (вполне возможно коммерческого) продукта.&lt;br /&gt;&lt;br /&gt;Материальное вознаграждение получишь, если сделаешь работу по доточке исходного BSD-like продукта НА ЗАКАЗ. Учти: все имущественные права на доточку (патчи исходников) будут принадлежать работодателю (если работа непосредственно преследовала цель правки исходников).&lt;br /&gt;&lt;br /&gt;Исходный код останется под BSD-like лицензией, как и был. Никто ничего не "закроет" (как думают многие GPL-филы) — каждый останется при своём. (Firebird, PostgreSQL, Apache Derby).&lt;br /&gt;&lt;br /&gt;Такое развитие сюжета весьма вероятно, если продукт представляет законченную ценность и не ущемляет права других авторов: деньги платятся конкретно за заточку. То есть деньги, которые могли бы выделить на "техническую поддержку" GPL- (или EULA-) продукта из-за несвободной лицензии и невозможности опубликования исходников переделанного продукта, будут вложены в исправления открытого под BSD-like лицензией кода, его тюнинг ради коммерческого профита (никому ничего не должны!). В этом случае деньги не спустятся эникейщикам из армии техподдержки, которые организации вынуждены держать для оказания помощи и сочувствия пользователям, а пойдут непосредственно в ДЕЛО по заточке исходного продукта.&lt;br /&gt;&lt;br /&gt;В случае с GPL: кому нужны безвестные в силу концепции &lt;a href="http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BF%D0%B8%D0%BB%D0%B5%D1%84%D1%82"&gt;copyleft&lt;/a&gt; (хе-хе, да и известные) авторы кода, подписавшие соглашение об участии в GPL-проекте, например, с Sun, и отдавшие плоды своего труда в полное управление контрибутора? (Java, MySQL). Да они бесправны и звать их никак. &lt;a href="http://corp.cnews.ru/news/top/index.shtml?2009/12/23/374602"&gt;Ходят и ноют по углам&lt;/a&gt; рабы GPL.&lt;br /&gt;&lt;br /&gt;Кто или что мешает программистам зарабатывать деньги на заточке GPL-продукта под заказчика?&lt;br /&gt;&lt;br /&gt;Банальное рабство!&lt;br /&gt;&lt;br /&gt;Смотрите сами. В случае с GPL-продуктом для заточки и использования (и/или распространения) нанимается сам автор продукта (MySQL и Sun) или специалист, хорошо знающий продукт и способный его переработать под нужды заказчика. При этом в контракте, если нанят сам автор, оговариваются детали распространения правок исходного продукта, возможно даже все его правки покупаются за большие деньги. Однако в случае рядового специалиста-эксперта условия распространения правок исходного продукта даже не оговариваются, так как продукт формально не принадлежит ему, а плоды труда естественным образом принадлежат заказчику. Эта уловка сделала неплодотворной лицензию GPL для обычного программиста (не автора) GPL-продукта. И свела GPL-лицензию для программистов к банальной EULA — к контрактному соглашению об отказе от всех прав в пользу заказчика/контрибутора GPL-продукта.&lt;br /&gt;&lt;br /&gt;Наймит GPL-проекта (в роли нанятого на зарплату работника) не может распространять правки исходного кода! Так как прав на исходный код и правки не имеет. Программист работает исключительно на заказчика, который, возможно даже не распространяет переработанный  GPL-продукт (заказчик пользуется им в личных целях), либо распространяет под собственным копирайтом (заказчику принадлежит имущественное право на исходный код, пример: Sun и OpenOffice).&lt;br /&gt;&lt;br /&gt;Пример, Sun, которая производит и распространяет OpenOffice под GPL... Тут уж бизнес у неё только на поддержке пользователей, купивших коробочный продукт. То есть, опять же, обычному программисту "с улицы" взять и переработать исходники OpenOffice (что-то отрезать, что-то добавить) и предложить эти патчи за деньги — нереально. Другой заказчик, делающий бизнес на продажах собственных коробочных версий OpenOffice (и соответствующей техподдержке своих клиентов), обязан выложить исходный код патченного OpenOffice в открытый доступ, иначе распространение custom-OOo будет считаться нарушением лицензионного соглашение автора — Sun. Но ведь после этого шага бравые ребятки Novell и Sun &lt;s&gt;спиздят&lt;/s&gt; внедрят все вкусные наработки в свои пакетики go-OOo, а заказчик останется без профита в своём продукте. Уникальность исчезнет. Заработать можно будет только по схеме: платная техподдержка пользователей открытого продукта — пришли к тому, от чего хотим уйти — нет места программисту, программист отодвигается от клиента "заслонкой" техподдержки.&lt;br /&gt;&lt;br /&gt;Рабство GPL: программист переходит на службу к заказчику, а не выступает как деловой партнёр.&lt;br /&gt;&lt;br /&gt;Мы узрели суть:&lt;ul&gt;&lt;li&gt;программные продукты под GPL и EULA на самом деле не имеют ничего общего со свободой. Они "работают" исключительно на техническую поддержку организации, предоставившей программный продукт, её имидж/бренд. Реальные деньги (а не жалкая зарплата) до программистов — специалистов, занимающихся кодом непосредственно — практически не доходят (в том числе по причине безвестности отдельно взятого разработчика такого продукта). Пользователям приходится иметь дело с организацией, с её техподдержкой, но только не со специалистами, не с авторами кода;&lt;/li&gt;&lt;li&gt;только владелец авторских прав на GPL-код работает на себя, все остальные — безвестные наймиты — рабы корпораций, работают на техподдержку;&lt;/li&gt;&lt;/ul&gt;Только равноправное партнёрство между заказчиком (работодателем) и программистом (автором и свободным программистом) может принести продуктивные плоды обоим. И не надо говорить, что GPL для программистов лучше, чем EULA. Это не так!&lt;br /&gt;&lt;br /&gt;Программные продукты под BSDL (и BSD-like лицензиями, APL, MPL) для сопровождения требуют специалиста, то есть непосредственно того, кто писал код или может дописать код. Притом не важно, как дальше будет растространятся изменённый код — лицензия на BSDL-исходники практически не оговаривает ограничения на производный код.&lt;br /&gt;&lt;br /&gt;Кому выгодно выкладывать купленные патчи в открытый доступ, если на них строится весь бизнес? Никому. Никакого профита от "уникальности" в случае GPL-продукта не получится, так как уникальность будет растворена в тех же самых продуктах конкурентов "благодаря" лицензии. А вот партнёрство в основе BSD-like продуктов очень даже возможно. Здесь меньше всего препон для зарабатывания денег на том, что лучше всего умеет автор продукта и специалист, который знает продукт и способен его переработать под нужды заказчика. К тому же, в силу копирайта сохраняется имя автора продукта, и реальные деньги "находят" автора и специалистов мгновенно — по упоминанию их имён в тексте лицензии.&lt;br /&gt;&lt;br /&gt;Коммерческая ценность для программиста в самом коде, а не услугах по эникейству. GPL защищает только того, кому принадлежат имущественные права на исходный код продукта. BSDL защищает авторские права всех программистов, которые приняли участие в написании кода.&lt;br /&gt;&lt;br /&gt;Выбор у тебя небольшой: будь программистом или стань эникеем техподдержки. Получай жалкую зарплату, работая с GPL- и EULA-лицензированным продуктом, или зарабатывай деньги и славу своим трудом (программиста) на BSD-like продуктах.&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Ссылки по теме&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://lionet.livejournal.com/31952.html"&gt;BSD License Fears&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-114911019529280095?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/114911019529280095/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=114911019529280095' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/114911019529280095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/114911019529280095'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/01/bsdl.html' title='BSDL даёт работу программистам'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-8948736206144841964</id><published>2010-01-16T09:40:00.005+03:00</published><updated>2010-01-16T14:30:17.327+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Google переводит свои сервера на ext4</title><content type='html'>В настоящий момент корпорация Google производит апгрейд файловой системы своих серверов с ext2 на более современную ext4.&lt;br /&gt;&lt;br /&gt;&lt;q&gt;Мы произвели множество тестов с помощью стандартных инструментов (dbench, compile bench и др.) на файловых системах xfs, ext4 и jfs, чтобы выбрать наиболее подходящую.&lt;br /&gt;&lt;br /&gt;При наших рабочих нагрузках производительность ext4 и xfs практически одинакова. Тот факт, что обновление на ext4 будет более плавным, оказался ключевым. Благодаря ext4 уже сейчас мы избавились от узкого места для некоторых из наших самых ресурсоемких приложений.&lt;/q&gt;&lt;br /&gt;&lt;br /&gt;Для проведения апгрейда Google даже пригласила главного разработчика файловых систем ext2/ext3/ext4 Теда Т'со (Ted T'so).&lt;br /&gt;&lt;br /&gt;А теперь посмотрите на список рассматриваемых ФС и поймите, почему ZFS (или UFS2) не в списке.&lt;br /&gt;&lt;br /&gt;ВСЁ_ОЧЕВИДНО: ПЕАР LINUX.&lt;br /&gt;&lt;br /&gt;"Linux" для тех, кто не в теме, для простых пользователей стало синонимом не только открытого софта, но и ДОСТУПНОГО_НАБОРА_УСЛУГ.&lt;br /&gt;&lt;br /&gt;Брэнд "Linux" создаёт бесплатную РЕКЛАМУ для продвижения сопутствующих товаров и услуг. Как слухификация населения страны в годы контролируемого радио создавала массовый ажиотаж на соль, спички, мыло, сахар, так и вирусная &lt;s&gt;эпидемия&lt;/s&gt;реклама Linux создаёт массовый ажиотаж на программные продукты довольно низкого качества, зато доступные и практически бесплатные. Поначалу.&lt;br /&gt;&lt;br /&gt;"Платность" получается, когда люди требуют поддержку. И она будет у Linux всегда, так как продукт весьма посредственный в силу "базарной" модели разработки.&lt;br /&gt;&lt;br /&gt;Первоначально скрытые рекламным психозом  издержки выливаются в дальнейшее плодотворное сотрудничество по схеме:&lt;br /&gt;&lt;br /&gt;вендор &lt;--&gt; потребитель (он же тестировщик по совместительству).&lt;br /&gt;&lt;br /&gt;Все издержки по тестированию и доведению продукта до приемлемого уровня качества перекладываются с производителя дистрибутива на потребителя.&lt;br /&gt;&lt;br /&gt;И это логично. Потому что большие проекты НЕ_МОГУТ развиваться силами одного лишь мелкого (по сравнению с Microsoft) вендора, который конкурирует с такими же мелкими вендорами, без участия и обратной связи с потребителем или, лучше всего, таким крупным "потребителем платформы" как Google и IBM.&lt;br /&gt;&lt;br /&gt;Вот она суть пеара Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-8948736206144841964?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/8948736206144841964/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=8948736206144841964' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8948736206144841964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8948736206144841964'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/01/google-ext4.html' title='Google переводит свои сервера на ext4'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-5802015541417092296</id><published>2010-01-08T10:31:00.002+03:00</published><updated>2010-01-08T10:56:14.702+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>GNU/Linux не для программистов</title><content type='html'>В контексте использования Linux НИГДЕ не говорится о зарабатывании денег программированием. Программисты GNU/Linux не могут зарабатывать тем, что они умеют лучше всего!!&lt;br /&gt;&lt;br /&gt;И после этого кто-то будет утверждать, что программисты могут заработать денег своими мозгами? Да, только не в GNU/Linux!&lt;br /&gt;&lt;br /&gt;GNU/Linux (~10-15% рынка с коммерческим сопровождением) вытеснило другое коммерческое Open Source (примерно 1% рынка с коммерческим сопровождением) на задворки цивилизации и представляет собой настоящий непрошибаемый барьер для других открытых операционных систем и решений. Узурпация майнстрима движения явно неспроста.&lt;br /&gt;&lt;br /&gt;Кому это выгодно?&lt;br /&gt;&lt;br /&gt;Для Microsoft и Apple решения на базе GNU/Linux — всего лишь писк комара над ухом, не более. Им оно не конкурент В_ПРИНЦИПЕ.&lt;br /&gt;Для Red-Hat, IBM, Oracle решения на базе GNU/Linux — всего лишь платформа для продвижения своих услуг и решений, этакий "паровозик с углём" ("рельсы" стоят денег).&lt;br /&gt;&lt;br /&gt;Так какого хрена программистам нужен GNU/Linux, если от написани кода для него получается только FUN? Деньги IBM никогда не подкинет даже в качестве пожертвования, не надейтесь. За какие такие заслуги программисты должны прислушиваться к речам фанатиков от Open Source, если оно GNU/Linux не приносит дохода от непосредственной деятельности программистам? Программисты GNU/Linux не могут зарабатывать тем, что они умеют лучше всего!!&lt;br /&gt;&lt;br /&gt;Программисты не идут на GNU/Linux. Они зарабатывают, работая под Windows.&lt;br /&gt;&lt;br /&gt;(Кстати, по статистике почти все коммерческие приложения на платформо-независимых языках, таких, как Java, JavaME, да те же ECMAScript и C# с PHP, разрабатываются на Windows, но никак не на Linux. На Linux они тестируются, если находится время и применение.)&lt;br /&gt;&lt;br /&gt;Не вкладывайте силы и мозги в GNU. Это не окупается, так как денег не приносит. На поприще GNU может заработать только техподдержка (Вы хотите работать в техподдержке? Сочувствую. Это как эникеем подрабатывать.).&lt;br /&gt;&lt;br /&gt;Когда программисты начнут зарабатывать, создавая открытый код, презирая уставки GNU, вот тогда Open Source возродится!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-5802015541417092296?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/5802015541417092296/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=5802015541417092296' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5802015541417092296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5802015541417092296'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/01/gnulinux.html' title='GNU/Linux не для программистов'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-3845414204051959149</id><published>2010-01-04T08:40:00.002+03:00</published><updated>2010-01-04T08:45:32.745+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='J2ME'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>J2ME на FreeBSD 8.0 [amd64]</title><content type='html'>Вчера разбирался с J2ME на FreeBSD 8.0 [amd64] чисто из спортивного интереса.&lt;br /&gt;&lt;br /&gt;В портах есть Sun WTK 2.2. Он ставится, но не работает под 64-битной Sun JDK 1.6: при запуске эмулятора телефона в KToolbar выводится ошибка работы графической библиотеки.&lt;br /&gt;&lt;br /&gt;Проблему решил следующим образом.&lt;br /&gt;Временно снёс нативный JDK1.6. Запустил линуксулатор (эмулятор Linux 2.6.16 + linux_base-f10); поставил 32-битный java/linux-sun-jdk16; установил java/sun-wtk с небольшой шлифовкой его конфигов (переименовал каталог wtklib/FreeBSD в wtklib/Linux); заново установил нативный JDK (64-битный). Оба JDK сосуществуют без проблем — при необходимости нужная JVM выбирается через панель управления настройками javaws. WTK 2.2 работает с собственными настройками: пути к линуксовой JVM автоматически прописаны в скрипты запуска его утилит при инсталляции.&lt;br /&gt;&lt;br /&gt;Sun JavaME SDK 2.5.2 похожим образом запустить не удалось — KToolbar при запуске эмулятора пишет об ошибке в распределении памяти shm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-3845414204051959149?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/3845414204051959149/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=3845414204051959149' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3845414204051959149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3845414204051959149'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2010/01/j2me-freebsd-80-amd64.html' title='J2ME на FreeBSD 8.0 [amd64]'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-2166437829014564523</id><published>2009-10-03T19:30:00.000+04:00</published><updated>2009-10-03T19:33:06.098+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='make'/><title type='text'>makeinfo: not found</title><content type='html'>При очередном обновлении портов заметил странную вещь:&lt;br /&gt;&lt;code&gt;% portupgrade -ap&lt;br /&gt;---&gt;  Upgrading 'libtool-2.2.6a' to 'libtool-2.2.6a_1' (devel/libtool22)&lt;br /&gt;---&gt;  Building '/usr/ports/devel/libtool22'&lt;br /&gt;===&gt;  Cleaning for libtool-2.2.6a_1&lt;br /&gt;===&gt;  Extracting for libtool-2.2.6a_1&lt;br /&gt;=&gt; MD5 Checksum OK for libtool-2.2.6a.tar.gz.&lt;br /&gt;=&gt; SHA256 Checksum OK for libtool-2.2.6a.tar.gz.&lt;br /&gt;===&gt;  Patching for libtool-2.2.6a_1&lt;br /&gt;===&gt;  Applying FreeBSD patches for libtool-2.2.6a_1&lt;br /&gt;/usr/bin/sed -i.bak -e 's|sed gsed|sed|g' /usr/obj/usr/ports/devel/libtool22/work/libtool-2.2.6/configure&lt;br /&gt;===&gt;  Configuring for libtool-2.2.6a_1&lt;br /&gt;## ------------------------- ##&lt;br /&gt;## Configuring libtool 2.2.6 ##&lt;br /&gt;## ------------------------- ##&lt;br /&gt;&lt;br /&gt;checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel&lt;br /&gt;checking whether build environment is sane... yes&lt;br /&gt;checking for a thread-safe mkdir -p... libltdl/config/install-sh -c -d&lt;br /&gt;checking for gawk... gawk&lt;br /&gt;checking whether make sets $(MAKE)... yes&lt;br /&gt;checking whether subdir libobjs are useable... yes&lt;br /&gt;.....&lt;br /&gt;make  all-recursive&lt;br /&gt;test -f doc/.dirstamp || make  doc/.dirstamp&lt;br /&gt;restore=: &amp;&amp; backupdir=".am$$" &amp;&amp;  am__cwd=`pwd` &amp;&amp; cd . &amp;&amp;  rm -rf $backupdir &amp;&amp; mkdir $backupdir &amp;&amp;  if (makeinfo --no-split --version) &gt;/dev/null 2&gt;&amp;1; then  for f in ./doc/libtool.info ./doc/libtool.info-[0-9] ./doc/libtool.info-[0-9][0-9] ./doc/libtool.i[0-9] ./doc/libtool.i[0-9][0-9]; do  if test -f $f; then mv $f $backupdir; restore=mv; else :; fi;  done;  else :; fi &amp;&amp;  cd "$am__cwd";  if makeinfo --no-split   -I doc -I ./doc  -o ./doc/libtool.info ./doc/libtool.texi;  then  rc=0;  cd .;  else  rc=$?;  cd . &amp;&amp;  $restore $backupdir/* `echo "././doc/libtool.info" | sed 's|[^/]*$||'`;  fi;  rm -rf $backupdir; exit $rc&lt;br /&gt;makeinfo: not found&lt;br /&gt;*** Error code 127&lt;br /&gt;&lt;br /&gt;Stop in /usr/obj/usr/ports/devel/libtool22/work/libtool-2.2.6.&lt;br /&gt;*** Error code 1&lt;br /&gt;&lt;br /&gt;Stop in /usr/obj/usr/ports/devel/libtool22/work/libtool-2.2.6.&lt;br /&gt;*** Error code 1&lt;br /&gt;&lt;br /&gt;Stop in /usr/obj/usr/ports/devel/libtool22/work/libtool-2.2.6.&lt;br /&gt;*** Error code 1&lt;br /&gt;&lt;br /&gt;Stop in /usr/ports/devel/libtool22.&lt;br /&gt;** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20091003-1547-1j96bj1-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=libtool-2.2.6a UPGRADE_PORT_VER=2.2.6a make DEPENDS_TARGET=package&lt;br /&gt;** Fix the problem and try again.&lt;br /&gt;** Listing the failed packages (-:ignored / *:skipped / !:failed)&lt;br /&gt; ! devel/libtool22 (libtool-2.2.6a) (unknown build error)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Оказывается, новый мир был собран с опцией &lt;i&gt;WITHOUT_INFO=true&lt;/i&gt; в файле &lt;i&gt;/etc/make.conf&lt;/i&gt;, а при очередной чистке устаревших библиотек система лишилась доступа к info-файлам установленных приложений.&lt;br /&gt;&lt;br /&gt;Решение этой проблемы найдено &lt;a href="http://www.cyberciti.biz/faq/freebsd-jail-makeinfo-not-found/"&gt;очень быстро&lt;/a&gt;:&lt;br /&gt;1) Убираем вредную строчку из &lt;i&gt;/etc/make.conf&lt;/i&gt; (и из &lt;i&gt;/etc/src.conf&lt;/i&gt;, если она там была);&lt;br /&gt;2) Собираем и устанавливаем недостающие библиотеки мира&lt;br /&gt;&lt;code&gt;% cd /usr/src/gnu/usr.bin/texinfo/&lt;br /&gt;% make &amp;&amp; make depend &amp;&amp; make install&lt;br /&gt;===&gt; libtxi (all)&lt;br /&gt;===&gt; makeinfo (all)&lt;br /&gt;===&gt; info (all)&lt;br /&gt;===&gt; infokey (all)&lt;br /&gt;===&gt; install-info (all)&lt;br /&gt;===&gt; texindex (all)&lt;br /&gt;===&gt; doc (all)&lt;br /&gt;===&gt; libtxi (depend)&lt;br /&gt;===&gt; makeinfo (depend)&lt;br /&gt;===&gt; info (depend)&lt;br /&gt;===&gt; infokey (depend)&lt;br /&gt;===&gt; install-info (depend)&lt;br /&gt;===&gt; texindex (depend)&lt;br /&gt;===&gt; doc (depend)&lt;br /&gt;===&gt; libtxi (install)&lt;br /&gt;===&gt; makeinfo (install)&lt;br /&gt;===&gt; info (install)&lt;br /&gt;===&gt; infokey (install)&lt;br /&gt;===&gt; install-info (install)&lt;br /&gt;===&gt; texindex (install)&lt;br /&gt;===&gt; doc (install)&lt;br /&gt;% rehash&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;После этого апгред порта проходит нормально.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-2166437829014564523?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/2166437829014564523/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=2166437829014564523' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/2166437829014564523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/2166437829014564523'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/10/makeinfo-not-found.html' title='makeinfo: not found'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-7693525322425543962</id><published>2009-09-05T19:08:00.008+04:00</published><updated>2010-06-22T17:05:37.315+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='USB-флэшка'/><title type='text'>FreeBSD: Automount</title><content type='html'>&lt;a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=109024"&gt;Известная проблема&lt;/a&gt; непривелегированного использования съёмных носителей с неродными файловыми системами с использованиеванием таблиц перекодирования символов (&lt;i&gt;mount_msdosfs: msdosfs_iconv: Operation not permitted&lt;/i&gt;) под FreeBSD может быть решена, собственно, самой системой.&lt;br /&gt;&lt;habracut/&gt;&lt;br /&gt;&lt;h4&gt;Как это есть&lt;/h4&gt;&lt;br /&gt;Обычный сценарий использования съёмного носителя под операционными системами класса Unix заключается в следующем:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Подсоединить устройство с носителем к внешнему интерфейсу (USB, SAS, FireWire).&lt;/li&gt;&lt;li&gt;Создать каталог-точку монтирования (если каталог не создан заранее).&lt;/li&gt;&lt;li&gt;Смонтировать сменный носитель в каталог-точку монтирования с опциями по перекодированию символов неродной файловой системы в родную файловую систему и обратно.&lt;/li&gt;&lt;li&gt;Поработать с файловой системой носителя.&lt;/li&gt;&lt;li&gt;Демонтировать сменный носитель.&lt;/li&gt;&lt;li&gt;Отсоединить устройство.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Все эти действия пользователь выполняет без какой-либо автоматизации, вручную!&lt;br /&gt;&lt;br /&gt;В отличие от вездесущего Linux-демона &lt;a href="http://ru.wikipedia.org/wiki/HAL_%28freedesktop.org%29"&gt;HAL&lt;/a&gt;, работающего в связке с &lt;a href="http://ru.wikipedia.org/wiki/PolicyKit"&gt;PolicyKit&lt;/a&gt; и демоном информационной шины &lt;a href="http://ru.wikipedia.org/wiki/D-Bus"&gt;D-Bus&lt;/a&gt;, встроенные системные средства FreeBSD позволяют обойтись без нагромождений стороннего софта. Естественно, модуль конвертации кодировок &lt;i&gt;msdosfs_iconv&lt;/i&gt; из одной системы в другую и обратно всё же должен быть прописан в автозагрузке в файле &lt;i&gt;/boot/loader.conf&lt;/i&gt; (&lt;i&gt;msdosfs_iconv_enable="YES"&lt;/i&gt;), либо вкомпилирован в ядро системы (&lt;i&gt;options MSDOSFS_ICONV&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;"Всё должно быть просто, но не так чтобы сильно." © кто-то из великих&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Преамбула&lt;/h4&gt;&lt;br /&gt;Только хозяин (&lt;i&gt;owner&lt;/i&gt;, создатель) каталога может производить в него монтирование устройств, работать с файловой системой смонтированого устройства как ему вздумается. Демон &lt;i&gt;devd(8)&lt;/i&gt; (device state change daemon) работает с системной (&lt;i&gt;root&lt;/i&gt;) учётной записью и у него нет понятия "текущий пользователь" (строго говоря, FreeBSD — это многопользовательская ОС, в которой одновременно работают различные процессы под разными учётными записями). В общем, демон &lt;i&gt;devd(8)&lt;/i&gt; имеет понятие только об устройствах (классах устройств) виртуальной файловой системы &lt;i&gt;devfs(8)&lt;/i&gt;, файловой системе вообще и событиях, случающихся в системе, но не имеет понятия, какой пользователь подсоединил или отсоединил девайс.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Фокус-покус&lt;/h4&gt;&lt;br /&gt;&lt;b&gt;Хорошая новость: FreeBSD больше не падает при отсоединении неотмонтированной флэшки&lt;/b&gt;. А именно это будет происходить всякий раз, при использовании следующего описания. Хотя и не страшно.&lt;br /&gt;&lt;br /&gt;Пишем в &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=devd.conf&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+8-current&amp;format=html"&gt;&lt;i&gt;/etc/devd.conf&lt;/i&gt;&lt;/a&gt; следующие строчки:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# Automount&lt;br /&gt;attach 10 {&lt;br /&gt;match "device-name" "umass[0-9]+";&lt;br /&gt;action "sleep 4 &amp;&amp; mkdir -p /media/$device-name &amp;&amp; fsck -t msdosfs /dev/da0s1 &amp;&amp; chown -R username /media/$device-name &amp;&amp; /sbin/mount_msdosfs -o sync -L ru_RU.UTF-8 -D CP1251 /dev/da0s1 /media/$device-name";&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;detach 10 {&lt;br /&gt;match "device-name" "umass[0-9]+";&lt;br /&gt;action "/sbin/umount /media/$device-name &amp;&amp; rm -r /media/$device-name";&lt;br /&gt;};&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Запускаем демон состояния виртуальной файловой системы устройств: &lt;br /&gt;&lt;pre&gt;% echo 'devd_enable="YES"' &gt;&gt; /etc/rc.conf&lt;br /&gt;% /etc/rc.d/devd start&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Или рестартуем его, если он работает (чтобы он перечитал свой конфиг):&lt;br /&gt;&lt;pre&gt;% /etc/rc.d/devd restart&lt;br /&gt;Stopping devd.&lt;br /&gt;Starting devd.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;На события &lt;i&gt;attach/detach&lt;/i&gt; демон &lt;i&gt;devd(8)&lt;/i&gt; реагирует следующим образом: определяет, какой тип устройства подключается/отключается (здесь: &lt;i&gt;umassНомерустройства&lt;/i&gt;) и совершает соответствующее действие (&lt;i&gt;action&lt;/i&gt;). Из описанных действий нетрудно понять, каким образом ведётся работа с флэшкой.&lt;br /&gt;&lt;br /&gt;При подсоединении съёмного носителя (флэшки) будет создан каталог &lt;i&gt;/media/umass0&lt;/i&gt;, носитель будет подвергнут проверке fsck и, если никаких ошибок не найдено, созданный каталог изменит владельца на &lt;i&gt;username&lt;/i&gt;, и в этот каталог смонтируется устройство &lt;i&gt;/dev/da0s1&lt;/i&gt; (первый слайс накопителя с файловой системой FAT). После этого пользователь, имеющий учётную запись &lt;i&gt;username&lt;/i&gt;, сможет работать с устройством как с собственным файловым хранилищем.&lt;br /&gt;&lt;br /&gt;Так как устройство работает в синхронном режиме, то есть данные на носитель пишутся и читаются последовательно, без отложенных операций, то ручное отмонтирование не трубуется — по завершении всех операций достаточно просто отсоединить устройство — это событие заставит демон &lt;i&gt;devd(8)&lt;/i&gt; выполнить действия по очистке точки монтирования, как в виртуальной файловой системе &lt;i&gt;devfs&lt;/i&gt; (демонтирует каталог &lt;i&gt;/dev/da0s1&lt;/i&gt;), так и в реальной файловой системе (удалит временный каталог &lt;i&gt;/media/umass0&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Три ложечки дёгтя&lt;/h4&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Необходимость в использовании имени учётной записи пользователя (&lt;i&gt;username&lt;/i&gt;), к которому привязывается точка монтирования;&lt;/li&gt;&lt;li&gt;Фиксированное название раздела носителя (&lt;i&gt;da0s1&lt;/i&gt;) не позволит смонтировать в автоматическом режиме другие носители;&lt;/li&gt;&lt;li&gt;Фиксированный тип файловой системы (&lt;i&gt;msdosfs&lt;/i&gt;) на монтируемом носителе не позволяет правилом &lt;i&gt;attach&lt;/i&gt; смонтировать носитель, с тем же названием раздела, но с отличной от FAT ФС.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;P.S.&lt;/h4&gt;&lt;br /&gt;Я имею представление о портах, позволяющих обходить проблему автомонтирования флэшек с разных сторон: &lt;a href="http://cvsweb.freebsd.org/ports/sysutils/kiconvtool"&gt;sysutils/kiconvtoo&lt;/a&gt;l и &lt;a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/automounter/"&gt;sysutils/automounter&lt;/a&gt;. Но лично у меня первый порт не заработал (ошибка осталась), а второй несколько избыточен по функциональности (надстройка над &lt;i&gt;amd(8)&lt;/i&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-7693525322425543962?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/7693525322425543962/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=7693525322425543962' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7693525322425543962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7693525322425543962'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/09/freebsd-automount.html' title='FreeBSD: Automount'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-4284124286760987758</id><published>2009-08-13T17:00:00.001+04:00</published><updated>2009-08-13T18:14:12.848+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Diablo JDK 1.6: ошибка в VM</title><content type='html'>&lt;h4&gt;Информация о системе&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;&gt; uname -rsm&lt;br /&gt;FreeBSD 8.0-BETA2 amd64&lt;/pre&gt; Дерево портов обновлено.&lt;br /&gt;&lt;h4&gt;Инсталляция и неудачный запуск&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% portinstall -p java/diablo-jdk16&lt;br /&gt;...&lt;br /&gt;===&gt;   Registering installation for diablo-jdk-1.6.0.07.02_5&lt;br /&gt;...&lt;br /&gt;===&gt;  Building package for diablo-jdk-1.6.0.07.02_5&lt;br /&gt;...&lt;br /&gt;===&gt;  Cleaning for diablo-jdk-1.6.0.07.02_5&lt;br /&gt;---&gt;  Cleaning out obsolete shared libraries&lt;br /&gt;[Updating the pkgdb &lt;format:bdb_btree&gt; in /var/db/pkg ... - 444 packages found (-0 +1) . done]&lt;br /&gt;% rehash&lt;br /&gt;% java -version&lt;br /&gt;Error occurred during initialization of VM&lt;br /&gt;Unable to load ZIP library: /usr/local/diablo-jdk1.6.0/jre/lib/amd64/libzip.so&lt;br /&gt;% &lt;/pre&gt;&lt;br /&gt;&lt;h5&gt;Решение проблемы&lt;/h5&gt;&lt;pre&gt;&lt;br /&gt;% echo "libz.so.4       libz.so.5 #for diablo-jdk1.6" &gt;&gt; /etc/libmap.conf&lt;br /&gt;% rehash&lt;br /&gt;% java -version&lt;br /&gt;Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)&lt;br /&gt;Diablo Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)&lt;br /&gt;% &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-4284124286760987758?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/4284124286760987758/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=4284124286760987758' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4284124286760987758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4284124286760987758'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/08/diablo-jdk-16-vm.html' title='Diablo JDK 1.6: ошибка в VM'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-257652093337741864</id><published>2009-08-12T18:15:00.007+04:00</published><updated>2009-08-12T21:50:11.363+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='GPT'/><title type='text'>Метки GPT для ZFS</title><content type='html'>Нужно создать ZFS пул с зеркалом из носителей, смонтированных по меткам GPT, чтобы не зависеть от имён устройств и номеров портов контроллёров.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Исходное состояние&lt;/h4&gt;&lt;br /&gt;Зеркало как таковое отсутствует: &lt;pre&gt;&lt;br /&gt;% zpool status&lt;br /&gt;  pool: amd64rio&lt;br /&gt; state: ONLINE&lt;br /&gt; scrub: none requested&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt; NAME        STATE     READ WRITE CKSUM&lt;br /&gt; amd64rio    ONLINE       0     0     0&lt;br /&gt;   ad6p3     ONLINE       0     0     0&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;/pre&gt;&lt;br /&gt;Включим в пул ещё один носитель (GPT-раздел устройства &lt;i&gt;ad10&lt;/i&gt;) — разметка разделов второго винчестера аналогична первому, так что здесь последовательность команд не приводится.&lt;br /&gt;&lt;h4&gt;Создание зеркала в пуле&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% zpool attach amd64rio /dev/ad6p3 /dev/ad10p3&lt;br /&gt;% zpool scrub amd64rio&lt;br /&gt;% zpool status&lt;br /&gt;  pool: amd64rio&lt;br /&gt; state: ONLINE&lt;br /&gt; scrub: scrub in progress for 0h0m, 0,00% done, 131h10m to go&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt; NAME        STATE     READ WRITE CKSUM&lt;br /&gt; amd64rio    ONLINE       0     0     0&lt;br /&gt;   mirror    ONLINE       0     0     0&lt;br /&gt;     ad6p3   ONLINE       0     0     0&lt;br /&gt;     ad10p3  ONLINE       0     0     0&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;/pre&gt;&lt;br /&gt;&lt;h4&gt;Состояние разметки устройств&lt;/h4&gt;&lt;br /&gt;Подготовительные операции для перехода на новую схему: &lt;pre&gt;&lt;br /&gt;% echo 'geom_label_load="YES"' &gt;&gt; /boot/loader.conf&lt;br /&gt;% shutdown -r now&lt;br /&gt;% glabel list&lt;br /&gt;Geom name: ad6p1&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gpt/rio_boot&lt;br /&gt;   Mediasize: 131072 (128K)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 256&lt;br /&gt;   length: 131072&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad6p1&lt;br /&gt;   Mediasize: 131072 (128K)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad6p1&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gptid/6e56389f-81a6-11de-8aa6-02508d92a2eb&lt;br /&gt;   Mediasize: 131072 (128K)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 256&lt;br /&gt;   length: 131072&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad6p1&lt;br /&gt;   Mediasize: 131072 (128K)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad6p2&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gpt/rio_swap&lt;br /&gt;   Mediasize: 2147483648 (2.0G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 4194304&lt;br /&gt;   length: 2147483648&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad6p2&lt;br /&gt;   Mediasize: 2147483648 (2.0G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad6p2&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gptid/e0fa02b3-81a6-11de-8aa6-02508d92a2eb&lt;br /&gt;   Mediasize: 2147483648 (2.0G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 4194304&lt;br /&gt;   length: 2147483648&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad6p2&lt;br /&gt;   Mediasize: 2147483648 (2.0G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad6p3&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gpt/rio_zfs&lt;br /&gt;   Mediasize: 317921280000 (296G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 620940000&lt;br /&gt;   length: 317921280000&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad6p3&lt;br /&gt;   Mediasize: 317921280000 (296G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad6p3&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gptid/1f26a2d6-81a7-11de-8aa6-02508d92a2eb&lt;br /&gt;   Mediasize: 317921280000 (296G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 620940000&lt;br /&gt;   length: 317921280000&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad6p3&lt;br /&gt;   Mediasize: 317921280000 (296G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad10p1&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gptid/a01d172c-81a6-11de-8aa6-02508d92a2eb&lt;br /&gt;   Mediasize: 131072 (128K)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 256&lt;br /&gt;   length: 131072&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad10p1&lt;br /&gt;   Mediasize: 131072 (128K)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad10p2&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gptid/e2aef92e-81a6-11de-8aa6-02508d92a2eb&lt;br /&gt;   Mediasize: 2147483648 (2.0G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 4194304&lt;br /&gt;   length: 2147483648&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad10p2&lt;br /&gt;   Mediasize: 2147483648 (2.0G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;&lt;br /&gt;Geom name: ad10p3&lt;br /&gt;Providers:&lt;br /&gt;1. Name: gptid/20db981e-81a7-11de-8aa6-02508d92a2eb&lt;br /&gt;   Mediasize: 317921280000 (296G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;br /&gt;   secoffset: 0&lt;br /&gt;   offset: 0&lt;br /&gt;   seclength: 620940000&lt;br /&gt;   length: 317921280000&lt;br /&gt;   index: 0&lt;br /&gt;Consumers:&lt;br /&gt;1. Name: ad10p3&lt;br /&gt;   Mediasize: 317921280000 (296G)&lt;br /&gt;   Sectorsize: 512&lt;br /&gt;   Mode: r0w0e0&lt;/pre&gt;&lt;br /&gt;&lt;h4&gt;Процесс отвязки носителей от "устройств"&lt;/h4&gt;&lt;br /&gt;&lt;h5&gt;1. Вывод из зеркала одного носителя и его полная очистка "для чистоты эксперимента"&lt;/h5&gt;&lt;pre&gt;&lt;br /&gt;% zpool detach amd64rio ad10p3&lt;br /&gt;% zpool status&lt;br /&gt;  pool: amd64rio&lt;br /&gt; state: ONLINE&lt;br /&gt; scrub: scrub in progress for 0h0m, 0,00% done, 69h45m to go&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt; NAME        STATE     READ WRITE CKSUM&lt;br /&gt; amd64rio    ONLINE       0     0     0&lt;br /&gt;   ad6p3     ONLINE       0     0     0&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;br /&gt;% dd if=/dev/zero of=/dev/ad10p3 bs=100m&lt;br /&gt;dd: /dev/ad10p3: short write on character device&lt;br /&gt;dd: /dev/ad10p3: end of device&lt;br /&gt;3032+0 records in&lt;br /&gt;3031+1 records out&lt;br /&gt;317921280000 bytes transferred in 5836.782166 secs (54468587 bytes/sec)&lt;/pre&gt;&lt;br /&gt;&lt;h5&gt;2. Задание метки&lt;/h5&gt;&lt;pre&gt;&lt;br /&gt;% gpart modify -i 3 -l rio_zfs2 ad10&lt;br /&gt;ad10p3 modified&lt;br /&gt;% shutdown -r now&lt;/pre&gt;&lt;br /&gt;&lt;h5&gt;3. Внесение носителя в зеркало&lt;/h5&gt;&lt;pre&gt;&lt;br /&gt;% zpool attach amd64rio ad6p3 gpt/rio_zfs2&lt;br /&gt;% zpool status&lt;br /&gt;  pool: amd64rio&lt;br /&gt; state: ONLINE&lt;br /&gt;status: One or more devices is currently being resilvered.  The pool will&lt;br /&gt; continue to function, possibly in a degraded state.&lt;br /&gt;action: Wait for the resilver to complete.&lt;br /&gt; scrub: resilver in progress for 0h3m, 17,22% done, 0h17m to go&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt; NAME              STATE     READ WRITE CKSUM&lt;br /&gt; amd64rio          ONLINE       0     0     0&lt;br /&gt;   mirror          ONLINE       0     0     0&lt;br /&gt;     ad6p3         ONLINE       0     0     0  7,80M resilvered&lt;br /&gt;     gpt/rio_zfs2  ONLINE       0     0     0  9,08G resilvered&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;/pre&gt;&lt;br /&gt;&lt;h5&gt;4. После окончания репликации проделываем аналогичную операцию с другим носителем&lt;/h5&gt;&lt;pre&gt;&lt;br /&gt;% zpool detach amd64rio ad6p3&lt;br /&gt;% zpool status&lt;br /&gt;  pool: amd64rio&lt;br /&gt; state: ONLINE&lt;br /&gt; scrub: none requested&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt; NAME            STATE     READ WRITE CKSUM&lt;br /&gt; amd64rio        ONLINE       0     0     0&lt;br /&gt;   gpt/rio_zfs2  ONLINE       0     0     0&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;br /&gt;% gpart modify -i 3 -l rio_zfs1 ad6&lt;br /&gt;ad6p3 modified&lt;br /&gt;% dd if=/dev/zero of=/dev/ad6p3 bs=100m&lt;br /&gt;dd: /dev/ad6p3: short write on character device&lt;br /&gt;dd: /dev/ad6p3: end of device&lt;br /&gt;3032+0 records in&lt;br /&gt;3031+1 records out&lt;br /&gt;317921280000 bytes transferred in 5950.955982 secs (53423564 bytes/sec)&lt;br /&gt;% shutdown -r now&lt;br /&gt;% zpool attach amd64rio gpt/rio_zfs2 gpt/rio_zfs1&lt;br /&gt;% zpool status&lt;br /&gt;  pool: amd64rio&lt;br /&gt; state: ONLINE&lt;br /&gt; scrub: resilver completed after 0h21m with 0 errors on Wed Aug 12 17:44:06 2009&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt; NAME              STATE     READ WRITE CKSUM&lt;br /&gt; amd64rio          ONLINE       0     0     0&lt;br /&gt;   mirror          ONLINE       0     0     0&lt;br /&gt;     gpt/rio_zfs2  ONLINE       0     0     0  123M resilvered&lt;br /&gt;     gpt/rio_zfs1  ONLINE       0     0     0  52,7G resilvered&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Это всё.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-257652093337741864?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/257652093337741864/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=257652093337741864' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/257652093337741864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/257652093337741864'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/08/gpt-zfs.html' title='Метки GPT для ZFS'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-1526053517923862016</id><published>2009-08-09T22:50:00.012+04:00</published><updated>2009-11-15T23:26:01.992+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='GPT'/><title type='text'>GPT и ZFS для FreeBSD</title><content type='html'>Имеется диск Western Digital серии Scorpio Blue&lt;br /&gt;(&lt;a href="http://www.wdc.com/ru/products/products.asp?driveid=377"&gt;WD3200BEVT&lt;/a&gt;, 320 ГБ; SATA 3 Гб/с; Кэш 8 МБ; 5400 об/мин).&lt;br /&gt;Вот его-то я и подготовлю для использования в FreeBSD 8.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Предисловие&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% echo 'zfs_load="YES"' &gt;&gt; /boot/loader.conf&lt;br /&gt;% shutdown -r now&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Начало&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% gpart create -s GPT ad6&lt;br /&gt;% gpart add -b 34 -s 256 -t freebsd-boot -l rio_boot ad6&lt;br /&gt;ad6p1 added&lt;br /&gt;% gpart add -b 290 -s 4194304 -t freebsd-swap -l rio_swap ad6&lt;br /&gt;ad6p2 added&lt;br /&gt;% gpart add -b 4194594 -s 620940000 -t freebsd-zfs -l rio_zfs ad6&lt;br /&gt;ad6p3 added&lt;br /&gt;% gpart show&lt;br /&gt;=&gt;       34  625142381  ad6  GPT  (298G)&lt;br /&gt;         34        256    1  freebsd-boot  (128K)&lt;br /&gt;        290    4194304    2  freebsd-swap  (2.0G)&lt;br /&gt;    4194594  620940000    3  freebsd-zfs  (296G)&lt;br /&gt;  625134594       7821       - free -  (3.8M)&lt;br /&gt;% gpart bootcode -b /boot/pmbr ad6&lt;br /&gt;ad6 has bootcode&lt;br /&gt;% gpart bootcode -p /boot/gptzfsboot -i 1 ad6&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Сначала было слово...&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% zpool create amd64rio /dev/ad6p3&lt;br /&gt;% zpool set bootfs=amd64rio amd64rio&lt;br /&gt;% zfs list&lt;br /&gt;NAME       USED  AVAIL  REFER  MOUNTPOINT&lt;br /&gt;amd64rio  67,5K   291G    18K  /amd64rio&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Он сказал: "Поехали!"&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% zfs set atime=off amd64rio&lt;br /&gt;% zfs create -o atime=on amd64rio/var&lt;br /&gt;% zfs create -o compression=gzip amd64rio/var/crash&lt;br /&gt;% zfs create -o readonly=on amd64rio/var/empty&lt;br /&gt;% zfs create amd64rio/var/tmp&lt;br /&gt;% chmod 1777 /amd64rio/var/tmp&lt;br /&gt;% zfs create amd64rio/var/db&lt;br /&gt;% zfs create amd64rio/usr&lt;br /&gt;% zfs create amd64rio/usr/home&lt;br /&gt;% zfs create amd64rio/usr/local&lt;br /&gt;% zfs create amd64rio/usr/obj&lt;br /&gt;% zfs create -o compression=gzip amd64rio/usr/ports&lt;br /&gt;% zfs create -o compression=off amd64rio/usr/ports/distfiles&lt;br /&gt;% zfs create -o compression=gzip amd64rio/usr/src&lt;br /&gt;% zfs create amd64rio/tmp&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Результат&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% zfs list&lt;br /&gt;NAME                           USED  AVAIL  REFER  MOUNTPOINT&lt;br /&gt;amd64rio                       387K   291G    22K  /amd64rio&lt;br /&gt;amd64rio/tmp                    18K   291G    18K  /amd64rio/tmp&lt;br /&gt;amd64rio/usr                   114K   291G    23K  /amd64rio/usr&lt;br /&gt;amd64rio/usr/home               18K   291G    18K  /amd64rio/usr/home&lt;br /&gt;amd64rio/usr/local              18K   291G    18K  /amd64rio/usr/local&lt;br /&gt;amd64rio/usr/obj                18K   291G    18K  /amd64rio/usr/obj&lt;br /&gt;amd64rio/usr/ports              37K   291G    19K  /amd64rio/usr/ports&lt;br /&gt;amd64rio/usr/ports/distfiles    18K   291G    18K  /amd64rio/usr/ports/distfiles&lt;br /&gt;amd64rio/usr/src                18K   291G    18K  /amd64rio/usr/src&lt;br /&gt;amd64rio/var                    95K   291G    23K  /amd64rio/var&lt;br /&gt;amd64rio/var/crash              18K   291G    18K  /amd64rio/var/crash&lt;br /&gt;amd64rio/var/db                 18K   291G    18K  /amd64rio/var/db&lt;br /&gt;amd64rio/var/empty              18K   291G    18K  /amd64rio/var/empty&lt;br /&gt;amd64rio/var/tmp                18K   291G    18K  /amd64rio/var/tmp&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Проверка&lt;/h4&gt;&lt;pre&gt;&lt;br /&gt;% zpool export amd64rio&lt;br /&gt;% zpool import amd64rio&lt;br /&gt;% zpool status&lt;br /&gt;  pool: amd64rio&lt;br /&gt; state: ONLINE&lt;br /&gt; scrub: none requested&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt; NAME        STATE     READ WRITE CKSUM&lt;br /&gt; amd64rio    ONLINE       0     0     0&lt;br /&gt;   ad6p3     ONLINE       0     0     0&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;На этом пока всё.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Полезные ссылки&lt;/h4&gt;&lt;lo&gt;&lt;li&gt;&lt;a href="http://docs.sun.com/app/docs/doc/820-0836?l=ru"&gt;Руководство по администрированию файловых систем ZFS Solaris&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide"&gt;ZFS Best Practice Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.sun.com/roch/entry/when_to_and_not_to"&gt;WHEN TO (AND NOT TO) USE RAID-Z&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/lo&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-1526053517923862016?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/1526053517923862016/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=1526053517923862016' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1526053517923862016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1526053517923862016'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/08/gpt-zfs-freebsd.html' title='GPT и ZFS для FreeBSD'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-5340082496877136660</id><published>2009-07-23T19:35:00.000+04:00</published><updated>2009-07-23T19:37:42.177+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xfce'/><category scheme='http://www.blogger.com/atom/ns#' term='Conky'/><title type='text'>Conky в Xfce 4.6.1</title><content type='html'>Настроил монитор ресурсов Conky. При ручном запуске в текущем сеансе Xfce всё, что надо, отображается и работает. Но когда ставлю его в автозагрузку ("Сеансы и запуск" в настройках Xfce), то Conky появляется ненадолго и исчезает — прогружается девственно-чистый Рабочий стол Xfce. В процессах текущего сеанса Conky нет.&lt;br /&gt;&lt;br /&gt;Как это исправить?&lt;br /&gt;&lt;br /&gt;1. Опции сборки Conky следующие (см. файл &lt;span style="font-style:italic;"&gt;/var/db/ports/conky/options&lt;/span&gt;):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# This file is auto-generated by 'make config'.&lt;br /&gt;# No user-servicable parts inside!&lt;br /&gt;# Options for conky-1.7.1.1_1&lt;br /&gt;_OPTIONS_READ=conky-1.7.1.1_1&lt;br /&gt;WITHOUT_AUDACIOUS=true&lt;br /&gt;WITHOUT_BMPX=true&lt;br /&gt;WITHOUT_LUA=true&lt;br /&gt;WITHOUT_MPD=true&lt;br /&gt;WITHOUT_XMMS2=true&lt;br /&gt;WITH_DOUBLE_BUFFER=true&lt;br /&gt;WITHOUT_IMLIB2=true&lt;br /&gt;WITH_XFT=true&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. Простенький скрипт запуска Conky с &lt;span style="font-weight:bold;"&gt;задержкой&lt;/span&gt; в несколько секунд для того, чтобы полностью прогрузилось окно Рабочего стола Xfwm и не закрывало окно Conky:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#!/bin/sh&lt;br /&gt;(sleep 5 &amp;&amp; conky)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Файл скрипта должен быть исполняемым:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&gt; chmod 755 /other/path/to/conky.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Поместить команду на запуск этого скрипта в автозагрузку Xfce: Настройки -&gt; Сеансы и запуск -&gt; вкладка Автозапуск приложений, по кнопке Добавить нужно указать имя приложения и полный путь к файлу скрипта.&lt;br /&gt;&lt;br /&gt;3. Наконец, файл настроек &lt;span style="font-style:italic;"&gt;~/.conkyrc&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# Conky, a system monitor, based on torsmo&lt;br /&gt;#&lt;br /&gt;# Any original torsmo code is licensed under the BSD license&lt;br /&gt;#&lt;br /&gt;# All code written since the fork of torsmo is licensed under the GPL&lt;br /&gt;#&lt;br /&gt;# Please see COPYING for details&lt;br /&gt;#&lt;br /&gt;# Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen&lt;br /&gt;# Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)&lt;br /&gt;# All rights reserved.&lt;br /&gt;#&lt;br /&gt;# This program is free software: you can redistribute it and/or modify&lt;br /&gt;# it under the terms of the GNU General Public License as published by&lt;br /&gt;# the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;# (at your option) any later version.&lt;br /&gt;#&lt;br /&gt;# This program is distributed in the hope that it will be useful,&lt;br /&gt;# but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;# GNU General Public License for more details.&lt;br /&gt;# You should have received a copy of the GNU General Public License&lt;br /&gt;# along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;#alignment top_left&lt;br /&gt;alignment top_right&lt;br /&gt;#alignment bottom_left&lt;br /&gt;#alignment bottom_right&lt;br /&gt;&lt;br /&gt;background no&lt;br /&gt;border_margin 9&lt;br /&gt;border_width 1&lt;br /&gt;&lt;br /&gt;cpu_avg_samples 2&lt;br /&gt;default_color grey90&lt;br /&gt;default_shade_color black&lt;br /&gt;default_outline_color DarkGrey&lt;br /&gt;&lt;br /&gt;draw_borders no&lt;br /&gt;draw_graph_borders yes&lt;br /&gt;draw_outline no&lt;br /&gt;draw_shades yes&lt;br /&gt;double_buffer yes&lt;br /&gt;use_xft yes&lt;br /&gt;#xftfont DejaVu Sans Mono:size=9&lt;br /&gt;xftfont Monaco CY:size=9&lt;br /&gt;# Text alpha when using Xft&lt;br /&gt;xftalpha 0.5&lt;br /&gt;gap_x 8&lt;br /&gt;gap_y 8&lt;br /&gt;minimum_size 300 600&lt;br /&gt;net_avg_samples 2&lt;br /&gt;no_buffers yes&lt;br /&gt;out_to_console no&lt;br /&gt;out_to_stderr no&lt;br /&gt;override_utf8_locale yes&lt;br /&gt;own_window no&lt;br /&gt;own_window_class Conky&lt;br /&gt;own_window_hints undecorated,below,above,sticky,skip_taskbar,skip_pager&lt;br /&gt;own_window_type desktop&lt;br /&gt;stippled_borders 1&lt;br /&gt;total_run_times 0&lt;br /&gt;update_interval 3&lt;br /&gt;uppercase no&lt;br /&gt;use_spacer no&lt;br /&gt;show_graph_scale no&lt;br /&gt;show_graph_range no&lt;br /&gt;&lt;br /&gt;TEXT&lt;br /&gt;${color #ffcb48}$nodename ${color #828282}$sysname $kernel [$machine]${color #ffcb48} ${hr 2}&lt;br /&gt;${color #98c2c7}FRQ :$color $freq${color grey}MHz&lt;br /&gt;${color #98c2c7}THR :$color $acpitemp°C&lt;br /&gt;${color #98c2c7}RAM :$color $mem $memmax $memperc% ${color #78af78}${membar 4}${alignr 0}&lt;br /&gt;${color #98c2c7}SWAP:$color $swap   $swapmax $swapperc% ${color #78af78}${swapbar 4}&lt;br /&gt;${color #98c2c7}CPU :$color $cpu% ${color #78af78}${cpubar 4}&lt;br /&gt;${color #78af78}${cpugraph #78af78 #a3a3a3}&lt;br /&gt;&lt;br /&gt;${color #ffcb48}FS ${hr 2}&lt;br /&gt;${color #98c2c7}/      : $color${fs_used /}  ${fs_size /} ${alignr 90}${color #78af78}${fs_bar 6 /}&lt;br /&gt;${color #98c2c7}/local : $color${fs_used /usr/local}  ${fs_size /usr/local} ${alignr 90}${color #78af78}${fs_bar 6 /usr/local}&lt;br /&gt;${color #98c2c7}/home  : $color${fs_used /usr/home}   ${fs_size /usr/home} ${alignr 90}${color #78af78}${fs_bar 6 /usr/home}&lt;br /&gt;&lt;br /&gt;${color #ffcb48}NETWORKING ${hr 2}&lt;br /&gt;${color #98c2c7}${alignr 0}TOTAL&lt;br /&gt;${color #98c2c7}UP   :$color ${upspeed nfe0}$color ${alignr 0}${totalup nfe0}&lt;br /&gt;${color #98c2c7}DOWN :$color ${downspeed nfe0}$color ${alignr 0}${totaldown nfe0}&lt;br /&gt;${color #78af78}${downspeedgraph nfe0 #104E8B #0077ff}&lt;br /&gt;&lt;br /&gt;${color #ffcb48}PROCESSING ${hr 2}&lt;br /&gt;${color #98c2c7}NAME              PID   CPU%   MEM%&lt;br /&gt;${color #e5e5e5}${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}&lt;br /&gt;${color #c4c4c4}${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}&lt;br /&gt;${color #a3a3a3}${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}&lt;br /&gt;${color #828282}${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}&lt;br /&gt;${color #676767}${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5}&lt;br /&gt;${color #98c2c7}PROCESSES :$color $processes&lt;br /&gt;${color #98c2c7}UPTIME    :$color $uptime&lt;br /&gt;&lt;br /&gt;${color #ffcb48}TIME ${hr 2}&lt;br /&gt;${color #e5e5e5}${font Arial Black:size=32}${alignc }${time %H:%M}${font}&lt;br /&gt;${color #e5e5e5}${font DejaVu Sans:size=9}${alignc }${time %A, %d %B %Y}&lt;br /&gt;&lt;br /&gt;${color #ffcb48}LOGGING ${hr 2}&lt;br /&gt;${color #e5e5e5}${font Monaco CY:size=7}${execi 10 tail -n25 /var/log/messages | fold -w50}${font}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Вот и всё!&lt;br /&gt;&lt;a href="http://izen.dev.juga.ru/image/FreeBSD7.2-STABLE-Conky-Xfce4.6.1.png"&gt;&lt;img width="50%" height="50%" src="http://izen.dev.juga.ru/image/FreeBSD7.2-STABLE-Conky-Xfce4.6.1.png" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-5340082496877136660?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/5340082496877136660/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=5340082496877136660' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5340082496877136660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5340082496877136660'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/06/conky-xfce-461.html' title='Conky в Xfce 4.6.1'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-5000548505273474290</id><published>2009-07-15T20:53:00.005+04:00</published><updated>2009-07-15T21:01:42.621+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox 3.5 и Java-plugin</title><content type='html'>Чтобы включить поддержку исполнения апплетов в firefox 3.5 на платформе [amd64], нужно проделать ряд несложных действий:&lt;br /&gt;&lt;br /&gt;1. Создать символическую ссылку на библиотеку &lt;i&gt;libjavaplugin_oji.so&lt;/i&gt; JRE в каталоге плагинов firefox:&lt;pre&gt;&lt;br /&gt;% cd /usr/local/lib/firefox3/plugins/&lt;br /&gt;% ln -s /usr/local/jdk1.6.0/jre/plugin/amd64/ns7/libjavaplugin_oji.so .&lt;/pre&gt;&lt;br /&gt;2. Активировать плагин в настройках Дополнений браузера.&lt;br /&gt;&lt;br /&gt;После этого браузер может загружать и запускать java-апплеты.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-5000548505273474290?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/5000548505273474290/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=5000548505273474290' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5000548505273474290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5000548505273474290'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/07/firefox-35-java-plugin.html' title='Firefox 3.5 и Java-plugin'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-1926224894383628119</id><published>2009-01-14T01:24:00.009+03:00</published><updated>2009-09-03T17:28:05.865+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat'/><title type='text'>JSF для Tomcat</title><content type='html'>JSF входит в поставку любого JEE-сервера приложений, но не в ходит в Tomcat, так как Tomcat только лишь контейнер Web-приложений, но никак не JEE-сервер.&lt;br /&gt;&lt;br /&gt;Однако можно заставить Tomcat работать как полноценный сервер JSF-приложений. И сейчас я расскажу как это сделать по шагам. (Будем считать, что у вас уже установлен и работает Apache Tomcat 6.0).&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Загрузите архив mojarra-1.2_09-b02-FCS-binary.zip с сайта https://javaserverfaces.dev.java.net/&lt;br /&gt;Распакуйте из этого архива библиотеки jsf-api.jar и jsf-impl.jar и положите их в каталог CATALINA_HOME/lib.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Перенесите библиотеки jstl.jar и standard.jar из каталога CATALINA_HOME/webapps/examples/WEB-INF/lib в каталог CATALINA_HOME/lib.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Создайте тестовое JSF-приложение.&lt;br /&gt;Структура каталогов:&lt;pre&gt;&lt;code&gt;&lt;br /&gt;CATALINA_HOME/webapps/loginjsf&lt;br /&gt;|-WEB-INF&lt;br /&gt;| |-classes&lt;br /&gt;| | |-com&lt;br /&gt;| |   |-corejsf&lt;br /&gt;| |     |-UserBean.class&lt;br /&gt;| |-web.xml&lt;br /&gt;| |-faces-config.xml&lt;br /&gt;|-index.html&lt;br /&gt;|-index.jsp&lt;br /&gt;|-welcome.jsp&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Исходник UserBean.java:&lt;pre&gt;&lt;br /&gt;package com.corejsf;&lt;br /&gt;&lt;br /&gt;public class UserBean {&lt;br /&gt;   private String name;&lt;br /&gt;   private String password;&lt;br /&gt;&lt;br /&gt;   // PROPERTY: name&lt;br /&gt;   public String getName() { return name; }&lt;br /&gt;   public void setName(String newValue) { name = newValue; }&lt;br /&gt;&lt;br /&gt;   // PROPERTY: password&lt;br /&gt;   public String getPassword() { return password; }&lt;br /&gt;   public void setPassword(String newValue) { password = newValue; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Содержимое файла&lt;br /&gt;CATALINA_HOME/webapps/loginjsf/WEB-INF/web.xml:&lt;pre&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;web-app&lt;/span&gt; &lt;span class="xml-attribute"&gt;xmlns&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-attribute"&gt;xmlns:xsi&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-attribute"&gt;xsi:schemaLocation&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-value"&gt;       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-attribute"&gt;version&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;2.5&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;servlet&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Faces Servlet&lt;span class="xml-tag"&gt;&amp;lt;/servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;servlet-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;javax.faces.webapp.FacesServlet&lt;span class="xml-tag"&gt;&amp;lt;/servlet-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;load-on-startup&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="xml-tag"&gt;&amp;lt;/load-on-startup&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;/servlet&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;servlet-mapping&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Faces Servlet&lt;span class="xml-tag"&gt;&amp;lt;/servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;url-pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;*.faces&lt;span class="xml-tag"&gt;&amp;lt;/url-pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;/servlet-mapping&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;welcome-file-list&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;index.html&lt;span class="xml-tag"&gt;&amp;lt;/welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;/welcome-file-list&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/web-app&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Содержимое файла&lt;br /&gt;CATALINA_HOME/webapps/loginjsf/WEB-INF/faces-config.xml:&lt;pre&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;faces-config&lt;/span&gt; &lt;span class="xml-attribute"&gt;xmlns&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-attribute"&gt;xmlns:xsi&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-attribute"&gt;xsi:schemaLocation&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-value"&gt;        http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-attribute"&gt;version&lt;/span&gt;=&lt;span class="xml-value"&gt;&amp;quot;1.2&amp;quot;&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;navigation-rule&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;from-view-id&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;/index.jsp&lt;span class="xml-tag"&gt;&amp;lt;/from-view-id&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;navigation-case&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="xml-tag"&gt;&amp;lt;from-outcome&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;login&lt;span class="xml-tag"&gt;&amp;lt;/from-outcome&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="xml-tag"&gt;&amp;lt;to-view-id&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;/welcome.jsp&lt;span class="xml-tag"&gt;&amp;lt;/to-view-id&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;/navigation-case&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;/navigation-rule&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;managed-bean&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;managed-bean-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;user&lt;span class="xml-tag"&gt;&amp;lt;/managed-bean-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;managed-bean-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;com.corejsf.UserBean&lt;span class="xml-tag"&gt;&amp;lt;/managed-bean-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;managed-bean-scope&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;session&lt;span class="xml-tag"&gt;&amp;lt;/managed-bean-scope&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="xml-tag"&gt;&amp;lt;/managed-bean&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/faces-config&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Содержимое файла&lt;br /&gt;CATALINA_HOME/webapps/loginjsf/WEB-INF/index.html:&lt;pre&gt;&lt;br /&gt;&lt;span class="tag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;html&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="tag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;head&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="tag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;meta&lt;/span&gt; &lt;span class="argument"&gt;http-equiv&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="value"&gt;&amp;quot;Refresh&amp;quot;&lt;/span&gt; &lt;span class="argument"&gt;content&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="value"&gt;&amp;quot;0; URL=index.faces&amp;quot;&lt;/span&gt;&lt;span class="tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="tag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;title&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;Start Web Application&lt;span class="tag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;title&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="tag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;head&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="tag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;body&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="tag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;p&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;Please wait for the web application to start.&lt;span class="tag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;p&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="tag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;body&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="tag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;html&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Содержимое файла&lt;br /&gt;CATALINA_HOME/webapps/loginjsf/WEB-INF/index.jsp:&lt;pre&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;html&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST1"&gt;&amp;lt;%@&lt;/span&gt;&lt;span class="ST2"&gt;page&lt;/span&gt; &lt;span class="attribute-name"&gt;contentType&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;text/html; charset=UTF-8&amp;quot;&lt;/span&gt; &lt;span class="attribute-name"&gt;pageEncoding&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span class="ST1"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST1"&gt;&amp;lt;%@&lt;/span&gt;&lt;span class="ST2"&gt; taglib&lt;/span&gt; &lt;span class="attribute-name"&gt;uri&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;http://java.sun.com/jsf/core&amp;quot;&lt;/span&gt; &lt;span class="attribute-name"&gt;prefix&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;f&amp;quot;&lt;/span&gt; &lt;span class="ST1"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST1"&gt;&amp;lt;%@&lt;/span&gt;&lt;span class="ST2"&gt; taglib&lt;/span&gt; &lt;span class="attribute-name"&gt;uri&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;http://java.sun.com/jsf/html&amp;quot;&lt;/span&gt; &lt;span class="attribute-name"&gt;prefix&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;h&amp;quot;&lt;/span&gt; &lt;span class="ST1"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;f:view&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;head&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;                  &lt;br /&gt;         &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;title&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;A Simple JavaServer Faces Application&lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;title&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;head&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;body&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h:form&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h3&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;Please enter your name and password.&lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;h3&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;table&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;               &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;tr&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;Name:&lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                     &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h:inputText&lt;/span&gt; &lt;span class="ST3"&gt;value&lt;/span&gt;&lt;span class="ST3"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;&lt;/span&gt;&lt;span class="scriptlet-delimiter"&gt;#{&lt;/span&gt;user.name&lt;span class="scriptlet-delimiter"&gt;}&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;&lt;/span&gt;&lt;span class="ST0"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;               &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;tr&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;            &lt;br /&gt;               &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;tr&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;Password:&lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                     &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h:inputSecret&lt;/span&gt; &lt;span class="ST3"&gt;value&lt;/span&gt;&lt;span class="ST3"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;&lt;/span&gt;&lt;span class="scriptlet-delimiter"&gt;#{&lt;/span&gt;user.password&lt;span class="scriptlet-delimiter"&gt;}&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;&lt;/span&gt;&lt;span class="ST0"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;td&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;               &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;tr&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;table&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;p&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;               &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h:commandButton&lt;/span&gt; &lt;span class="ST3"&gt;value&lt;/span&gt;&lt;span class="ST3"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;Login&amp;quot;&lt;/span&gt; &lt;span class="ST3"&gt;action&lt;/span&gt;&lt;span class="ST3"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;login&amp;quot;&lt;/span&gt;&lt;span class="ST0"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;p&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;h:form&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;body&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;f:view&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;html&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Содержимое файла&lt;br /&gt;CATALINA_HOME/webapps/loginjsf/WEB-INF/welcome.jsp:&lt;pre&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;html&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST1"&gt;&amp;lt;%@&lt;/span&gt;&lt;span class="ST2"&gt;page&lt;/span&gt; &lt;span class="attribute-name"&gt;contentType&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;text/html; charset=UTF-8&amp;quot;&lt;/span&gt; &lt;span class="attribute-name"&gt;pageEncoding&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span class="ST1"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST1"&gt;&amp;lt;%@&lt;/span&gt;&lt;span class="ST2"&gt; taglib&lt;/span&gt; &lt;span class="attribute-name"&gt;uri&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;http://java.sun.com/jsf/core&amp;quot;&lt;/span&gt; &lt;span class="attribute-name"&gt;prefix&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;f&amp;quot;&lt;/span&gt; &lt;span class="ST1"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="ST1"&gt;&amp;lt;%@&lt;/span&gt;&lt;span class="ST2"&gt; taglib&lt;/span&gt; &lt;span class="attribute-name"&gt;uri&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;http://java.sun.com/jsf/html&amp;quot;&lt;/span&gt; &lt;span class="attribute-name"&gt;prefix&lt;/span&gt;&lt;span class="ST1"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;h&amp;quot;&lt;/span&gt; &lt;span class="ST1"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;f:view&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;head&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;              &lt;br /&gt;         &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;title&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;A Simple JavaServer Faces Application&lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;title&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;head&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;body&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h:form&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h3&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;               Welcome to JavaServer Faces,&lt;br /&gt;               &lt;span class="ST0"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ST0"&gt;h:outputText&lt;/span&gt; &lt;span class="ST3"&gt;value&lt;/span&gt;&lt;span class="ST3"&gt;=&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;&lt;/span&gt;&lt;span class="scriptlet-delimiter"&gt;#{&lt;/span&gt;user.name&lt;span class="scriptlet-delimiter"&gt;}&lt;/span&gt;&lt;span class="attribute-value"&gt;&amp;quot;&lt;/span&gt;&lt;span class="ST0"&gt;/&amp;gt;&lt;/span&gt;!&lt;br /&gt;            &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;h3&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;h:form&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;body&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;      &lt;br /&gt;   &lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;f:view&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="ST0"&gt;html&lt;/span&gt;&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Откройте строку адреса http://127.0.0.1:8080/loginjsf/ в окне броузера и убедитесь, что JSF-приложение работает.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h4&gt;Литература&lt;/h4&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.williamspublishing.com/Books/978-5-8459-1396-8.html"&gt;Гери Д., Хорстманн К. «JavaServer Faces», Вильямс, 2008, ISBN 978-5-8459-1396-8, 978-0-13-173886-7&lt;/a&gt;&lt;br /&gt;В принципе подойдёт в качестве быстрого старта в деле программирования динамичных Web-страниц. Но не скажу, что книга для тех, кто не знает ЯП Java и язык разметки HTML. Кроме JSF рассматриваются несколько технологий Apache. Примеры не привязаны к конкретной среде программирования — нужен только Apache Ant для сборки проектов.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://info.okc.ru:8080/okc/publish/imag.nsf/book/978-5-91136-051-1"&gt;Дей Нейси, Мандел Лоренс, Райман Артур «Eclipse. Платформа Web-инструментов. Разработка Web-приложений на языке Java», КУДИЦ-ПРЕСС, 2008, ISBN 978-5-91136-051-1&lt;/a&gt;&lt;br /&gt;Учит вести Web-проекты на примерах и разбираться со средой и окружением Eclipse. Жаль, что издание на русском языке вышло позже оригинального издания года на два.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4&gt;Дополнительно&lt;/h4&gt;&lt;br /&gt;Включить по умолчанию отдачу контента в кодировке UTF-8 можно в &lt;i&gt;server.xml&lt;/i&gt; Tomcat'а:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt; connector&lt;br /&gt;   executor="tomcatThreadPool"&lt;br /&gt;   port="8080"&lt;br /&gt;   protocol="HTTP/1.1"&lt;br /&gt;   connectionTimeout="20000"&lt;br /&gt;   redirectPort="8443"&lt;br /&gt;   URIEncoding="utf-8"&lt;br /&gt;   useBodyEncodingForURI="utf-8"/&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-1926224894383628119?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/1926224894383628119/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=1926224894383628119' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1926224894383628119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1926224894383628119'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2009/01/jsf-tomcat.html' title='JSF для Tomcat'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-7487360090199131388</id><published>2008-12-15T20:37:00.006+03:00</published><updated>2008-12-15T21:27:52.070+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nimbus'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Xfce'/><title type='text'>FreeBSD: декорация окон в теме Nimbus</title><content type='html'>&lt;a href="http://izen.dev.juga.ru/image/FreeBSD7.1-PRERELEASE_Xfce4.4.3_Nimbus-theme.png"&gt;&lt;img src="http://izen.dev.juga.ru/image/FreeBSD7.1-PRERELEASE_Xfce4.4.3_Nimbus-theme.png" width="50%" height="50%"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;Как установить&lt;/h3&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Установить из порта тему Nimbus для элементов Gtk:&lt;pre&gt;&lt;br /&gt;% cd /usr/ports/x11-themes/nimbus/ &amp;&amp; make install clean&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Менеджер окон Xfce4 (xfwm4), устанавливаемый вместе со средой из порта, не имеет декорации окон для темы Nimbus, поэтому идём сюда:&lt;br /&gt;&lt;a href="http://www.xfce-look.org/content/show.php/Nimbus-Xfwm4?content=54833"&gt;http://www.xfce-look.org/content/show.php/Nimbus-Xfwm4?content=54833&lt;/a&gt;&lt;br /&gt;Скачиваем файлик &lt;i&gt;54833-Nimbus-Xfwm4.tar.bz2&lt;/i&gt;;&lt;br /&gt;распаковываем его содержимое в каталог &lt;i&gt;~/.themes&lt;/i&gt;.&lt;br /&gt;Перелогиниваемся и выбираем в настройках Xfce4: пользовательский интерфейс &lt;i&gt;nimbus&lt;/i&gt;; окна &lt;i&gt;Nimbus-Xfwm4&lt;/i&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-7487360090199131388?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/7487360090199131388/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=7487360090199131388' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7487360090199131388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7487360090199131388'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/12/freebsd-nimbus.html' title='FreeBSD: декорация окон в теме Nimbus'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-3235099233440043103</id><published>2008-10-14T23:19:00.006+04:00</published><updated>2009-08-13T17:08:21.568+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='J2ME'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse Ganymede 3.4.1 и Sun WTK 2.2</title><content type='html'>Ну наконец-то оно собралось и заработало.&lt;br /&gt;&lt;a href="http://izen.dev.juga.ru/image/Eclipse-3.4.1_Sun-WTK-2.2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FT3khCuHOUg/SPTxT8LsSQI/AAAAAAAAABs/p_HwEepBEes/s320/Eclipse-3.4.1_Sun-WTK-2.2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257091989923186946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Встречаем: порт &lt;i&gt;ports/java/eclipse-devel&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-3235099233440043103?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/3235099233440043103/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=3235099233440043103' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3235099233440043103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3235099233440043103'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/10/eclipse-ganymede-341-sun-wtk-22.html' title='Eclipse Ganymede 3.4.1 и Sun WTK 2.2'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FT3khCuHOUg/SPTxT8LsSQI/AAAAAAAAABs/p_HwEepBEes/s72-c/Eclipse-3.4.1_Sun-WTK-2.2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-3111941519242649844</id><published>2008-09-27T16:11:00.004+04:00</published><updated>2009-08-04T23:04:34.577+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xorg'/><category scheme='http://www.blogger.com/atom/ns#' term='Fonts'/><title type='text'>Google Droid Fonts</title><content type='html'>Скачал android-sdk-windows-1.0_r1.zip.&lt;br /&gt;&lt;br /&gt;Выдернул из него папку со шрифтами "Droid".&lt;br /&gt;&lt;br /&gt;Сделал на FreeBSD следующее:&lt;pre&gt;&lt;code&gt;% mkdir /usr/local/lib/X11/fonts/google/&lt;br /&gt;% cp -R /path/to/extract/android-sdk-windows-1.0_r1/tools/lib/fonts/default/ /usr/local/lib/X11/fonts/google/&lt;br /&gt;% cd /usr/ports/x11-fonts/ttmkfdir/ &amp;&amp; make install clean &amp;&amp; rehash&lt;br /&gt;% cd /usr/local/lib/X11/fonts/google/ &amp;&amp; ttmkfdir -o fonts.dir&lt;br /&gt;% xset fp+ /usr/local/lib/X11/fonts/google/&lt;br /&gt;% xset fp rehash&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Забыл, правда, добавить строчку: &lt;pre&gt;&lt;code&gt; FontPath  "/usr/local/lib/X11/fonts/google/"&lt;/code&gt;&lt;/pre&gt;  в секцию &lt;i&gt;Section "Files"&lt;/i&gt; файла /etc/X11/xorg.conf&lt;br /&gt;Но всё равно, все шрифты семейства Droid подцепились без этого и в Gtk-программах можно ими пользоваться. :)&lt;br /&gt;&lt;br /&gt;Пример шрифта &lt;i&gt;Droid Sans Mono 9&lt;/i&gt; в графическом терминале:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FT3khCuHOUg/SN4oX_rDgkI/AAAAAAAAABk/EpmA7jDOm-Y/s1600-h/Terminal_DroidMonoFonts.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FT3khCuHOUg/SN4oX_rDgkI/AAAAAAAAABk/EpmA7jDOm-Y/s320/Terminal_DroidMonoFonts.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5250678608254698050" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-3111941519242649844?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/3111941519242649844/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=3111941519242649844' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3111941519242649844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3111941519242649844'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/09/google-droid-fonts.html' title='Google Droid Fonts'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FT3khCuHOUg/SN4oX_rDgkI/AAAAAAAAABk/EpmA7jDOm-Y/s72-c/Terminal_DroidMonoFonts.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-7374551980188939125</id><published>2008-09-27T03:56:00.006+04:00</published><updated>2008-10-01T16:15:37.418+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Управление расширениями Eclipse</title><content type='html'>Среда Eclipse IDE имеет собственные средства управления плагинами. Можно сказать, что она вся из себя состоит из них.&lt;br /&gt;&lt;br /&gt;Вернее, она состоит из трёх частей:&lt;br /&gt;• Инструментальные средства разработки на языке Java — Java Development Tool (JDT);&lt;br /&gt;• Среда разработки модулей расширения — Plug-in Development Environment (PDE);&lt;br /&gt;• Платформа — Eclipse Platform.&lt;br /&gt;&lt;br /&gt;Это три основные функциональные возможности, каждая из которых группирует в себе те или иные модули расширения. Метафора &lt;i&gt;функциональных возможностей&lt;/i&gt; описывает один или более взаимосвязанных &lt;i&gt;модулей расширения&lt;/i&gt; или &lt;i&gt;вложенных функциональных возможностей&lt;/i&gt;, что критически важно для распространения и обновления программных продуктов на основе Eclipse, разрабатываемых различными компаниями. В случае с Eclipse IDE эти три функциональные возможности объединены в одну &lt;i&gt;Eclipse Project SDK&lt;/i&gt; (и неотключаемы из среды).&lt;br /&gt;&lt;br /&gt;Чтобы настроить среду на производственный лад, и не включать в неё все возможные расширения какие только есть на свете (а в разработке Eclipse участвуют тысячи разработчиков и компаний по всему миру), нужно знать, чем конкретно ты занимаешься и, соответственно, подбирать соответствующий инструментарий под задачу. Репозитории проекта Eclipse очень обширны и на сегодняшний день включают сотни модулей расширений и десятки функциональных возможностей. В мастере Software Updates/Find and Install из среды можно получить доступ к любому онлайновому репозиторию расширений Eclipse по всему миру. То есть можно, не выходя из среды, скачать необходимые расширения и таким образом настроить среду под себя как нужно. Другой путь: скачать готовый дистрибутив одним пакетом с главного сайта www.eclipse.org для решения какой-то одной задачи.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Недостатки «готового» дистрибутива&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Всё есть и всё тормозит. Много ненужных расширений, которые никогда не понадобятся в работе, а ресурсы на себя отнимают. Обновлять такую махину весьма накладно да и не нужно.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Недостатки «онлайновой» среды&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Каждый раз при поиске новых и обновлении установленных плагинов среда скачивает из интернета порядка 20МБ «оверхеда» в худшем случае. На небольших скоростях интернета невозможно по-нормальному собрать среду Eclipse из плагинов, ориентируясь исключительно на способности Eclipse (хотя с каждой новой версией среды оверхед всё меньше и меньше). Из-за ошибок обновления (бывает: что-то не срослось) приходится расширение качать заново или полностью переустанавливать среду — в последнем случае всё, что скачал &lt;s&gt;непосильным трудом&lt;/s&gt;, всё утрачивается. Да и со временем подкаталоги plugins и features Eclipse превращаются в форменную "помойку", которая тормозит среду и делает её весьма неустойчивой в работе из-за наложенных старых и новых расширений. Кроме того, в этом случае затрудняется межплатформенная переносимость модулей расширения — не так просто выбрать и перенести автоматически скачанные модули расширений на другой компьютер в другую систему.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Выход есть&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Разработчики модулей расширений распространяют их в архивах, чаще всего в ZIP, допускающие интеграцию в среду. Eclipse, в свою очередь, позволяет &lt;i&gt;ручную&lt;/i&gt; установку функциональных возможностей во &lt;b&gt;внешние&lt;/b&gt; (по отношению к среде) каталоги, не захламляя подкаталоги самой среды — plugins и features.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Что это значит?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Модули расширения&lt;/i&gt; распространяются в виде архивов ZIP и не включают в себя файлы с определением функциональных возможностей. Но, как правило, такой архив и есть та самая &lt;i&gt;функциональная возможность&lt;/i&gt;, которую необходимо интегрировать в среду. Нам же предлагается скачать архив (архивы — не забыв о возможных зависимых расширениях) по ссылке в браузере, либо по полученному по почте URL сохранить его(их) в надёжном месте.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Что делать?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Всё просто. Обычно структура каталогов архива с модулями расширения повторяет структуру каталогов среды, то есть там есть подкаталоги &lt;i&gt;plugins&lt;/i&gt; и &lt;i&gt;features&lt;/i&gt;. Ни в коем случае эти каталоги нельзя копировать в каталог среды Eclipse — среда их никогда не найдёт!&lt;br /&gt;&lt;br /&gt;Делаем следующее: создаём отдельный каталог и разархивируем в него содержимое архива. Далее, в основном каталоге среды Eclipse отыскиваем файл &lt;i&gt;".eclipseproduct"&lt;/i&gt; и копируем его под именем &lt;i&gt;".eclipseextension"&lt;/i&gt; в подкаталог распакованного архива, чтобы этот файл был в одном каталоге с каталогами &lt;i&gt;plugins&lt;/i&gt; и &lt;i&gt;features&lt;/i&gt; новых модулей расширения. Осталось подключить получившуюся &lt;i&gt;функциональную возможность&lt;/i&gt; к среде Eclipse.&lt;br /&gt;&lt;br /&gt;Открываем менеджер конфигурации из меню среды: Help -&gt; Software Updates -&gt; Manage Configuration,  и из всплывающего меню над пунктом &lt;i&gt;"Eclipse SDK"&lt;/i&gt; выбираем: Add -&gt; Extension Location, далее указываем каталог с файлом &lt;i&gt;.eclipseextension&lt;/i&gt;. Среда подхватывает новые модули расширения и после рестарта в менеджере конфигурации нужно убедиться, активированы ли они. А в диалоге &lt;i&gt;About&lt;/i&gt; среды, нажав на соответствующие кнопки, посмотреть на установленные плагины и &lt;i&gt;features&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Если не работает&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Бывает, что новейшие версии модулей расширения всё-таки несовместимы с используемой версией среды Eclipse, и из-за этого они не включаются — в этом случае нужно просто закрыть Eclipse, удалить каталог с этими модулями расширения (это не повредит самой среде). Далее точнее выбрать версию расширения и скачать нужный архив. Затем проделать описанную выше операцию снова.&lt;br /&gt;&lt;br /&gt;Иногда устанавливаемые расширения зависят от других расширений. И при отсутствии последних не включаются:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FT3khCuHOUg/SN13NsOgS3I/AAAAAAAAABU/qzxx2PAFfwQ/s1600-h/Eclipse_3.3.2-Manage_Configuration.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FT3khCuHOUg/SN13NsOgS3I/AAAAAAAAABU/qzxx2PAFfwQ/s320/Eclipse_3.3.2-Manage_Configuration.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5250483817677867890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Решение этой проблемы тоже простое: надо сначала установить и проверить, включены ли все необходимые "базовые" расширения, а потом включить всё остальное.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Что в итоге&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;В итоге мы имеем: &lt;s&gt;котлеты — отдельно, мухи — отдельно&lt;/s&gt; в общем-то "чистую" среду, независимо от установленных расширений, всегда готовую к самостоятельному обновлению; и плагины, тоже в общем-то, в какой-то степени независимые от среды, которые легко обновить и перестроить.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FT3khCuHOUg/SN18mFMqrtI/AAAAAAAAABc/uKudga6QeOs/s1600-h/Eclipse-3.3.2_Manage_Configuration-All.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FT3khCuHOUg/SN18mFMqrtI/AAAAAAAAABc/uKudga6QeOs/s320/Eclipse-3.3.2_Manage_Configuration-All.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5250489734256045778" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-7374551980188939125?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/7374551980188939125/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=7374551980188939125' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7374551980188939125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7374551980188939125'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/09/eclipse.html' title='Управление расширениями Eclipse'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FT3khCuHOUg/SN13NsOgS3I/AAAAAAAAABU/qzxx2PAFfwQ/s72-c/Eclipse_3.3.2-Manage_Configuration.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-6392580672594914881</id><published>2008-04-08T20:50:00.007+04:00</published><updated>2010-04-26T21:16:29.165+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat'/><title type='text'>Apache Tomcat 6.0 во FreeBSD 7.0</title><content type='html'>&lt;b&gt;Apache Tomcat как Web-сервер? Почему нет?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Контейнер &lt;i&gt;JavaServer Pages&lt;/i&gt; и &lt;i&gt;Java Servlets&lt;/i&gt; по совместительству может выполнять функции Web-сервера. То есть нативные Web-сервера, получается, не так уж нужны, учитывая потенциальную небезопасность кода C/C++, на котором они написаны.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Предпосылки&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Итак, Apache Tomcat, написанный на 100% pure-Java ЯП, вполне способен справиться с возложенными на него функциями Web-сервера.&lt;br /&gt;&lt;br /&gt;Пока же мне нужно ввести в опытную эксплуатацию Web-сервер на домашней машине — Локалхосте — как любят выражаться прадвинутые одмины. Ну что ж, за дело!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Решение&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Установка Apache Tomcat 6.0 во FreeBSD не должна вызвать трудностей. Порт &lt;i&gt;ports/www/tomcat6&lt;/i&gt; устанавливается обычным образом.&lt;br /&gt;&lt;br /&gt;2. Для обеспечения удалённого управления Apache Tomcat нужно отредактировать файл &lt;i&gt;/usr/local/apache-tomcat6.0/conf/tomcat-users.xml&lt;/i&gt;&lt;br /&gt;Задание аккаунта менеджера сервера:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt; ?xml version='1.0' encoding='utf-8'?&gt;&lt;br /&gt;&lt; tomcat-users&gt;&lt;br /&gt;  &lt; role rolename="manager"/&gt;&lt;br /&gt;  &lt; user username="tomadmin" password="secretword" roles="manager"/&gt;&lt;br /&gt;&lt; /tomcat-users&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;3. Чтобы Apache Tomcat прослушивал порт 8080 и обеспечивал обработку запросов через пул, необходимо в файле &lt;i&gt;/usr/local/apache-tomcat6.0/conf/server.xml&lt;/i&gt; раскомментировать блок&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;    &lt; Connector executor="tomcatThreadPool"&lt;br /&gt;               port="8080" protocol="HTTP/1.1" &lt;br /&gt;               connectionTimeout="20000" &lt;br /&gt;               redirectPort="8443" /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Возможно, также понадобиться добавить в файл &lt;i&gt;/usr/local/apache-tomcat6.0/bin/catalina.sh&lt;/i&gt; переменные окружения JAVA_HOME и CATALINA_HOME с абсолютными путями к каталогам JDK и Tomcat, соответственно, если Tomcat почему-либо не может быть запущен системой. Можно также задать переменную CATALINA_TMPDIR с каталогом &lt;i&gt;/tmp&lt;/i&gt; в качестве местоназначения, чтобы переопределить путь по умолчанию &lt;i&gt;$CATALINA_BASE/temp&lt;/i&gt;. Мне понадобилось внести в файл &lt;i&gt;catalina.sh&lt;/i&gt;  только эти две строки с переменными:&lt;pre&gt;&lt;br /&gt;JAVA_HOME=/usr/local/jdk1.6.0/&lt;br /&gt;CATALINA_TMPDIR=/tmp&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4. Автозапуск Apache Tomcat можно обеспечить, если в файл &lt;i&gt;/etc/rc.conf&lt;/i&gt; прописать следующую строчку:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;tomcat60_enable="YES"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Также можно прописать дополнительные опции:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;tomcat60_java_opts="-server"&lt;br /&gt;tomcat60_java_home="/usr/local/jdk1.6.0"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Опция &lt;i&gt;-server&lt;/i&gt; обеспечивает запуск Tomcat с серверной версией JVM, которая отличается более агрессивным сборщиком мусора GC, несколько другой стратегией управления памятью и JIT. Вторая строчка задаёт домашний каталог рабочего JDK.&lt;br /&gt;&lt;br /&gt;После этого можно перезагрузить машину и проверить, запустился ли сервер:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&gt; sockstat&lt;br /&gt;...&lt;br /&gt;www      java       697   28 tcp4   *:8180                *:*&lt;br /&gt;www      java       697   30 tcp4   *:8080                *:*&lt;br /&gt;www      java       697   39 tcp4   *:8009                *:*&lt;br /&gt;www      java       697   40 tcp4   127.0.0.1:8005        *:*&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Как видите, Web-сервер запущен и прослушивает порты 8180, 8080, 8009 и 8005.&lt;br /&gt;&lt;br /&gt;Чтобы просмотреть стартовую страничку Apache Tomcat, в любом браузере на локальной машине достаточно ввести URL:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;http://127.0.0.1:8080/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5. Apache Tomcat запускается и прослушивает входящие соединения на непривелегированных интернет-портах, что несколько неуклюже для настоящего Web-сервера. Запуск Tomcat на порту 80 возможен только от имени root'а.&lt;br /&gt;&lt;br /&gt;Решение проблемы прослушивания служебного порта HTTP :80 Tomcat возможно с использованием механизма &lt;i&gt;перенаправления IP-пакетов&lt;/i&gt;, доступного в IPFW и PF. Я выбрал PF в качестве перенаправителя пакетов со служебных портов на порты, которые прослушивает Tomcat в обычном состоянии.&lt;br /&gt;&lt;br /&gt;PF доступен в системе в виде модуля ядра. Для автоматического запуска PF при старте системы необходимо в файле &lt;i&gt;/etc/rc.conf&lt;/i&gt; прописать следующие строчки:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;pf_enable="YES"&lt;br /&gt;pf_rules="/etc/pf.conf"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Запуск пакетного фильтра в работающей системе осуществляется командой:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% pfctl -e&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;(Останов, соответственно — &lt;i&gt;pfctl -d&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;В файл &lt;i&gt;/etc/pf.conf&lt;/i&gt; достаточно добавить правила перенаправления для известных портов (всего две строчки):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;rdr on nve0 proto tcp from any to any port 80 -&gt; 127.0.0.1 \&lt;br /&gt;port 8080&lt;br /&gt;rdr on nve0 proto tcp from any to any port 81 -&gt; 127.0.0.1 \&lt;br /&gt;port 8081&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;(здесь: &lt;i&gt;nve0&lt;/i&gt; — сетевой интерфейс, на котором ожидаются HTTP-соединения с Tomcat)&lt;br /&gt;&lt;br /&gt;Проверка новых правил на пакетном фильтре выполняется командой:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% pfctl -nf /etc/pf.conf&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;И, если нет никаких ошибок в правилах, их можно активировать:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% pfctl -f /etc/pf.conf&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Apache Tomcat будет откликаться из Интернет на URL вида: &lt;code&gt;&lt;br /&gt;http://&lt;внешний inet-address&gt;/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Возможные проблемы&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Проблемы могут возникнуть с выполнением JSP из-за невозможности изменения содержимого рабочего каталога &lt;i&gt;/usr/local/apache-tomcat6.0/work/&lt;/i&gt;, так как Tomcat имеет непривелегированные права пользователя &lt;i&gt;www&lt;/i&gt;.&lt;br /&gt;В этом случае достаточно удалить содержимое каталога командой:&lt;code&gt;&lt;br /&gt;% rm -rf /usr/local/apache-tomcat6.0/work/*&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Впоследствии кэш будет создан заново самим Tomcat без особых проблем.&lt;br /&gt;&lt;br /&gt;Также встречалась проблема с невозможностью ответа сервера Tomcat на клиентский http-запрос. Пересборка Sun&amp;nbsp;J2SE&amp;nbsp;JDK&amp;nbsp;1.6 из порта &lt;i&gt;ports/java/jdk16&lt;/i&gt; без опции поддержки &lt;i&gt;IPv6&lt;/i&gt; решило данную проблему.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Послесловие&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Пакетный фильтр PF, входящий в поставку FreeBSD, пришёл из OpenBSD. Подробнее о его устройстве и конфигурировании можно почитать &lt;a href="http://www.openbsd.org/faq/pf/index.html"&gt;в соответствующем разделе&lt;/a&gt; официального сайта проекта OpenBSD.&lt;br /&gt;&lt;br /&gt;Безусловно, эта статья не претендует на точность изложения всех аспектов развёртывания и конфигурирования Apache Tomcat и PF, а лишь отражает общие принципы работы этой связки.&lt;br /&gt;&lt;br /&gt;Пока на этом всё.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-6392580672594914881?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/6392580672594914881/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=6392580672594914881' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6392580672594914881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6392580672594914881'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/12/apache-tomcat-60-freebsd.html' title='Apache Tomcat 6.0 во FreeBSD 7.0'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-1591749879818249144</id><published>2008-04-08T19:00:00.005+04:00</published><updated>2009-08-13T17:09:20.498+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='J2ME'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Sun WTK 2.2 в окружении JDK 1.6 на FreeBSD 7.0</title><content type='html'>Комплект разработчика Sun&amp;nbsp;WTK портировался и тестировался для работы в Linux-окружении JDK версии 1.4.2 и выше. Его удавалось завести под Diablo&amp;nbsp;JDK&amp;nbsp;1.5, нативной версией Sun&amp;nbsp;J2SE&amp;nbsp;SDK&amp;nbsp;1.5, но при этом нужно было обеспечить поддержку Linux ABI со стороны ядра FreeBSD — загружать модуль linux.ko и держать каталог /usr/compat/linux с так называемой linux_base.&lt;br /&gt;&lt;br /&gt;Все компоненты, необходимые для работы эмулятора определены, осталось правильно их настроить.&lt;br /&gt;&lt;br /&gt;Оказалось, что устаревшая версия Diablo&amp;nbsp;JDK&amp;nbsp;1.5 в принципе заменима новой версией Sun&amp;nbsp;J2SE&amp;nbsp;SDK&amp;nbsp;1.6 из порта &lt;i&gt;ports/java/jdk16&lt;/i&gt; и не надо держать две версии JDK. Так что проблема запуска эмулятора Sun&amp;nbsp;WTK упирается только в используемую linux_base, а с ней не так просто.&lt;br /&gt;&lt;br /&gt;В дистрибутив FreeBSD 7.0-RELEASE входит бинарный пакет linux_base, который устанавливается по желанию. Я устанавливал систему с boot-only CD по сети, так что от пакета linux_base пришлось отказаться до последнего момента, когда понадобилось поработать с эмулятором Sun&amp;nbsp;WTK. Выяснил, что из доступного набора дистрибутивов linux_base, которые можно поставить на FreeBSD из соответствующих портов ветки &lt;i&gt;ports/emulators&lt;/i&gt;, оригинальным бинарным пакетом является сборка из порта &lt;i&gt;ports/emulators/linux_base-fc4&lt;/i&gt;. Чтобы обеспечить работу графических Linux-приложений в Xorg под FreeBSD, нужно также инсталлировать набор библиотек из порта &lt;i&gt;ports/x11/linux-xorg-libs&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Итак, последовательность шагов по установке ПО определена весьма чётко:&lt;code&gt;&lt;br /&gt;% cd /usr/ports/java/jdk16 &amp;&amp; make install clean &amp;&amp; rehash&lt;br /&gt;% cd /usr/ports/java/sun-wtk &amp;&amp; make install clean&lt;br /&gt;% kldload linux.ko&lt;br /&gt;% cd /usr/ports/emulators/linux_base-fc4 &amp;&amp; make install clean &amp;&amp; rehash&lt;br /&gt;% cd /usr/ports/x11/linux-xorg-libs &amp;&amp; make install clean &amp;&amp; rehash&lt;br /&gt;% mount -t linprocfs linprocfs /compat/linux/proc&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;После этого можно открыть &lt;i&gt;ktoolbar&lt;/i&gt; и запустить демонстрационные j2me-приложения из поставки Sun&amp;nbsp;WTK. Для создания и редактирования проектов в самом &lt;i&gt;ktoolbar&lt;/i&gt; необходимо иметь соответствующие права доступа к подкаталогам &lt;i&gt;/usr/local/sun-wtk&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Чтобы запускать поддержку Linux ABI при старте системы, необходимо в файл &lt;i&gt;/etc/rc.conf&lt;/i&gt; добавить строчку:&lt;code&gt;&lt;br /&gt;linux_enable="YES"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;В конец файла &lt;i&gt;/etc/fstab&lt;/i&gt; добавить строчку автомонтирования файловой системы &lt;i&gt;linuxprocfs&lt;/i&gt;: &lt;code&gt;&lt;br /&gt;...&lt;br /&gt;linprocfs  /compat/linux/proc  linprocfs  rw  0  0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;В общем, на этом проблемы с запуском можно считать решёными.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-1591749879818249144?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/1591749879818249144/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=1591749879818249144' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1591749879818249144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1591749879818249144'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/04/sun-wtk-22-jdk-16-freebsd-70.html' title='Sun WTK 2.2 в окружении JDK 1.6 на FreeBSD 7.0'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-3455999715366649535</id><published>2008-03-12T17:15:00.001+03:00</published><updated>2008-03-12T17:14:23.521+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='UnionFS'/><title type='text'>unionfs как элемент распределённой FS</title><content type='html'>&lt;b&gt;Unionfs&lt;/b&gt; — это стэковая файловая система. Может сливать содержимое нескольких каталогов, оставляя их физическое содержание обособленным. Возможно любое сочетание ветвей только-для-чтения (ro) и перезаписываемых ветвей (rw), а также вставку и удаление веток на лету.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Задача&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Имеем NFS-доступный каталог с дистфайлами (архивами исходников) портов на сервере (обновляется редко). На одной из сетевых машин также имеется каталог &lt;i&gt;/usr/ports/distfiles&lt;/i&gt;, в котором находятся более новые версии дистфайлов. Проблема в том, что в серверном NFS-хранилище находится очень много файлов, нужных для сборки всего и вся, они редко изменяют свои версии. А на сетевой машине только то, что она скачала сама из Сети.&lt;br /&gt;Как бы сделать так, чтобы сетевая машина могла использовать не только свои дистфайлы, но и дистфайлы сервера?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Решение&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;На сетевой машине делаем:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% mount_nfs -o ro server:/usr/ports/distfiles /mnt/server/distfiles&lt;br /&gt;% mount_unionfs -o below /mnt/server/distfiles /usr/ports/distfiles&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Таким образом, на сетевой машине мы получили полное дерево портов со всеми дистфайлами. Новые файлы будут сохранятся локально (удобно, если NFS-каталог для нас read-only). Любые изменившиеся файлы в NFS-каталоге будут скопированы в локальное хранилище (&lt;i&gt;/usr/ports/distfiles&lt;/i&gt; сетевой машины) с последующим применением изменений. Эти исключения описаны параграфом в &lt;i&gt;mount_unionfs(8)&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Стратегия обработки файлов в unionfs такая: сначала поиск ведётся в upper layer (это первый параметр), затем в lower layer (это второй параметр). При удачном поиске в lower layer идёт "теневое зеркалирование" файла на upper layer (без копирования), затем проведение операций открытия файлов и работы с ними. Ключ &lt;i&gt;-o below&lt;/i&gt; приводит к инверсии lower layer и upper layer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ссылки&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;• &lt;a href="http://www.opennet.ru/openforum/vsluhforumID3/36126.html"&gt;"Реализация UnionFS под FreeBSD стала более стабильной"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-3455999715366649535?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/3455999715366649535/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=3455999715366649535' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3455999715366649535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3455999715366649535'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/02/unionfs-fs.html' title='unionfs как элемент распределённой FS'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-8892926250328306863</id><published>2008-03-02T20:40:00.001+03:00</published><updated>2008-03-02T20:44:48.785+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='USB-флэшка'/><title type='text'>FreeBSD на USB-флэшке</title><content type='html'>Сделал загрузочную 1 гиговую USB-флэшку с FreeBSD 7.0, как описано здесь:&lt;br /&gt;http://dreamcatcher.ru/docs/freebsd_stick.html&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Материалы&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Собственно, нужна сама флэшка достаточного объёма.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Необходимо переписать ISO-образ (первого) инсталляционного диска FreeBSD.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Подготовка рабочего места&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% mkdir -p /mnt/iso9660&lt;br /&gt;% mdconfig -a -f /home/archive/ISO/FreeBSD/7.0-RELEASE-i386-disc1.iso&lt;br /&gt;md0&lt;br /&gt;% mount_cd9660 /dev/md0 /mnt/iso9660&lt;br /&gt;% mkdir -p /media&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Подготовка флэшки&lt;/b&gt;&lt;br /&gt;Подключенная флэшка определилась как устройство &lt;i&gt;/dev/da0&lt;/i&gt; (это также видно по результату выполнения команды dmesg). Её необходимо разметить и отформатировать.&lt;br /&gt;&lt;br /&gt;Разметка выполняется командой: &lt;br /&gt;&lt;code&gt;&lt;br /&gt;% fdisk -BI /dev/da0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Но часто приходится использовать диалоговый режим работы &lt;i&gt;fdisk&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% fdisk -i /dev/da0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Дальнейшие действия заключаются в присвоении метки разделу с системой и в проведении форматирования его в UFS2:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% bsdlabel -B -w da0s1&lt;br /&gt;% newfs -U -L FBSDUSB /dev/da0s1a&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Установка операционной системы&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% mount /dev/da0s1a /media&lt;br /&gt;% set DESTDIR=/media&lt;br /&gt;% cd /mnt/iso9660/7.0-RELEASE/base/&lt;br /&gt;% ./install.sh&lt;br /&gt;% rm /media/boot/kernel&lt;br /&gt;% mv /media/boot/GENERIC /media/boot/kernel&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Установка загрузчика операционной системы&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% boot0cfg -v -B -o noupdate da0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Конфигурирование&lt;/b&gt;&lt;br /&gt;Операционная система на флэшке должна по возможности редко перезаписывать свои файлы, чтобы исключить преждевременное "старение" флэш-памяти. Поэтому временные файлы должны помещаться в оперативной памяти, а не на флэшке.&lt;br /&gt;&lt;br /&gt;Файл &lt;i&gt;/media/etc/fstab&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# Device                Mountpoint      FStype  Options         Dump    Pass#&lt;br /&gt;/dev/ufs/FBSDUSB        /               ufs     rw,noatime      1       1&lt;br /&gt;md                      /tmp            mfs     rw,-s160M,nosuid,noatime 0       0&lt;br /&gt;md                      /var/run        mfs     rw,-s14M,nosuid,noatime 0       0&lt;br /&gt;md                      /var/log        mfs     rw,-s26M,nosuid,noatime 0       0&lt;br /&gt;md                      /usr/obj        mfs     rw,-s760M,noatime       0       0&lt;br /&gt;/dev/acd0               /cdrom          cd9660  ro,noauto,nosuid        0       0&lt;br /&gt;/proc                   /proc           procfs  rw,noauto       0       0&lt;br /&gt;/tmp                    /var/tmp        nullfs  rw              0       0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Файл &lt;i&gt;/media/boot/loader.conf&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;geom_label_load="YES"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt; — это форсирует запуск класса GEOM для корректного определения корневой файловой системы на флэшке.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Скрипт восстановления &lt;i&gt;vi&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Лично я не пользуюсь vi, но может это кому-то поможет.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% mkdir -p /media/usr/local/etc/rc.d&lt;br /&gt;% cd /media/usr/local/etc/rc.d&lt;br /&gt;% fetch http://people.freebsd.org/~ceri/FreeBSDonUSB/scripts/mkvirecover&lt;br /&gt;% chmod 555 ./mkvirecover&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Если возможности загрузить этот скрипт нет, то вот его код (файл &lt;i&gt;mkvirecover&lt;/i&gt;):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# PROVIDE: mkvirecover&lt;br /&gt;# REQUIRE: mountcritremote&lt;br /&gt;# BEFORE:  DAEMON virecover&lt;br /&gt;&lt;br /&gt;. /etc/rc.subr&lt;br /&gt;&lt;br /&gt;name="mkvirecover"&lt;br /&gt;stop_cmd=":"&lt;br /&gt;start_cmd="mkvirecover_start"&lt;br /&gt;&lt;br /&gt;mkvirecover_start()&lt;br /&gt;{&lt;br /&gt; [ -d /var/tmp/vi.recover ] || mkdir -m 1777 /var/tmp/vi.recover&lt;br /&gt; echo '.'&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;load_rc_config $name&lt;br /&gt;run_rc_command "$1"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;В файле &lt;i&gt;/media/etc/newsyslog.conf&lt;/i&gt; необходимо отредактировать следующую строчку:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/var/log/wtmp                          644  3     *    @01T05 BC&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Настройка опций системы&lt;/b&gt;&lt;br /&gt;Файл &lt;i&gt;/media/etc/rc.conf&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;ifconfig_DEFAULT="DHCP"&lt;br /&gt;ifconfig_fwe0="NOAUTO"&lt;br /&gt;ifconfig_plip0="NOAUTO"&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt; — сетевая операционная система получает свой IP-адрес от внешнего DHCP-сервера.&lt;br /&gt;&lt;br /&gt;Для уменьшения числа операций записи на USB, нужно создать локальную базу данных и запретить еженедельное обновление:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% chroot /media /bin/sh&lt;br /&gt;# mount_devfs devfs /dev&lt;br /&gt;# /etc/periodic/weekly/310.locate&lt;br /&gt;# cat &gt;&gt;  /etc/periodic.conf &lt;&lt; EOF&lt;br /&gt;weekly_locate_enable="NO"&lt;br /&gt;weekly_whatis_enable="NO"&lt;br /&gt;EOF&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Задание пароля root и установка прикладного ПО из бинарных пакетов и т.д.:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# passwd root&lt;br /&gt;...&lt;br /&gt;# pkg_add -r unzip unrar xorg...&lt;br /&gt;...&lt;br /&gt;# umount devfs&lt;br /&gt;# exit&lt;br /&gt;% cd /root&lt;br /&gt;% umount /media&lt;br /&gt;% umount /mnt/iso9660&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;В общем, система подготовлена для работы с флэшки.&lt;br /&gt;&lt;br /&gt;Для установки прикладного ПО из портов, а не из бинарных пакетов необходимо выделить достаточно места на флэшке: возможно придётся удалить каталог &lt;i&gt;/usr/src&lt;/i&gt;; отказаться от размещения локальной копии дерева портов — вместо этого подключить расшаренный в NFS каталог &lt;i&gt;/usr/ports&lt;/i&gt; другой машины и/или использовать технологию &lt;i&gt;unionfs&lt;/i&gt; с внешним носителем. Необходимо также предварительно определить переменную &lt;i&gt;WRKDIRPREFIX=/usr/obj&lt;/i&gt; в файле &lt;i&gt;/etc/make.conf&lt;/i&gt; при достаточном объёме RAM-диска, выделенного под &lt;i&gt;/usr/obj&lt;/i&gt; (осторожно: некоторые порты для своей компиляции требуют более 2ГБ свободного пространства).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-8892926250328306863?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/8892926250328306863/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=8892926250328306863' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8892926250328306863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8892926250328306863'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2008/02/freebsd-usb.html' title='FreeBSD на USB-флэшке'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-3199027639598732289</id><published>2007-10-23T20:25:00.001+04:00</published><updated>2009-08-04T23:11:45.287+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NVIDIA'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Xorg'/><category scheme='http://www.blogger.com/atom/ns#' term='Xfce'/><title type='text'>NVIDIA, Xorg 7.3 и Xfce4</title><content type='html'>&lt;b&gt;Как запускать Xfce4&amp;nbsp;DE в окружении Xorg&amp;nbsp;7.3 с драйвером NVIDIA?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Этот вопрос волнует многих, так как, согласно записи от 13 сентября 2007 года в файле &lt;i&gt;ports/UPDATING&lt;/i&gt; , оконную систему Xorg совместно с нативным драйвером NVIDIA необходимо запускать с опцией командной строки &lt;i&gt;"-- -ignoreABI"&lt;/i&gt;, иначе графический режим работать не будет. Либо придётся использовать драйвер "nv" из состава Xorg, но последний не обеспечивает 3D-ускорения.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Предпосылки&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Портированный драйвер NVIDIA&amp;nbsp;GLX (порт &lt;i&gt;ports/x11/nvidia-driver&lt;/i&gt;, последний архив &lt;a href="http://www.nvidia.com/object/freebsd_100.14.11.html"&gt;NVIDIA-FreeBSD-x86-100.14.11.tar.gz&lt;/a&gt;) при обновлении оконной системы Xorg&amp;nbsp;6.9 на Xorg&amp;nbsp;7.2 и далее на версию 7.3 перестал отвечать требованиям совместимости. Наверное, мантейнер этого порта решил исравить этот недочёт путём внесения коррекций в набор параметров команды запуска Xorg. Так появилось предложение в файле &lt;i&gt;ports/UPDATING&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Однако я запускаю Xfce из &lt;i&gt;~/.login&lt;/i&gt;, строчка в нём такая:&lt;code&gt;&lt;br /&gt;startxfce4&lt;/code&gt;&lt;br /&gt;так как логинюсь я в командной строке, без XDM, GDM и прочих ненужных мне графических примочек-менеджеров входа в систему.&lt;br /&gt;&lt;br /&gt;Вот для таких как я и найдено следующее&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Решение&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Создаём файл &lt;i&gt;~/.xinitrc&lt;/i&gt; и в нём пишем:&lt;code&gt;&lt;br /&gt;startxfce4&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. В файле &lt;i&gt;~/.login&lt;/i&gt; вместо строчки запуска Xfce пишем:&lt;code&gt;&lt;br /&gt;startx -- -ignoreABI&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. В &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt; активируем нативный драйвер "nvidia" вместо "nv".&lt;br /&gt;Если модуль драйвера nvidia подгружен (соответствующая запись присутствует в &lt;i&gt;/boot/loader.conf&lt;/i&gt;), &lt;i&gt;compat5x&lt;/i&gt; включен в &lt;i&gt;/etc/rc.conf&lt;/i&gt;, то после перелогинивания будет аппаратная акселерация графики.&lt;br /&gt;&lt;br /&gt;В новом драйвере &lt;a href="http://www.nvidia.com/object/freebsd_100.14.19.html"&gt;NVIDIA-FreeBSD-x86-100.14.19.tar.gz&lt;/a&gt; необходимость в опции командной строки больше нет, можно дождаться появления его в Коллекции портов или инсталлировать самостоятельно.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-3199027639598732289?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/3199027639598732289/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=3199027639598732289' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3199027639598732289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3199027639598732289'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/10/nvidia-xorg-73-xfce4.html' title='NVIDIA, Xorg 7.3 и Xfce4'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-6599347040600172358</id><published>2007-10-11T03:00:00.003+04:00</published><updated>2009-08-13T17:09:43.995+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='J2ME'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Sun WTK в окружении JDK 1.6 на FreeBSD</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FT3khCuHOUg/RwpXuhLY6sI/AAAAAAAAABM/ck8_prrnJiI/s1600-h/FreeBSD6.2-STABLE_Sun-WTK2.2_NetBeans5.5.1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FT3khCuHOUg/RwpXuhLY6sI/AAAAAAAAABM/ck8_prrnJiI/s320/FreeBSD6.2-STABLE_Sun-WTK2.2_NetBeans5.5.1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5119000383151729346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Препосылки&lt;/b&gt;&lt;br /&gt;Приложения из пакета Sun&amp;nbsp;WTK&amp;nbsp;2.2, установленные из Коллекции портов FreeBSD, не работают должным образом. Так, например, при запуске любого тестового J2ME-приложения (из числа демонстрационных, входящих в комплект поставки Sun&amp;nbsp;WTK) в KToolbar возможно одно из следующих сообщений об ошибке:&lt;br /&gt;1) Ошибка обращения к нативной библиотеке libXpm;&lt;br /&gt;2) Ошибка LIME номер такой-то;&lt;br /&gt;3) Ошибка компиляции из-за неверной кодировки строк символов в исходниках.&lt;br /&gt;&lt;br /&gt;С самого начала было ясно, что комплект разработчика Sun WTK портировался и тестировался для работы в Linux-окружении JDK версии 1.4.2 и выше. Странно, что ранее его удавалось завести под Diablo&amp;nbsp;JDK&amp;nbsp;1.5, нативной версией Sun J2SE SDK 1.5. С недавних пор работа эмулятора Sun&amp;nbsp;WTK вызывала серьёзные нарекания. Возможно, это как-то связано с существенными изменениями в ядре операционной системы и переходу на новую версию оконной системы Xorg&amp;nbsp;7.2, а затем и на Xorg&amp;nbsp;7.3. Кардинальные обновления Sun&amp;nbsp;WTK&amp;nbsp;2.2 не наблюдались — по-прежнему использовался дистрибутив для Linux, зависимый по сборке от нативной Diablo&amp;nbsp;JDK&amp;nbsp;1.5.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Пути решения&lt;/b&gt;&lt;br /&gt;Путь решения оказался самым элементарным: очистить систему от установленных JDK, попробовать установить Sun&amp;nbsp;WTK, заставив его запускаться в окружении Linux-версии Sun&amp;nbsp;JDK из Коллекции портов. Далее накатить нативную версию Sun&amp;nbsp;JDK для обеспечения эффективной работы остальных java-приложений в системе. Благо, FreeBSD позволяет работать нативным Linux-приложениям, используя режим трансляции API-вызовов через механизм ABI.&lt;br /&gt;&lt;br /&gt;Сначала был установлен пакет linux-sun-jdk-1.4.2.13. В нём Sun&amp;nbsp;WTK работал стабильно, но нагрузка на процессор была близка к 100% при подозрительно-большом числе (10-15 штук!) процессов &lt;i&gt;java&lt;/i&gt;, которые не реагировали на команду &lt;i&gt;killall java&lt;/i&gt; даже от имени root'а — очень странная и неоптимальная конфигурация для работы. От этого пришлось отказаться.&lt;br /&gt;&lt;br /&gt;Снова очистка и перезагрузка системы.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Решение&lt;/b&gt;&lt;br /&gt;Далее я описываю решение, которое найдено умозрительным путём.&lt;br /&gt;&lt;br /&gt;1. Установить Linux&amp;nbsp;Sun&amp;nbsp;JDK&amp;nbsp;1.6:&lt;br /&gt;&lt;code&gt;% cd /usr/ports/java/linux-sun-jdk16&lt;br /&gt;% make rmconfig clean install clean&lt;/code&gt;&lt;br /&gt;В начале процесса установки появится просьба скачать необходимые файлы с сайта java.sun.com и скопировать их в каталог &lt;i&gt;ports/distfiles&lt;/i&gt;, при этом ссылки на страницы загрузки будут даны.&lt;br /&gt;&lt;br /&gt;2. Примонтировать файловую систему Linux&amp;nbsp;ProcFS:&lt;br /&gt;&lt;code&gt;% mount -t linprocfs linprocfs /compat/linux/proc&lt;/code&gt;&lt;br /&gt;Без этой команды пакет разработчика Sun&amp;nbsp;WTK не соберётся.&lt;br /&gt;Вообще же, строчку:&lt;br /&gt;&lt;code&gt;linprocfs    /compat/linux/proc    linprocfs    rw    0    0&lt;/code&gt;&lt;br /&gt;следует добавить в файл &lt;i&gt;/etc/fstab&lt;/i&gt;, так как без этого эмулятор Sun&amp;nbsp;WTK откажется запускаться и выбросит одну из вышеприведённых ошибок.&lt;br /&gt;&lt;br /&gt;3. Собрать Sun&amp;nbsp;WTK:&lt;br /&gt;&lt;code&gt;% cd /usr/ports/java/sun-wtk&lt;br /&gt;% make rmconfig clean install clean&lt;/code&gt;&lt;br /&gt;После этого надо обеспечить пакет Sun&amp;nbsp;WTK конфигурацией для функционирования в окружении Linux JDK:&lt;br /&gt;&lt;code&gt;% mkdir /usr/local/sun-wtk/wtklib/Linux&lt;br /&gt;% cp /usr/local/sun-wtk/wtklib/FreeBSD/* /usr/local/sun-wtk/wtklib/Linux/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. Можно перезагрузить систему командой:&lt;br /&gt;&lt;code&gt;% shutdown -r now&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5. Собрать и инсталлировать Diablo&amp;nbsp;JDK&amp;nbsp;1.5 для сборки нативного Sun&amp;nbsp;JDK&amp;nbsp;1.6:&lt;br /&gt;&lt;code&gt;% cd /usr/ports/java/diablo-jdk15&lt;br /&gt;% make rmconfig clean install clean&lt;/code&gt;&lt;br /&gt;В начале процесса установки появится просьба скачать необходимые файлы с соответствующих сайтов и скопировать их в каталог &lt;i&gt;ports/distfiles&lt;/i&gt;, при этом ссылки на страницы загрузки будут даны. Впоследствии Diablo&amp;nbsp;JDK&amp;nbsp;1.5 можно удалить, так как он нужен лишь на этапе сборки нативного Sun&amp;nbsp;JDK&amp;nbsp;1.6 и офисного пакета OpenOffice.&lt;br /&gt;&lt;br /&gt;6. Собрать и инсталлировать Sun&amp;nbsp;JDK&amp;nbsp;1.6:&lt;br /&gt;&lt;code&gt;% cd /usr/ports/java/jdk16&lt;br /&gt;% make rmconfig clean install&lt;/code&gt;&lt;br /&gt;Опять же, в начале процесса установки появится просьба скачать необходимые файлы с соответствующих сайтов и скопировать их в каталог &lt;i&gt;ports/distfiles&lt;/i&gt;, при этом ссылки на страницы загрузки будут даны. Здесь намеренно не используется команда &lt;i&gt;make clean&lt;/i&gt;, так как при последующем удалении пакета Diablo&amp;nbsp;JDK&amp;nbsp;1.5 последний уносит с собой в небытие некоторые нативные библиотеки, без которых невозможна работа сетевых Java-приложений и апплетов в Web-браузере, а значит необходимо будет либо собрать с нуля Sun&amp;nbsp;JDK&amp;nbsp;1.6 (установленный Sun&amp;nbsp;JDK&amp;nbsp;1.6 способен пересобрать сам себя), либо воспользоваться уже откомпилированным материалом.&lt;br /&gt;&lt;br /&gt;7. Можно удалить пакет Diablo&amp;nbsp;JDK&amp;nbsp;1.5, чтобы освободить место на диске:&lt;br /&gt;&lt;code&gt;% cd /usr/ports/java/diablo-jdk15&lt;br /&gt;% make deinstall clean&lt;/code&gt;&lt;br /&gt;и реинсталлировать Sun&amp;nbsp;JDK&amp;nbsp;1.6:&lt;br /&gt;&lt;code&gt;% rehash&lt;br /&gt;% cd /usr/ports/java/jdk16&lt;br /&gt;% make deinstall install clean&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;9. Проверить версию рабочей JVM:&lt;br /&gt;&lt;code&gt;% java -version&lt;/code&gt;&lt;br /&gt;Она должна быть:&lt;br /&gt;&lt;code&gt;java version "1.6.0_01-p1"&lt;br /&gt;Java(TM) SE Runtime Environment (build 1.6.0_01-p1-root_11_oct_2007_02_04-b00)&lt;br /&gt;Java HotSpot(TM) Client VM (build 1.6.0_01-p1-root_11_oct_2007_02_04-b00, mixed mode)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Итак, теперь в системе установлено две версии Sun&amp;nbsp;JDK&amp;nbsp;1.6: одна для работы специфических Linux-приложений, нуждающихся в нативной поддержке Linux ABI; другая — нативный комплект разработчика для работы любых Java-приложений в окружении нативной JRE.&lt;br /&gt;&lt;br /&gt;Собственно, на этом всё.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-6599347040600172358?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/6599347040600172358/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=6599347040600172358' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6599347040600172358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6599347040600172358'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/10/sun-wtk-jdk-16-freebsd.html' title='Sun WTK в окружении JDK 1.6 на FreeBSD'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FT3khCuHOUg/RwpXuhLY6sI/AAAAAAAAABM/ck8_prrnJiI/s72-c/FreeBSD6.2-STABLE_Sun-WTK2.2_NetBeans5.5.1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-4400486863554930628</id><published>2007-09-08T12:38:00.011+04:00</published><updated>2011-02-19T22:46:44.567+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUPS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='HPLIP'/><title type='text'>Принтер HP DeskJet 6943 в сети с FreeBSD</title><content type='html'>Избавившись в своё время от Windows-принтера HP&amp;nbsp;LaserJet&amp;nbsp;1005w, который не умеет работать с Unix, недавно задался вопросом о приобретении достаточно универсального агрегата. «Переболев» манией печати электронных книг, которые с большей вероятностью останутся лежать на полках непрочитаными или со временем превращающихся в непереплетённую макулатуру, решил больше не делать из бумаги культа. Всё должно быть в меру. А значит лазерник, обеспечивающий дешёвую печать исключительно ч.-б. копий, мне не нужен.&lt;br /&gt;&lt;br /&gt;Итак, новые требования к аппарату для получения твёрдых копий были простыми: печать чёрно-белых и цветных материалов с приемлемым качеством и в относительно небольших объёмах. Так же, аппарат должен быть совместим с Unix, в частности, с системой печати &lt;i&gt;CUPS&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HP DeskJet 6943&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FT3khCuHOUg/RuLLCKCWB8I/AAAAAAAAABE/Twy7xiFGh60/s1600-h/hp_deskjet_6943.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FT3khCuHOUg/RuLLCKCWB8I/AAAAAAAAABE/Twy7xiFGh60/s320/hp_deskjet_6943.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5107868165305927618" /&gt;&lt;/a&gt;&lt;br /&gt;Так, я приобрёл принтер для небольших печатных работ. Аппарат относится к серии &lt;i&gt;6940&lt;/i&gt;. Важно, что он имеет два интерфейса: USB для обычного подключения, и для включения в сеть Ethernet (IEEE 802.3) — в работе задействуется что-то одно.&lt;br /&gt;&lt;br /&gt;Технические характеристики можно посмотреть &lt;a href="http://h10025.www1.hp.com/ewfrf/wc/document?docname=c00571545&amp;lc=en&amp;dlc=ru&amp;cc=ru&amp;lang=ru&amp;rule=11225&amp;product=1143134"&gt;подробнее &gt;&gt;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Картриджи для печати сравнительно дорогие. Далее привожу расклад по ценам на картриджи для этого принтера от одного из интернет-магазинов (цены немного округлены в большую сторону).&lt;br /&gt;&lt;br /&gt;Чёрный картридж большой ёмкости HP&amp;nbsp;130 (C8767HE) на 850 листов стоит 830 руб.&lt;br /&gt;Трёхцветный картридж малой ёмкости HP&amp;nbsp;135 (C8766HE) на 330 листов или на 110 фотокарточек стоит 860&amp;nbsp;руб.&lt;br /&gt;Трёхцветный картридж большой ёмкости HP&amp;nbsp;134 (C9363HE) на 590 листов или 220 фотокарточек стоит 900&amp;nbsp;руб.&lt;br /&gt;Фотокартридж HP&amp;nbsp;138 (C9369HE) на 130 фотокарточек стоит 680&amp;nbsp;руб.&lt;br /&gt;Серый фотокартридж HP&amp;nbsp;100 (C9368AE) на 80 фотокарточек стоит 630&amp;nbsp;руб.&lt;br /&gt;&lt;br /&gt;В работе используются всегда два картриджа: либо чёрный с трёхцветным картриджем для обычной чёрно-белой или цветной печати, либо фотокартридж с трёхцветным картриджем для реалистичной фотопечати.&lt;br /&gt;&lt;br /&gt;Так же доступны так называемые «наборы», куда входят картриджи и фотобумага, которые по совокупной стоимости гораздо дешевле, чем их отдельные составляющие. Так, например, можно купить набор для фотопечати HP&amp;nbsp;135 с 100 листами фотобумаги повыш. качества 10x15&amp;nbsp;см (Q7935HE) всего за 750&amp;nbsp;руб. Так же можно купить групповую упаковку из двух трёхцветных картриджей HP&amp;nbsp;134 (CB332HE) всего за 1250&amp;nbsp;руб.&lt;br /&gt;&lt;br /&gt;Кроме того, картриджи для этого принтера перезаправляемы! Вот здесь: http://www.ink-market.ru/?cid=992&lt;br /&gt;можно подобрать необходимые чернила для перезаправки и скачать инструкцию.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Подключение&lt;/b&gt;&lt;br /&gt;Подключение принтера выполняется либо USB-кабелем (его нет в компекте — нужно покупать отдельно), либо Ethernet-кабелем (этот кабель есть в комплекте). Я подключил принтер к ADSL-роутеру. Вставил картриджи. Включил. Автоматически распечаталась первая тестовая страничка, показав, что вроде бы всё в порядке. В инструкции к принтеру отсутствовала какая-либо информация о доступе к принтеру по Web-интерфейсу. Но ведь нужно как-то смотреть состояние принтера, который не подключен ни к какому компьютеру. Интуитивно нажал кнопку [V] на принтере и распечатался отчёт, где был указан IP-адрес принтера в сети, введя который в браузере я смог попасть на web-страницу принтера. Кроме общих настроек и информации о состоянии ничего более примечательного не обнаружилось. Пришлось изучать Интернет на предмет того, «как же на нём печатать?».&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CUPS&lt;/b&gt;&lt;br /&gt;В Unix достаточно давно существует Common UNIX Printing System — &lt;a href="http://cups.org/"&gt;CUPS&lt;/a&gt;. Эта система представляет собой сетевую службу поддержки печати на PostScript-принтерах в среде Unix. Между прочим, операционная система Apple MAC&amp;nbsp;OS&amp;nbsp;X — тоже «потребитель» этого решения.&lt;br /&gt;&lt;br /&gt;Так как я вообще не имею понятия о системе печати в Unix (ни разу не пользовался ни lpr, ни CUPS), то настройка печати во FreeBSD для меня казалась нетривиальной задачей. Фактически пришлось «сращивать» не-PostScript принтер с CUPS через промежуточный слой, называемый &lt;a href="http://hplip.sourceforge.net/about.html"&gt;HPLIP&lt;/a&gt; (HP Linux Imaging and Printing).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HPLIP&lt;/b&gt;&lt;br /&gt;Так как система печати CUPS у меня уже была установлена вместе с Xfce4, то надо было доустановить HPLIP. Начал было скачивать тарбол-архив с сайта hplip.sourceforge.net, но вовремя заметил, что это ПО портировано во FreeBSD  и находится в Коллекции портов: /usr/ports/print/hplip&lt;br /&gt;&lt;br /&gt;Установка HPLIP со всеми зависимостями, в том числе и GhostScript, заняла порядка часа. Далее я начал искать как всё это запустить. Удивительно, но Google выдал ответы только по подключению USB-принтеров, про сетевую печать не было ни одной ссылки (может я задавал не те вопросы?).&lt;br /&gt;Позднее, переиначив запрос на втором десятке открытых страниц поиска я, наконец-то, обнаружил то, что искал.&lt;br /&gt;&lt;br /&gt;Вот тут: http://dsteinbrook.googlepages.com/hpliponfreebsd&lt;br /&gt;есть информация, как подключить USB-принтер. Но у меня принтер подключён к роутеру по Ethernet.&lt;br /&gt;&lt;br /&gt;Вот здесь: http://hplip.sourceforge.net/install/step4/cups/net.html&lt;br /&gt;исчерпывающая информация по настройке сетевого принтера.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Инструкция&lt;/b&gt;&lt;br /&gt;1. Установите CUPS: &lt;code&gt;&lt;br /&gt;% cd /usr/ports/print/cups/ &amp;&amp; make install clean&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;2. Установите HPLIP:&lt;code&gt;&lt;br /&gt;% cd /usr/ports/print/hplip/ &amp;&amp; make install clean&lt;br /&gt;&lt;/code&gt;(Для сетевого принтера HP важно, чтобы пакет HPLIP был собран с поддержкой SNMP, иначе hp-makeuri не найдёт принтер в сети.)&lt;br /&gt;&lt;br /&gt;3. Обеспечьте загрузку демонов при старте системы в /etc/rc.conf:&lt;code&gt;&lt;br /&gt;cupsd_enable="YES"&lt;br /&gt;hpssd_enable="YES"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. Задайте дополнительные права в /etc/devfs.rules, только если принтер подключен по USB (полный текст настройки прав):&lt;code&gt;&lt;br /&gt;[system=10]&lt;br /&gt;add path 'da*' mode 0666 group operator&lt;br /&gt;add path 'acd*' mode 0666 group operator&lt;br /&gt;add path 'cd*' mode 0666 group operator&lt;br /&gt;add path 'fd*' mode 0666 group operator&lt;br /&gt;add path 'umass*' mode 0666 group operator&lt;br /&gt;add path 'xpt*' mode 0666 group operator&lt;br /&gt;add path 'usb*' mode 0770 group cups&lt;br /&gt;add path 'ugen*' mode 0660 group cups&lt;br /&gt;&lt;/code&gt;и внесите пользователя в группу &lt;i&gt;operator&lt;/i&gt; в файле /etc/group.&lt;br /&gt;В /etc/rc.conf добавьте:&lt;code&gt;&lt;br /&gt;devfs_system_ruleset="system"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5.Перезагрузите машину.&lt;br /&gt;&lt;br /&gt;6. Определите IP-адрес принтера из его отчёта и сгенерируйте ссылку для него:&lt;code&gt;&lt;br /&gt;% hp-makeuri 192.168.1.4&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;7. Откройте браузер и перейдите по адресу:&lt;code&gt;&lt;br /&gt;http://localhost:631&lt;br /&gt;&lt;/code&gt;Запустится домашняя страница демона CUPS.&lt;br /&gt;&lt;br /&gt;8. Добавьте принтер в систему CUPS с помощью мастера и Web-форм:&lt;br /&gt;&lt;br /&gt;Кнопка &lt;i&gt;Add Printer&lt;/i&gt; -&gt;&lt;br /&gt;&lt;br /&gt;Форма &lt;i&gt;Add New Printer&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Name&lt;/i&gt;: HPDJ6943&lt;br /&gt;&lt;i&gt;Location&lt;/i&gt;: ссылка, полученная в п.6.&lt;br /&gt;&lt;i&gt;Description&lt;/i&gt;: краткое описание принтера&lt;br /&gt;&lt;br /&gt;Форма &lt;i&gt;Device for HPDJ6943&lt;/i&gt;&lt;br /&gt;Бокс выбора &lt;i&gt;Device&lt;/i&gt;: HP DeskJet 6940 series (192.168.1.4)...&lt;br /&gt;&lt;br /&gt;Форма &lt;i&gt;Model/Driver for HPDJ6943&lt;/i&gt;&lt;br /&gt;Список выбора &lt;i&gt;Model&lt;/i&gt;: HP DeskJet 6940 Foomatic/hpijs (en)&lt;br /&gt;Кнопка &lt;i&gt;Add Printer&lt;/i&gt; -&gt;&lt;br /&gt;Введите имя и пароль администратора и принтер будет добавлен в систему CUPS.&lt;br /&gt;&lt;br /&gt;На странице настроек принтера можно задать носитель, режимы печати, распечатать пробную страницу и т.д.&lt;br /&gt;&lt;br /&gt;В общем, настройка не так сложна, как кажется.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;P.S.&lt;br /&gt;Можно выбрать драйвер принтера более точно — указать PPD-файл: /usr/local/share/ppd/HP/hp-deskjet_6940_series-hpijs.ppd.gz&lt;br /&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-4400486863554930628?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/4400486863554930628/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=4400486863554930628' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4400486863554930628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/4400486863554930628'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/09/hp-deskjet-6943-freebsd.html' title='Принтер HP DeskJet 6943 в сети с FreeBSD'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FT3khCuHOUg/RuLLCKCWB8I/AAAAAAAAABE/Twy7xiFGh60/s72-c/hp_deskjet_6943.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-6911145164456775215</id><published>2007-08-29T23:50:00.001+04:00</published><updated>2009-08-04T23:06:27.973+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>NetBeans IDE 5.5.1 во FreeBSD 6.2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FT3khCuHOUg/RtXDTKCWB3I/AAAAAAAAAAc/WRG9jIiu2ww/s1600-h/FreeBSD6.2-STABLE-JDK1.6.0-NetBeans_IDE5.5.1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FT3khCuHOUg/RtXDTKCWB3I/AAAAAAAAAAc/WRG9jIiu2ww/s320/FreeBSD6.2-STABLE-JDK1.6.0-NetBeans_IDE5.5.1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5104200486573442930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Загрузил с сайта &lt;a href="http://www.netbeans.org/"&gt;netbeans.org&lt;/a&gt; мультиплатформенный архив netbeans-5_5_1.tar.bz2, распаковал его в домашний каталог и запустил.&lt;br /&gt;&lt;br /&gt;Обычная тема Ocean Swing Look&amp;Feel мне не очень нравится, поэтому пришлось слегка подредактировать файл netbeans/etc/netbeans.conf на предмет другого визуального оформления среды разработки, заодно увеличив её требования по памяти -- у меня простаивает порядка полтора гигабайта ОЗУ. Так же сменил виртуальную машину, указав каталог инсталляции Sun JDK1.6.0 вместо несколько устаревшей Diablo-JDK1.5 (которая нужна только Eclipse 3.2.2):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;netbeans_default_options="-J-Xms32m -J-Xmx512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled --laf com.sun.java.swing.plaf.gtk.GTKLookAndFeel -J-Dfile.encoding=UTF-8"&lt;br /&gt;&lt;br /&gt;netbeans_jdkhome="/usr/local/jdk1.6.0"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Среда преобрела такой же вид как у всех нативных Gtk-приложений. Скорость реакции интерфейса, замечу, реализованного целиком на Swing без нативных виджетов, несколько удивила -- так же проворно, как у интерфейса Eclipse, который построен на полунативной библиотеке SWT!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;О работе с проектами&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FT3khCuHOUg/RtXL_qCWB5I/AAAAAAAAAAs/oUOB-dYIfMc/s1600-h/FreeBSD6.2-STABLE-JDK1.6.0-NetBeans_IDE5.5.1-NewProject.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_FT3khCuHOUg/RtXL_qCWB5I/AAAAAAAAAAs/oUOB-dYIfMc/s320/FreeBSD6.2-STABLE-JDK1.6.0-NetBeans_IDE5.5.1-NewProject.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5104210047170643858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;С ходу нельзя создать новый пустой проект Java-приложения как в Eclipse, но можно импортировать в среду проект, содержащий готовый Ant-скрипт (файл build.xml), так же можно построить проект на основе демонстрационных приложений, идущих вместе с NetBeans. Я выбрал первый вариант, так как все мои последние проекты не привязаны к какой-то конкретной среде разработки и идут исключительно с Ant-скриптом. Импорт существующего проекта удался без редактирования. Ant-скрипт проекта стал управляющим скриптом сборки и запуска приложения внутри среды.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NetBeans Update Center&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FT3khCuHOUg/RtXLLKCWB4I/AAAAAAAAAAk/0hEQ-6kTzD8/s1600-h/FreeBSD6.2-STABLE-JDK1.6.0-NetBeans_IDE5.5.1-UpdateCenterWizard.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FT3khCuHOUg/RtXLLKCWB4I/AAAAAAAAAAk/0hEQ-6kTzD8/s320/FreeBSD6.2-STABLE-JDK1.6.0-NetBeans_IDE5.5.1-UpdateCenterWizard.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5104209145227511682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Посмотрел, что может предложить сервис автоматического обновления модулей среды. Web-проекты с Ajax, API-документация, импортёры проектов из JBuilder и Eclipse, Sun Java System WebServer 7.0 и AVK, Apache Derby Database, модули для работы с системами контроля версий VCS и VSS, различные библиотеки и т.д. Набор впечатляет, но не то, что необходимо мне -- JRuby нет, а шестая версия NetBeans пока сыровата.&lt;br /&gt;&lt;br /&gt;Ну да ладно.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-6911145164456775215?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/6911145164456775215/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=6911145164456775215' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6911145164456775215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/6911145164456775215'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/08/netbeans-ide-551-freebsd-62.html' title='NetBeans IDE 5.5.1 во FreeBSD 6.2'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FT3khCuHOUg/RtXDTKCWB3I/AAAAAAAAAAc/WRG9jIiu2ww/s72-c/FreeBSD6.2-STABLE-JDK1.6.0-NetBeans_IDE5.5.1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-7715536991099604298</id><published>2007-08-13T00:46:00.001+04:00</published><updated>2009-06-24T14:42:30.866+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Всё произошло из-за демпинга цен!</title><content type='html'>Всё произошло из-за демпинга цен.&lt;br /&gt;&lt;br /&gt;В начале 1992 года вышел дистрибутив 386/BSD, основанный на дистрибутиве Networking Release 2, распространяемый компанией BSDI за $995 с "ужасающей скидкой" в 99% по сравнению с ценой System V. Примерно в это же время USL подала иск против BSDI, а затем против Калифорнийского университета, в частности, против группы CSRG, допустившей распространение файлов UNIX в исходных и двоичных форматах практически забесплатно.&lt;br /&gt;&lt;br /&gt;Весь 1992 год никаких значительных успехов в судебной тяжбе для USL не принёс, зато появился встречный иск от Калифорнийского университета.&lt;br /&gt;&lt;br /&gt;Кстати, к началу 1993 года дистрибутив 386/BSD поменял своё название на NetBSD. В декабре 1993 года появился другой дистрибутив -- FreeBSD, нацеленный на простых пользователей (как и Linux).&lt;br /&gt;&lt;br /&gt;После приобретения USL компанией Novell к лету 1993 года начались переговоры по урегулированию статуса кодов BSD. К январю 1994 CSRG и Novell договорились удалить три файла из 18000 Networking Release 2, часть файлов должна быть подвергнута правке, а к примерно 70 файлам Калифорнийский университет должен был добавить информацию о копирайте USL. В июне 1994 года вышел "чистый" выпуск 4.4BSD-Lite.&lt;br /&gt;&lt;br /&gt;Вот с этого момента группы BSDI, NetBSD и FreeBSD должны были повторно синхронизировать свои версии систем с "чистой" системой 4.4BSD-Lite. Таким образом, все наработки, сделанные за три года с момента подачи иска USL, пришлось пересматривать на предмет нарушения авторских прав и использования стороннего кода. Переписывать важные составляющие ядра и операционного окружения.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Безусловно, три года на судебные тяжбы были потрачены впустую -- ведь разработка кода фактически приостановилась. Это дало шанс вырваться вперёд Линуксу, свободному от "заимствований" проприетарного кода.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-7715536991099604298?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/7715536991099604298/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=7715536991099604298' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7715536991099604298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/7715536991099604298'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/08/blog-post.html' title='Всё произошло из-за демпинга цен!'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-1822715290006675683</id><published>2007-08-08T01:09:00.002+04:00</published><updated>2009-08-13T17:06:19.243+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Sun JDK 1.6.0 на FreeBSD</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FT3khCuHOUg/RrjgnwzogsI/AAAAAAAAAAU/64Itb-aPZ2g/s1600-h/FreeBSD6.2-STABLE_Sun-JDK1.6.0_java2d.Java2DemoApplet.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FT3khCuHOUg/RrjgnwzogsI/AAAAAAAAAAU/64Itb-aPZ2g/s320/FreeBSD6.2-STABLE_Sun-JDK1.6.0_java2d.Java2DemoApplet.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5096069952090702530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Порт: /usr/ports/java/jdk16&lt;br /&gt;&lt;br /&gt;Для инсталляции требует установленного linux-sun-jdk15 или diablo-jdk15 в качестве бутстрапа. На машынке было у меня установлено Diablo-JDK 1.5.0, так что пришлось только (вручную! Из-за лицензионных ограничений) скачать исходники, ссылки на странички которых любезно предоставил установщик make. Пришлось скачать порядка 80Мб. За сорок минут всё собралось и установилось.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-1822715290006675683?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/1822715290006675683/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=1822715290006675683' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1822715290006675683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1822715290006675683'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/08/sun-jdk-160-freebsd.html' title='Sun JDK 1.6.0 на FreeBSD'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FT3khCuHOUg/RrjgnwzogsI/AAAAAAAAAAU/64Itb-aPZ2g/s72-c/FreeBSD6.2-STABLE_Sun-JDK1.6.0_java2d.Java2DemoApplet.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-1313013986190602279</id><published>2007-07-11T16:09:00.012+04:00</published><updated>2010-04-08T20:16:22.147+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Freebsd и Xubuntu: общие папки в сети</title><content type='html'>Имеется: домашняя сетка Ethernet. В неё входят машынки: FreeBSD 6.2-STABLE (IP: 192.168.1.17) и Xubuntu 7.04 (IP: 192.168.1.7).&lt;br /&gt;&lt;br /&gt;Задача: расшарить в сети определённые каталоги FreeBSD и обеспечить доступ к ним пользователя из Xubuntu.&lt;br /&gt;&lt;br /&gt;Решение.&lt;br /&gt;&lt;br /&gt;На FreeBSD нужно расшарить следующие каталоги:&lt;br /&gt;&lt;i&gt;/media/music&lt;/i&gt; — для чтения всем в сети;&lt;br /&gt;&lt;i&gt;/media/video&lt;/i&gt; — для чтения всем в сети.&lt;br /&gt;Будет использоваться сетевой протокол NFS.&lt;br /&gt;&lt;br /&gt;1. Поднятие NFS-сервера на FreeBSD&lt;br /&gt;1.1. Прописать в файле &lt;i&gt;/etc/rc.conf&lt;/i&gt; следующее:&lt;pre&gt;&lt;br /&gt;# NFS-server&lt;br /&gt;rpcbind_enable="YES"&lt;br /&gt;nfs_server_enable="YES"&lt;br /&gt;nfs_reserved_port_only="YES"&lt;br /&gt;nfs_server_flags="-u -t -n 8"&lt;br /&gt;mountd_enable="YES"&lt;br /&gt;mountd_flags="-p 883"&lt;br /&gt;rpc_lockd_enable="YES"&lt;br /&gt;rpc_lockd_flags="-p 884"&lt;br /&gt;rpc_statd_enable="YES"&lt;br /&gt;rpc_statd_flags="-p 885"&lt;/pre&gt;&lt;br /&gt;1.2. Прописать в файле &lt;i&gt;/etc/exports&lt;/i&gt; список совместно используемых ресурсов:&lt;pre&gt;&lt;br /&gt;/media/music -ro -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;/media/video -ro -network 192.168.1.0 -mask 255.255.255.0&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;1.3. Стартовать необходимые сервисы, выполнением следующей команды:&lt;pre&gt;&lt;br /&gt;% /etc/rc.d/mountd onereload&lt;/pre&gt;&lt;br /&gt;Если команда не выполнилась, то можно использовать эту:&lt;pre&gt;&lt;br /&gt;% /etc/rc.d/mountd restart&lt;/pre&gt;&lt;br /&gt;Либо просто перезагрузить FreeBSD.&lt;br /&gt;&lt;br /&gt;1.4. Для проверки, что NFS-сервер заработал, можно дать следующую команду:&lt;pre&gt;&lt;br /&gt;% rpcinfo -p&lt;br /&gt;   program vers proto   port  service&lt;br /&gt;    100000    4   tcp    111  rpcbind&lt;br /&gt;    100000    3   tcp    111  rpcbind&lt;br /&gt;    100000    2   tcp    111  rpcbind&lt;br /&gt;    100000    4   udp    111  rpcbind&lt;br /&gt;    100000    3   udp    111  rpcbind&lt;br /&gt;    100000    2   udp    111  rpcbind&lt;br /&gt;    100000    4 local    111  rpcbind&lt;br /&gt;    100000    3 local    111  rpcbind&lt;br /&gt;    100000    2 local    111  rpcbind&lt;br /&gt;    100005    1   udp    883  mountd&lt;br /&gt;    100005    3   udp    883  mountd&lt;br /&gt;    100005    1   tcp    883  mountd&lt;br /&gt;    100005    3   tcp    883  mountd&lt;/pre&gt;&lt;br /&gt;— говорит о том, что демоны &lt;i&gt;rpcbind&lt;/i&gt;, &lt;i&gt;mountd&lt;/i&gt; и &lt;i&gt;nfs&lt;/i&gt; прослушивают несколько портов для обеспечения взаимодействия по крайней мере с четырьмя потенциальными клиентами.&lt;br /&gt;&lt;br /&gt;Определить, какие ресурсы уже доступны потенциальным клиентам в сети:&lt;pre&gt;&lt;br /&gt;% showmount -e&lt;br /&gt;/media/music             192.168.1.0&lt;br /&gt;/media/video             192.168.1.0&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. Для настройки доступа клиента Xubuntu к расшаренным каталогам сервера FreeBSD, необходимо:&lt;br /&gt;2.1. На Xubuntu прописать в файл &lt;i&gt;/etc/fstab&lt;/i&gt; для доступа к каталогу &lt;i&gt;/media/music&lt;/i&gt; прописать эту строчку:&lt;pre&gt;&lt;br /&gt;192.168.1.17:/media/music   /mnt/music   nfs   rsize=8192,wsize=8192,timeo=14   0   0&lt;/pre&gt;&lt;br /&gt;Для доступа к каталогу &lt;i&gt;/media/video&lt;/i&gt; эту (тоже в одну строку):&lt;pre&gt;&lt;br /&gt;192.168.1.17:/media/video   /mnt/video   nfs   rsize=8192,wsize=8192,timeo=14   0   0&lt;/pre&gt;&lt;br /&gt;2.2. Чтобы сразу подключиться к серверу из Xubuntu, можно дать команду:&lt;pre&gt;&lt;br /&gt;$ sudo mount -a&lt;/pre&gt;&lt;br /&gt;и после ввода пароля для выполнения привелегированной команды &lt;i&gt;mount&lt;/i&gt; через некоторое время расшаренные каталоги подключатся в соответствующие точки монтирования в каталоге &lt;i&gt;/mnt&lt;/i&gt; и будут доступны пользователю.&lt;br /&gt;&lt;br /&gt;Для удобства можно создать символические ссылки в домашнем каталоге пользователя:&lt;pre&gt;&lt;br /&gt;$ ln -s /mnt/music ~/media/musiclib&lt;br /&gt;$ ln -s /mnt/video ~/media/videolib&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2.3. После перезагрузки Xubuntu расшаренные каталоги будут подключаться автоматически, если, конечно, сервер FreeBSD будет доступен в сети.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-1313013986190602279?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/1313013986190602279/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=1313013986190602279' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1313013986190602279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/1313013986190602279'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/07/freebsd-xubuntu.html' title='Freebsd и Xubuntu: общие папки в сети'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-3198624143229383265</id><published>2007-07-08T15:02:00.001+04:00</published><updated>2009-08-04T23:11:10.912+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Музыка'/><title type='text'>Виктор Зинчук</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FT3khCuHOUg/RqBKC30_46I/AAAAAAAAAAM/2zBPg7LhkWw/s1600-h/Amadeus146.jpeg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FT3khCuHOUg/RqBKC30_46I/AAAAAAAAAAM/2zBPg7LhkWw/s320/Amadeus146.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5089148992135095202" /&gt;&lt;/a&gt;&lt;br /&gt;Альбом: Амадеус # 146&lt;br /&gt;Записан: 2003&lt;br /&gt;Издан: 2003, Квадро-диск (KTL02-666)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Список композиций:&lt;br /&gt;1. Соната # 14 "Лунная"&lt;br /&gt;2. Менуэт из нотной тетради Анны Магдалены Бах&lt;br /&gt;3. Концерт # 1 Ля-минор&lt;br /&gt;4. Ария из оркестровой сюиты ( D-dur )&lt;br /&gt;5. Амадеус # 146&lt;br /&gt;6. Вуаль Лауры&lt;br /&gt;7. Симфония из партиты До-минор&lt;br /&gt;8. Серенада&lt;br /&gt;9. Полуночный танец благородного призрака&lt;br /&gt;10. Утро бедного Людовика&lt;br /&gt;11. Хорал ( кантата # 147 )&lt;br /&gt;&lt;br /&gt;При участии:&lt;br /&gt;АБРАМОВ, Анатолий - Ударные,Перкуссия&lt;br /&gt;РЫЖОВ, Сергей - Бас-гитара&lt;br /&gt;СТАРКОВ, Андрей - Звукорежиссура&lt;br /&gt;ПОГИБА, Юрий - Клавишные&lt;br /&gt;ЗИНЧУК, Виктор - Гитара&lt;br /&gt;ГЕЦЕЛЕВА, Екатерина - Орган&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;С изящной лютневой гитарой в неопрятных индустриальных пейзажах. Произведенная для альбома фотосессия этого альбома Виктора Зинчука очень точно отражает его довольно странную, противоречивую суть.&lt;br /&gt;Стилистически альбом можно поделить на три части - неравные как количеством, так и качеством. Первая - рок-обработка баховского "Концерта N1 ля-минор", записанная с нормальным рок-аккомпаниментом - ударными, клавишными и басом. На басу здесь, а также в финальном "Хорале" из баховской же "Кантаты N147", играл, следует заметить, небезызвестный Сергей Рыжов (ВИА Фантазия, Красные Маки, Динамик, Веселые Ребята). Чем-то эта композиция даже напоминает обработки классики у старой группы Nice. Вторая часть - сочиненные самим Зинчуком довольно сложные пьесы для акустической гитары, струнной группы и малой толики перкуссии ("Вуаль Лауры", Полуночный Танец Благородного Призрака"). A "Утро Бедного Людовика" - это просто гитарная пьеса, лаконичная и красивая. В уже упомянутом "Хорале" рок и классика, что приятно, сходятся воедино. В общем, эти треки - просто прелесть. Проблема лишь в том, что это - меньшая часть программы.&lt;br /&gt;Остальные шесть номеров записаны Зинчуком явно при посредстве домашнего компьютера. Честно говоря, это наименее вдохновляющая, хотя и самая объемная часть программы. Наиболее выдержанно здесь звучит, пожалуй, лишь "Ария Из Оркестровой Сюиты" все того же И.С.Баха. И органные сэмплы неплохие, и партитура загнанной в компьютер партии правильная, и гармония с акустической гитарой выдержана на все сто. А вот компьютеризированную "Лунную Сонату" Л Бетховена или заглавный авторский номер "Амадеус N146", выдержанный не в самых лучших традициях Enigma, слушать не особенно приятно. Даже классический орган в "Симфонии Из Партиты До-Минор" исполняет здесь лишь вступление и финал - остальное место отдано мучительному поиску взаимопонимания между классической гитарой и компьютерными программами.&lt;br /&gt;Подобным формальным подходом к музыкальному сопровождению, увы, грешат очень многие работы Зинчука. Что в общем-то, объяснимо: свои первые гитарные фантазии на тему классической музыки музыкант был вынужден исполнять преимущественно под "минусовку", наигранную, судя по звуку, на развративших не одно поколение наших поп- и рок-музыкантов клавишах Yamaha DX7 и PSR. От этого проклятия не так-то легко избавиться. Приятно, однако, уже то, что программированные звуки звучат в работах Виктора все реже. И хотелось бы надеяться, что все музыкальное сопровождение в новом альбоме Зинчука будет живым. Даже не суть важно, роковым, или классическим. Главное, что и то и другое гитаристу удается куда лучше, нежели расстановка значков по нотным линейкам на мониторе домашней студии.&lt;br /&gt;&lt;br /&gt;12.11.2003, БЕБЕНИН, Дмитрий (ЗВУКИ РУ)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-3198624143229383265?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/3198624143229383265/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=3198624143229383265' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3198624143229383265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/3198624143229383265'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/07/blog-post.html' title='Виктор Зинчук'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_FT3khCuHOUg/RqBKC30_46I/AAAAAAAAAAM/2zBPg7LhkWw/s72-c/Amadeus146.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-8727582649413533440</id><published>2007-07-02T14:01:00.001+04:00</published><updated>2009-08-04T23:06:04.004+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Температурные сенсоры системы</title><content type='html'>Температурные сенсоры системы во FreeBSD можно посмотреть так:&lt;code&gt;&lt;br /&gt;&gt; sysctl -a | grep thermal&lt;/code&gt; выдаст: &lt;code&gt;&lt;br /&gt;hw.acpi.thermal.min_runtime: 0&lt;br /&gt;hw.acpi.thermal.polling_rate: 10&lt;br /&gt;hw.acpi.thermal.user_override: 0&lt;br /&gt;hw.acpi.thermal.tz0.temperature: 37,0C&lt;br /&gt;hw.acpi.thermal.tz0.active: -1&lt;br /&gt;hw.acpi.thermal.tz0.passive_cooling: 1&lt;br /&gt;hw.acpi.thermal.tz0.thermal_flags: 0&lt;br /&gt;hw.acpi.thermal.tz0._PSV: 68,0C&lt;br /&gt;hw.acpi.thermal.tz0._HOT: -1&lt;br /&gt;hw.acpi.thermal.tz0._CRT: 70,0C&lt;br /&gt;hw.acpi.thermal.tz0._ACx: 68,0C -1 -1 -1 -1 -1 -1 -1 -1 -1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Что сие означает:&lt;code&gt;&lt;br /&gt;&gt; sysctl  -d hw.acpi.thermal.tz0&lt;br /&gt;hw.acpi.thermal.tz0:&lt;br /&gt;hw.acpi.thermal.tz0.temperature: current thermal zone temperature&lt;br /&gt;hw.acpi.thermal.tz0.active: cooling is active&lt;br /&gt;hw.acpi.thermal.tz0.passive_cooling: enable passive (speed reduction) cooling&lt;br /&gt;hw.acpi.thermal.tz0.thermal_flags: thermal zone flags&lt;br /&gt;hw.acpi.thermal.tz0._PSV: passive cooling temp setpoint&lt;br /&gt;hw.acpi.thermal.tz0._HOT: too hot temp setpoint (suspend now)&lt;br /&gt;hw.acpi.thermal.tz0._CRT: critical temp setpoint (shutdown now)&lt;br /&gt;hw.acpi.thermal.tz0._ACx:&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Приятно сознавать, что есть некое удобство контроля за железом. :)&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;Сегодня обновил свою системку (ядро и userland). За полтора часа пересобрал. Теперь она: FreeBSD 6.2-STABLE #0: Mon Jul 2 11:58:25 MSD 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-8727582649413533440?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/8727582649413533440/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=8727582649413533440' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8727582649413533440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8727582649413533440'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/07/blog-post_02.html' title='Температурные сенсоры системы'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-5803402207900792229</id><published>2007-06-16T19:49:00.000+04:00</published><updated>2007-07-13T21:23:59.989+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Переключатели локалей Firefox и Thunderbird</title><content type='html'>Переключатели локалей Firefox и Thunderbird во FreeBSD позволяют преобразовать интерфейс Firefox и Thunderbird для отображения пунктов меню и служебного контента на русском языке -- одном из доступных языков, следи которых так же доступны: английский, немецкий, французский, итальянский, японский, голландский, португальский и китайский.&lt;br /&gt;&lt;br /&gt;Инсталляция производится обычным образом.&lt;br /&gt;Для Firefox 2.0.0.4:&lt;br /&gt;&lt;code&gt;# cd /usr/ports/www/firefox-i18n &amp;&amp; make install clean&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Для Thunderbird 2.0.0.4, соответственно:&lt;br /&gt;&lt;code&gt;# cd /usr/ports/mail/thunderbird-i18n &amp;&amp; make install clean&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;После инсталляции *.xpi-модулей, в главном меню Firefox и Thunderbird в разделе "Tools" появляется список "Quick Locale Switcher", в котором можно выбрать требуемую локаль и после перезагрузки браузера (или почтовика) интерфейс преобразиться.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-5803402207900792229?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/5803402207900792229/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=5803402207900792229' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5803402207900792229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/5803402207900792229'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/06/firefox-thunderbird.html' title='Переключатели локалей Firefox и Thunderbird'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1640831195049620902.post-8802674957616008742</id><published>2006-09-30T22:28:00.001+04:00</published><updated>2009-08-13T17:07:18.824+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPP'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>PPP Bluetooth/GPRS во FreeBSD</title><content type='html'>&lt;b&gt;Настройка PPP Bluetooth/GPRS во FreeBSD&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Читаем &lt;a href="http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/network-bluetooth.html"&gt;раздел хэндбука FreeBSD, посвящённый Bluetooth&lt;/a&gt; и выбираем из него некоторые полезные моменты.&lt;br /&gt;&lt;br /&gt;2. Если модуль поддержки Bluetooth не прописан в автозагрузку в файле &lt;i&gt;/etc/rc.conf&lt;/i&gt;, то загружаем его из командной строки:&lt;br /&gt;&lt;code&gt;% kldload ng_ubt&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;и прописываем его в автозагрузку в файле &lt;i&gt;/etc/rc.conf&lt;/i&gt;:&lt;br /&gt;&lt;code&gt;hcsecd_enable="YES"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Скопируйте файл &lt;i&gt;/usr/share/examples/netgraph/bluetooth/rc.bluetooth&lt;/i&gt; в какое-нибудь подходящее место, например, в файл &lt;i&gt;/etc/rc.bluetooth&lt;/i&gt;. Этот скрипт используется для запуска и остановки работы Bluetooth-стека. Дайте права на запуск:&lt;br /&gt;&lt;code&gt;% chmod 755 /etc/rc.bluetooth&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. При запуске стека вы получите сообщения, подобные следующим:&lt;br /&gt;&lt;code&gt;% /etc/rc.bluetooth start ubt0&lt;br /&gt;BD_ADDR: 00:02:72:00:d4:1a&lt;br /&gt;Features: 0xff 0xff 0xf 00 00 00 00 00&lt;br /&gt;&lt;3-Slot&gt; &lt;5-Slot&gt; &lt; Encryption &gt; &lt; Slot offset &gt;&lt;br /&gt;&lt; Timing accuracy &gt; &lt; Switch &gt; &lt; Hold mode &gt; &lt; Sniff mode &gt;&lt;br /&gt;&lt; Park mode&gt; &lt;RSSI &gt; &lt; Channel quality&gt; &lt; SCO link &gt;&lt;br /&gt;&lt; HV2 packets&gt; &lt;HV3 packets &gt; &lt; u-law log &gt; &lt; A-law log &gt; &lt; CVSD &gt;&lt;br /&gt;&lt; Paging scheme &gt; &lt; Power control &gt; &lt; Transparent SCO data &gt;&lt;br /&gt;Max. ACL packet size: 192 bytes&lt;br /&gt;Number of ACL packets: 8&lt;br /&gt;Max. SCO packet size: 64 bytes&lt;br /&gt;Number of SCO packets: 8&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5. Одной из самой часто выполняемой задач является обнаружение Bluetooth-устройств в радиусе RF-доступности. Эта операция называется опросом (inquiry). Опрос и другие операции, связанные с HCI, выполняются при помощи утилиты hccontrol(8). Пример ниже показывает, как найти доступные устройства Bluetooth. Список таких устройств должен быть получен в течение нескольких секунд. Заметьте, что удалённые устройства будут отвечать на опрос, если только они находятся в режиме обнаруживаемости (discoverable).&lt;br /&gt;&lt;code&gt;% hccontrol -n ubt0hci inquiry&lt;br /&gt;Inquiry result, num_responses=1&lt;br /&gt;Inquiry result #0&lt;br /&gt;       BD_ADDR: 00:80:37:29:19:a4&lt;br /&gt;       Page Scan Rep. Mode: 0x1&lt;br /&gt;       Page Scan Period Mode: 00&lt;br /&gt;       Page Scan Mode: 00&lt;br /&gt;       Class: 52:02:04&lt;br /&gt;       Clock offset: 0x78ef&lt;br /&gt;Inquiry complete. Status: No error [00]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;BD_ADDR является уникальным адресом устройства Bluetooth, вроде MAC-адресов сетевых адаптеров. Этот адрес необходим для дальнейшей работы с устройством. Адресу BD_ADDR можно присвоить удобное для чтения имя. Файл &lt;i&gt;/etc/bluetooth/hosts&lt;/i&gt; содержит информацию об известных хостах Bluetooth. В следующем примере показано, как получить имя, назначенное удалённому устройству:&lt;br /&gt;&lt;code&gt;% hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4&lt;br /&gt;BD_ADDR: 00:80:37:29:19:a4&lt;br /&gt;Name: T610&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Если вы выполните опрос на другом Bluetooth-устройстве, но ваш компьютер будет опознан как ''your.host.name (ubt0)''. Имя, назначаемое локальному устройству, может быть в любой момент изменено.&lt;br /&gt;&lt;br /&gt;7. Спаривание Bluetooth-устройств.&lt;br /&gt;По умолчанию связь Bluetooth не аутентифицируется, поэтому любое устройство может общаться с любым другим. Устройство Bluetooth (например, сотовый телефон) может задать обязательность аутентификации для предоставления определённого сервиса (в частности, услугу доступа по коммутируемой линии). Bluetooth-аутентификация обычно выполняется через PIN-коды. PIN-код представляет из себя ASCII-строку длиной до 16 символов. Пользователь обязан ввести один и тот же PIN-код на обоих устройствах. Как только он введёт PIN-код, оба устройства сгенерируют ключ связи. После этого ключ может быть сохранён либо в самом устройстве, либо на постоянном носителе. В следующий раз оба устройства будут использовать ранее сгенерированный ключ соединения. Процедура, описанная выше, носит название подгонки пары (pairing). Заметьте, что если ключ связи потерян любой из сторон, то подбор пары должен быть повторен.&lt;br /&gt;&lt;br /&gt;За обработку всех запросов на Bluetooth-аутентификацию отвечает даемон hcsecd(8). По умолчанию файл конфигурации называется &lt;i&gt;/etc/bluetooth/hcsecd.conf&lt;/i&gt;. Пример раздела, содержащего информацию о сотовом телефоне с явно заданным PIN-кодом ''1234'' приведен ниже:&lt;br /&gt;&lt;code&gt;device {&lt;br /&gt;        bdaddr  00:80:37:29:19:a4;&lt;br /&gt;        name    "T610";&lt;br /&gt;        key     nokey;&lt;br /&gt;        pin     "1234";&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Кроме длины, на PIN-коды не накладывается никаких ограничений. Некоторые устройства (например, Bluetooth-гарнитуры) могут иметь фиксированный встроенный PIN-код. Параметр -d позволяет запустить hcsecd(8) как нефоновый процесс, что облегчает просмотр происходящих событий. Задайте получение парного ключа на удалённом устройстве и инициируйте Bluetooth-соединение с этим устройством. Удалённое устройство должно подтвердить получение пары и запросить PIN-код. Введите тот же самый код, что находится в &lt;i&gt;hcsecd.conf&lt;/i&gt;. Теперь ваш ПК и удалённое устройство спарены. Альтернативным способом является инициация процесса создания пары на удалённом устройстве.&lt;br /&gt;&lt;br /&gt;8. Доступ к сети по коммутируемой линии связи (DUN) и по протоколу PPP (LAN).&lt;br /&gt;Модуль работы с коммутируемым доступом к сети (DUN - Dial-Up Networking) в большинстве случаев используется с модемами и сотовыми телефонами. Этот модуль покрывает следующие случаи:&lt;br /&gt;&lt;br /&gt;* сотовый телефон или модем используется вместе с компьютером в качестве беспроводного модема для подключения к серверу коммутируемого доступа в Интернет, или другой коммутируемой услуге;&lt;br /&gt;* сотовый телефон или модем используется компьютером для приёма входящих соединений.&lt;br /&gt;&lt;br /&gt;Модуль доступа к сети по протоколу PPP (Network Access with PPP - LAN) может использоваться в следующих ситуациях:&lt;br /&gt;&lt;br /&gt;* доступ к ЛВС для одного Bluetooth-устройства;&lt;br /&gt;* доступ к ЛВС для нескольких Bluetooth-устройств;&lt;br /&gt;* связь между двумя ПК (при помощи протокола PPP поверх эмулируемого последовательного канала связи).&lt;br /&gt;&lt;br /&gt;Во FreeBSD оба случая реализуются при помощи сервисных программ ppp(8) и rfcomm_pppd(8) - это обработчик, преобразующий RFCOMM-соединения Bluetooth в нечто, с чем может работать PPP. Перед тем, как использовать любой модуль, в файле &lt;i&gt;/etc/ppp/ppp.conf&lt;/i&gt; должна быть создана новая PPP-метка. Примеры использования можно найти в справочной странице к rfcomm_pppd(8).&lt;br /&gt;&lt;br /&gt;Для сервиса Билайн-Интернет в файле &lt;i&gt;/etc/ppp/ppp.conf&lt;/i&gt; у меня работает следующая конструкция:&lt;br /&gt;&lt;code&gt;beelinebt:&lt;br /&gt;shell rfcomm_sppd -a 00:80:37:29:19:a4 -t /dev/ttyp6 -b&lt;br /&gt;set log Chat Command&lt;br /&gt;set device /dev/ttyp6&lt;br /&gt;set speed 115200&lt;br /&gt;set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \&lt;br /&gt;           \"\" AT OK-AT-OK ATE1Q0 OK \&lt;br /&gt;           AT+CGDCONT=1,\\\"IP\\\",\\\"internet.beeline.ru\\\" OK \&lt;br /&gt;           AT+CGATT=1 OK \&lt;br /&gt;           \dATDT\\T TIMEOUT 40 CONNECT"&lt;br /&gt;set logout "ABORT BUSY ABORT ERROR TIMEOUT 30 \&lt;br /&gt;             \"\" +++ATH OK-ATH-OK AT+CGATT=0 OK"&lt;br /&gt;set mode background&lt;br /&gt;set phone "*99***1#"&lt;br /&gt;set authname beeline&lt;br /&gt;set authkey beeline&lt;br /&gt;set timeout 0&lt;br /&gt;set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0&lt;br /&gt;add default HISADDR&lt;br /&gt;enable dns&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;9. Пропишите в файле &lt;i&gt;/etc/resolv.conf&lt;/i&gt; адреса билайновских DNS-серверов Интернета:&lt;br /&gt;&lt;code&gt;nameserver 217.118.66.243&lt;br /&gt;nameserver 217.23.64.2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;10. Установление bluetooth-соединения через GPRS-модем телефона следующей серией команд:&lt;br /&gt;&lt;code&gt;% rfcomm_sppd -a 00:80:37:29:19:a4 -t /dev/ttyp6 -b&lt;br /&gt;% ppp -auto beelinebt&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;11. После перезагрузки машины под обычным пользователем для установления Интернет-моединения можно набрать тоько одну команду:&lt;br /&gt;&lt;code&gt; &gt; ppp -auto beelinebt&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Закрытие соединения можно провести командой (хотя это не совсем корректно и может "сбить телефон с толку"):&lt;br /&gt;&lt;code&gt; &gt; killall ppp&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(Проверялось в системе FreeBSD6.1 на связке Bluetooth-USB-адаптера D-Link DBT-120 и телефона Sony-Ericsson T610. Работает устойчивее, чем в Linux/Xubuntu.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1640831195049620902-8802674957616008742?l=izenfire.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://izenfire.blogspot.com/feeds/8802674957616008742/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1640831195049620902&amp;postID=8802674957616008742' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8802674957616008742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1640831195049620902/posts/default/8802674957616008742'/><link rel='alternate' type='text/html' href='http://izenfire.blogspot.com/2007/07/ppp-bluetoothgprs-freebsd.html' title='PPP Bluetooth/GPRS во FreeBSD'/><author><name>iZEN</name><uri>http://www.blogger.com/profile/05672297564535855076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
