Архив рубрики «UNIX»

Проблема остановки: доказательство неразрешимости

Последнее время (начало 2009 года) мне довелось принять участие в обсуждении различных способов организации грамматического разбора (спасибо habrahabr). Эти обсуждения натолкнули меня на мысль о том, что очень многие программисты склонны разделять существующие задачи на сложные и простые. Они (программисты) находятся во власти наивных иллюзий, что любую задачу можно решить, надо только найти алгоритм. Из-за этого большинству даже не приходит в голову, что задачи можно (и нужно!) систематизировать; очень часто безосновательно делаются очень общие высказывания; неуместно используются слова «всегда», «никогда», «любой»; используются наивные характеристики типа «достаточно сложный». Всё это подтолкнуло меня к написанию заметки о неразрешимых задачах.
Прочитать остальную часть записи »

Настройка редактора vi: макросы, русификация, настройки

Настройка редактора vi

Привожу здесь свой файл настроек vi — ~/.exrc

Но обратите внимание на то, что если его просто скопипаситить, то работать будет не всё(!) Читайте ниже о том, как правильно создать свой .exrc.

" ————— setup
set autoindent
set backup="vi.bak"
set showmode
set exrc
set extended
set ruler
set verbose
set sw=2
" ————— macro
" F1 sh
map OPsh 1Gi#!/bin/sh^M^M^[«
" F1 py
map OPpy 1Gi#!/usr/local/bin/python^M^M^[«
" F1 pl
map OPpl 1Gi#!/usr/local/bin/perl^M^M^[«
" F2
map OQ :w^M
" F3
map OR :wq^M
" esc-esc
map ^[^[ :q^M
" ————— ru
map й q
map ц w
map у e
map к r
map е t
map н y
map г u
map ш i
map щ o
map з p
map х [
map ъ ]
map ф a
map ы s
map в d
map а f
map п g
map р h
map о j
map л k
map д l
map ж ;
map э '
map я z
map ч x
map с c
map м v
map и b
map т n
map ь m
map Й Q
map Ц W
map У E
map К R
map Е T
map Н Y
map Г U
map Ш I
map Щ O
map З P
map Х {
map Ъ }
map Ф A
map Ы S
map В D
map А F
map П G
map Р H
map О J
map Л K
map Д L
map Ж :
map Э "
map Я Z
map Ч X
map С C
map М V
map И B
map Т N
map Ь M
map Б <
map Ю >
" эти две пары конфликтуют
" можно оставить либо одну, либо другую
"map б ,
"map ю .
map . /
map , ?

Прочитать остальную часть записи »

Команды vi: Краткая справка по командам редактора vi

Несколько слов об этом руководстве. При его создании я руководствовался следующими целями: На первом месте должна быть компактность. Руководство описывает только суть команд. Детали можно прочитать в полном руководстве или просто попробовать, запустив vi. Во-вторых, руководство должно быть полным. Это не краткое руководство «как выйти из vi», а полное описание всех возможностей. Пока описано не всё, но те аспекты работы в vi, которые затронуты в этом руководстве, освещены с максимальной детальностью.
Прочитать остальную часть записи »

Сборка evilwm: Xorg, оконный менеджер, панель управления

evilwm — лучший оконный менеджер
За десять лет использования X Window System я перепробовал множество оконных менеджеров. Под какими-то работал годами, какие-то просто попробовал на один зуб. И общее направление моей «эволюции» практически всегда шло к упрощению оформления рабочего стола. В конце концов, я фактически сделал свой собственный оконный менеджер. Сделан он из evilwm 0.99.25 (http://www.6809.org.uk/evilwm/).
Прочитать остальную часть записи »

Сборка PHP: PHP, MySQL, графическая библиотека GD, jpeg, png, ttf

Общие замечания
Эти советы не годятся для настройки рабочего сервера. Они написаны для создания Apache/PHP-среды на локальной машине для разработки и тестирования. Больше того, PHP устанавливается в максимально «гостевом» режиме — так, чтобы (i) он не вступил в конфликт ни с одним проектом, из тех, что уже есть на машине; и (ii) его можно было безболезненно удалить как только в нём пропадёт необходимость.
Прочитать остальную часть записи »

Сборка Perl и mod_perl: Сборка Perl и mod_perl, утечки памяти, настройка

Общие замечания
Эта заметка относится к Apache 1.3. Версия 2.0 заметно отличается.

При установке ПО из исходников, я предпочитаю не «портить» систему. На большинстве серверов вы обнаружите ПО, собранное именно с общепринятыми опциями.

Поэтому я собираю ПО из-под пользователя (не root) и устанавливаю в домашней папке этого пользователя.
Прочитать остальную часть записи »

Сборка mod_python: связка Python — Apache

Общие замечания
Современный mod_python не поддерживает Apache 1.3. Вам понадобится Apache старше 2.0.

Сборка mod_python
В сборке mod_python очень прост.

Наиболее ценными являются две опции конфигурирования:

./configure —prefix=$inst_pref \
—with-apxs=$ap_pref/bin/apxs

Прочитать остальную часть записи »

Сборка Python 2.6 под FreeBSD : Установка Python из исходных кодов

Решил я тут установить себе Python 2.6. В портах его нет, а из исходных текстов Python под FreeBSD всегда ставился не охотно. Пришлось разобраться.

Проблема
При сборке Python под FreeBSD make выдаёт сообщение:

gcc -shared build/[…]/Modules/_cursesmodule.o \
-L/usr/local/lib -lncursesw -o build/[…]/_curses.so
Segmentation fault (core dumped)
*** Error code 139

Прочитать остальную часть записи »

Qemu: Windows под UNIX: виртуальная машина qemu (kqemu) под FreeBSD

Какие задачи решаем (запуск Winodws под FreeBSD)
Qemu — универсальное средство (официальный сайт Qemu). Он создаёт виртуальные машину, на которой можно запустить любую ОС. Я его использую для запуска Windows (XP) на FreeBSD. Как это сделать я и собираюсь вкратце рассказать.
Установка qemu под FreeBSD
Прочитать остальную часть записи »

FreeBSD: звук : FreeBSD запись wav, mp3, CD

Пишем звук с микрофона
Прежде всего запустите команду aumix и убедитесь, что чувствительность микрофона не на нуле. Программа имеет очень понятный интерфейс, а канал микрофона показан красной буквой R, так-что вы не запутаетесь.

Кстати, эта же программа позволяет регулировать и другие каналы, включая такую полезную вещь, как миксер. Вы можете подать сигнал с микрофона сразу на колонки или на линейный выход. Здесь же вы можете отрегулировать баланс левого и правого канала и многое другое. Кроме того, программа aumix может работать не только в интерактивном режиме, загляните в man 1 aumix.
Прочитать остальную часть записи »

Работа с CD/DVD : Записать, прочитать, стереть, дописать под FreeBSD CD, DVD, boot, bootable, GRUB, eltorito

Информация рассчитана в первую очередь на пользователей FreeBSD, но большая её часть справедлива и для других UNIX.

Монтируем диски и образы
Монтируем CD и DVD одинаково:

mount_cd9660 -o ro /mnt /dev/acd0

Смонтировать образ можно в две команды:

mdconfig -a -t vnode -f file.iso -u 0 -o readonly
mount -t cd9660 /dev/md0 /mnt/iso

Прочитать остальную часть записи »

ftpd через rc.d : Настройка демона ftpd во FreeBSD

rc.d-скрипт для запуска ftpd
Те, кто интересовался вопросом запуска ftpd под FreeBSD 6.0 и ниже, конечно знают, что для этого демона не предусмотрено запускающего скрипта (он появился в версии 6.1). Предполагается, что служба FTP может запускаться только через inetd. На сколько это разумно — судить не мне, но лично я не понимаю, почему я должен запускать и настраивать inetd+ftpd, если мне нужен только ftpd.
Прочитать остальную часть записи »

Элементарная безопасность : FreeBSD безопасность syslogd, lpd, xorg, mysql

Эта информация может быть полезна всем пользователям FreeBSD и других UNIX-подобных систем. Проще всего обезопасить свою систему, просто запретив демонам «слушать» внешний мир. Если в вашей системе много демонов, то вы можете воспользоваться более сложным, но и более гибким решением — настроить FireWall.
Прочитать остальную часть записи »

Различные UNIX-утилиты: ssh-инструменты, генерация md5, subshell.c-ошибки на консоли, ntpdate – синхронизация времени

Здесь я собрал небольшую коллекцию информационных и вспомогательных утилит и различных приёмов, которые бывают очень полезны, но пользуешься ими редко и названия и ключи забываются.

(Честно говоря, информация стала уже слишком разношёрстна, надо бы её уже разделить на несколько страниц, но всё руки не дойдут.)
Прочитать остальную часть записи »

FreeBSD и bluetooth : приём и передача файлов через USB-bluetooth-адаптер

Про работу с bluetooth-устройствами под FreeBSD сказано очень много… я бы сказал: очень много лишнего. На самом деле всё гораздо проще, чем пишут в блогах и даже в handbook. Я думаю, это связано с тем, что информация устаревает. Я опишу как работать с USB-bluetooth адаптером под FreeBSD 6.1, возможно на более старых версиях этих действий будет недостаточно.
Прочитать остальную часть записи »

Subversion: svn+ssh : Доступ к SVN по ssh-туннелю

Существует множество развитых средств работы с Subversion. Но иногда необходимо поднять хранилище так чтобы: это не заняло много времени, не требовало бы сложного администрирования, хранилище было бы доступно удалённо и доступ это был бы надёжно защищён. Это совсем не сложно.
Прочитать остальную часть записи »

Настройка OpenVPN : OpenVPN, ключ, key, firewall

В большинстве Internet-источников рассказано, как настроить OpenVPN с X.509. Это процедура, сложность которой далеко не всегда оправдана. Но есть и более простой способ, который нигде толком не описан (я нашёл хорошее HOWTO только на английском языке). Вот его-то я и хочу описать.
Прочитать остальную часть записи »

Настройка ipfw (FireWall) : firewall на FreeBSD, включая dummynet

В Интернете есть много пространных рассказов про то как настроить межсетевые фильтры, экраны, объединить сети и прочие сложности. Я про это писать не буду. Я напишу несколько простых рецептов и примеров, вполне готовых к использованию и рассчитанных на рядового пользователя, которые помогут ему защититься от внешнего вторжения.
Прочитать остальную часть записи »

FreeBSD: начальная настройка

Здесь вы найдёте некоторые рецепты, выработанные мною. Учтите, это просто памятка, а не руководство. Я просто цитирую куски своих настроечных файлов и даю минимальные комментарии.

Права на устройства в devfs
Права на устройства проще всего настроить в /etc/devfs.conf. Там есть примеры на все случаи жизни. Но devfs.conf не может влиять на устройства, которые появляются уже после загрузки системы. Это обычно USB-устройства.
Прочитать остальную часть записи »

Настройка Xorg : Графический интерфейс, Xnest, xterm, кодировка

Начальная настройка Xorg

Конфигурационный файл составляется автоматически по команде

Xorg -configure

Далее прописываем определённую моду в секцию "Screen", например так:

Modes "1280×1024"

Прочитать остальную часть записи »

Кодировка в MySQL 4.1 : русские кодировки koi8r, windows 1251

Несколько слов о кодировках в MySQL 4.1 (но не 4.0).

Самое приятное в версии 4.1 то, что кодировки в которых работают клиент и сервер можно указывать отдельно. Поэтому для смены кодировки пересобирать сервер совсем не обязательно.
Настройка клиентов через my.cnf
Прочитать остальную часть записи »

Протоколирование SQL-запросов : log-file, протокол, MySQL запросы, отладка

Иногда, при отладке, очень хочется посмотреть, какие запросы получает MySQL-сервер. Узнать это очень просто: надо включить режим протоколирования.
Включаем протоколирование SQL-запросов

Пишем в /etc/my.cnf в секцию mysqld строчку:

[mysqld]
log = /var/log/MySQL.log

Прочитать остальную часть записи »

Брошюруем djvu – как сделать djvu книгу

Есть места (например, трамвай), где очень кстати бывает почитать книжку, но читать с экрана в таких местах так же невозможно, как и с листов А4. В конце концов, я решил преобразовать djvu в удобную брошюру. Процесс это достаточно творческий, зависит от качества книги, от её объёма и размера листов… поэтому универсального инструмента я так пока и не нашёл (не сделал). Здесь я описываю набор приёмов, комбинируя которые можно быстро добиться желаемого результата.
djvu книга
Прочитать остальную часть записи »

Преобразование pod в pdf, perl old documentation, text, latex, postscript, pdf

Для преобразование pod в pdf понадобятся некоторые системы. Проще всего воспользоваться системой LaTeX.

Сперва делаем PostScript:

#!/bin/sh
f=DBI
pod2latex -out $f.t $f.pm
( cat doc-head-12pt.tex
perl -pe 's/section\*/section/g' $f.t.tex
cat doc-tail.tex ) > $f.tex
latex $f.tex
latex $f.tex
dvips -o $f.ps $f.dvi

Прочитать остальную часть записи »

Русификация a2ps, UNIX, настройка печати, lpd, конвертирование текста в PostScript

Преобразовать обычный текста в формат PostScript можно с помощью утилиты a2ps. Её удобно использовать для печати обычных ASCII файлов (подробно о настройке lpd-фильтров печати и сетевой печати, отдельная страница этого сайта посвящена вопросам безопасности). Основная проблема с русскими буквами.
Прочитать остальную часть записи »

Сетевой принтер через lpd: Настройка, печать

Когда я впервые пытался настроить печать на сетевой принтер из FreeBSD, я с удивлением обнаружил, что советы, которыми наводнена Всемирная Паутина мне не подходят. Handbook мне тоже не помог. Возможно, авторы этих советов пользовались старой версией lpd. Приведённая здесь информация актуальна для FreeBSD от 5.3 до 6.0, но возможно она пригодится и пользователям Linux и других UNIX.
Прочитать остальную часть записи »

Web-сервер Apache: добавление HTML на лету

Вопрос о том, как добавить некий фрагмент HTML-кода к существующим статическим HTML-файлам «на лету» (не модифицируя сами файлы), встречается на форумах так часто, что я решил раскатать здесь об одном, самом простом и доступном, способе.
Задача

Итак, пусть мы имеем набор HTML-файлов вида:

<html>
<body>
<h1>ok</h1>
</body>
</html>

Прочитать остальную часть записи »

Apache-proxy : proxy-сервер на базе HTTP-сервера Apache, управление HTTP-заголовками

Apache можно использовать в качестве proxy-сервера. Для этого ему нужен стандартный модуль mod_proxy. Поддерживается оба варианта проксирования. Кроме того, Apache может проксировать не только HTTP, но я здесь буду говорить про HTTP.
Обычный proxy

Обычный proxy-сервер работает по схеме:

[клиент] < -> [proxy] < -> [любой сервер в интернете]

Прочитать остальную часть записи »




Статистика