nixp.ru v3.0

28 мая 2017,
воскресенье,
11:45:54 MSK

DevOps с компанией «Флант»
Anarchist написал 21 января 2008 года в 16:12 (2390 просмотров) Ведет себя как мужчина; открыл 258 тем в форуме, оставил 4097 комментариев на сайте.

Ну и первый вариант на занесение в оный (nixp.ru — лучшая шпаргалка):

Q: Как мне перекодировать Real Audio (.ra || .rm) во что-нибудь удобоваримое?

A: В .wav он перекодируется средствами mplayer’а следующим образом:

$ mplayer -ao pcm:file=temp_file.wav some_file.ra

MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2007 MPlayer Team

Anarchist

Не FAQ, но на память:

Q: Как в lilo сделать такой красивый чёрный экран, вгоняющий в ступор большинство виндузятников?

A: В конфиге закомментировать строчку

install = /boot/boot-menu.b

вместо неё прописать

install=text

Ну и, естественно, переписать загрузчик.

Получается не столь эффектно, как в славные времена Red Hat 5.2, но весьма приятственно.

fly4life

Периодически приходится просить привести конфигурационный файл.

Q: Как вывести на экран содержимое файла без комментариев (’#', ';’) и знаков табуляции:

A:

cat /etc/samba/smb.conf | grep -v "^#" | grep -v "^;" | grep -v "^[[:space:],\t]*$"
Anarchist

Q: Как настроить переключение раскладок клавиатуры между русской и английской средствами X-сервера?

A: В конфигурационном файле xorg.conf прописать следующую секцию (суффикс '(winkeys)' для русской раскладки опционален):

Option "XkbLayout"  "us,ru(winkeys)"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
Anarchist

Q: Как узнать конфигурацию ядра с которым я сейчас работаю?

A: В стандартной конфигурации ядра предусмотрено сохранение онфигурации в файле /proc/config.gz. Соответственно, для сохранения конфигурации ядра в файле необходимо выполнить следующую команду:

$ zcat /proc/config.gz > my_kernel_config

Если же у Вас эта опция отключена (ядро собрано с не стандартным набором опций), то Вы сами должны знать конфигурацию своего ядра.

Q: После пересборки нового ядра с старым конфигом система не загружается.

A: Конфигурационные файлы ядер разных версий не обладают 100% совместимостью. Поэтому старый конфиг можно использовать в качестве шаблона, но не стоит ему полностью доверять.

Навскидку на моей памяти: при использовании конфига от 2.6.19 для сборки ядра 2.6.22, если корневой раздел расположен на SATA-диске — система не загрузится.

metal

Q: Как использовать старый конфиг для сборки новой версии ядра linux?

A: Надо сделать make oldconfig. Будут заданы вопросы по изменившимся и новым опциям ядра.

metal

Q: Что такое пакетный менеджер?

A: Это программа с помощью которой можно управлять установкой/удалением пакетов.

Q: Что такое пакет?

A Пакет это программа( или библиотеке, набор скриптов) которая подготовлена для конкретного дистрибутива.

Q: Я хочу программу xxx, как мне ее установить?

A: Для установки программы надо найти соответствующий пакет и его установить.

Q: A как же его искать?

A: Поиск пакетов обычно встроен в пакетный менеджер или в дистрибутиве есть дополнительные утилиты для поиска. Также поиск пакетов часто есть на сайте дистрибутива.

Q: А как узнать какой пакетный менеджер в моем дистрибутиве?

A: Посмотреть в документации идущей вместе с установочными дисками, или находящейся на дисках, или в интернете на сайте дистрибутива.

Q: В моем дитрибуте нет программы xxx, что делать?

A: Собрать ее самостоятельно из исходных текстов или найти готовый пакет в другом месте.

Q: Тут есть сайт Васи Пупкина и на нем есть пакет нужный мне. Я вот тут подумал, а это безопасно брать этот пакет?

A: Настолько безопасно, насколько доверяешь Васе.

Q: Как мне собрать программу xxx? Ей нужен пакет YYY, я его поставил, но она все равно не собирается.

A: Во многих дистрибутивах пакет делится на две части YYY и YYY-devel. Для сборки программ из исходников нужно установить пакет YYY-devel.

Q: Я ее собрал, а что делать дальше? До сих пор я ставил программы из пакетов и мне надо было выполнить только одну команду и указать пакет. А тут нет файла пакета.

A: Надо сделать его самому. Как это делать надо читать в документации к дистрибутиву.

Q: Я тут нашел в README, что надо выполнить make install. Это создаст пакет?

A: Нет, это скопирует файлы программы в те месте где они должны быть, но это не следует делать, потому что программу установленную таким образом очень сложно удалить, только вручную. Надо сделать пакет и установить его.

Q: А я уже сделал make install :( что делать?

A: make uninstall.

Q: Я делаю make uninstall, выдается сообщение что цель не найдена и ничего не происходит, что делать?

A: К сожалению данный пакет не поддреживает uninstall. Для удаления уже установленных файлов их надо найти, следует воспользоваться для этого утилитой find, она умеет искать файлы по времени их создания.

Anarchist

Q: Как в Gentoo Linux (предположительно — фича не носит дистрибутивно-зависимого характера) обеспечить совпадение параметров терминала в консоли и в графическом интефейсе.

A: Я так и не понял почему, но в консоли параметры окружения берутся из файла ~/.bash_profile, а в Х-ах — из файла ~/.bashrc.

Соответственно правильным будет:

1. В ~/.bash_profile прописать одну строчку:

[[ -f ~/.bashrc ]] && . ~/.bashrc

2. А все alias’ы, переменные и прочая прописывать в ~/.bashrc.

Longobard

вобще-то в генту это лучше сделать через /etc/env.d и /etc/profile

Anarchist
Longobard
вобще-то в генту это лучше сделать через /etc/env.d и /etc/profile

Пользовательские alias’ы???

Дмитрий Шурупов
Anarchist
Пользовательские alias’ы???

Слова «пользовательские» в вопросе не было ;-)

Поэтому логично в ответе: «для всех пользователей на системном уровне (в случае Gentoo) — это делается так, а для конкретных индивидуумов — во как!».

Longobard

Но я согласен с тем, что предложенный Анархистом вариант универсальнее. Но не тру-генту-way :) Так что лучше было вобще слово «gentoo» не упоминать.

Дмитрий Шурупов
Longobard
Но я согласен с тем, что предложенный Анархистом вариант универсальнее. Но не тру-генту-way :) Так что лучше было вобще слово «gentoo» не упоминать.

А вот слово Gentoo в вопросе было… Тогда и формулировать сразу по понятиям надо ;-)

myst

Про то, почему bash так работает с конфигами написано в bash(1). Читать надо внимательнее.

~/.bash_profile — заружается только если shell является login shell.

~/.bashrc — загружается всегда.

Anarchist
myst
~/.bashrc — загружается всегда.

Сильно преувеличено.

Anarchist
Dmitry Shurupov
Слова «пользовательские» в вопросе не было ;-)

Поэтому логично в ответе: «для всех пользователей на системном уровне (в случае Gentoo) — это делается так, а для конкретных индивидуумов — во как!».

Здесь надо определиться ещё и с политикой партии относительно определения alias’ов на системном уровне.

myst
Anarchist
Сильно преувеличено.

Чё к словам цепляешься? Был бы такой умный, знал бы почему .bash_profile не грузится. Надоело уже, Анархист, ей богу. Жениться тебе надо.

Anarchist
myst
Чё к словам цепляешься? Был бы такой умный, знал бы почему .bash_profile не грузится. Надоело уже, Анархист, ей богу. Жениться тебе надо.

Взаимно.

Был бы такой умный, знал бы, что ~/.bashrc читается не всегда.

Откровенная деза нам не нужна.

Anarchist

Q: Как в Linux мне смонтировать файл.

A:

# mount -t $FSTYPE -o loop=/dev/loopN path/to/file/file.img /mnt/$MOUNTPOINT

Команда выполняется с правами пользователя root.

По умлочанию в Linux создаётся 8 псевдоустойств /dev/loopN (т.е. N=[0;7]).

Какое выражение необходимо прописать в sudoers, чтобы разрешить простому пользователю монтировать произвольный образ и не разрешить чего лишнего пока не знаю.

Q: Как мне смонтировать образ диска в FreeBSD?

A: Команда mount в FreeBSD заметно отличается от привычной по Linux.

Для ветки 6.Х верно следующее:

# man mdconfig

Задача решается в два этапа.

На первом создаётся псевдоустройство соответствующее монтируемому образу (код приведён для случая монтирования образа ISO9660):

# mdconfig -a -t vnode -u 10 -f cdimage.iso

После чего смонтировать устойство как обычно:

# mount_cd9660 /dev/md10 /mnt

После завершения работы с данными необходимо удалить созданное псевдоустройство:

# mdconfig -d -u 10

Все команды также выполняются с правами пользователя root.

Longobard
Anarchist
Q: Как в Linux мне смонтировать файл.

A:

# mount -t $FSTYPE -o loop=/dev/loopN path/to/file/file.img /mnt/$MOUNTPOINT

Команда выполняется с правами пользователя root.

По умлочанию в Linux создаётся 8 псевдоустойств /dev/loopN (т.е. N=[0;7]).

Какое выражение необходимо прописать в sudoers, чтобы разрешить простому пользователю монтировать произвольный образ и не разрешить чего лишнего пока не знаю.

Можно упростить до банального

# mount -o loop path/to/file/file.img /mnt/$MOUNTPOINT

И не парить себе мозг устройствами и их номерами.

Anarchist

Q: А прописал вроде бы всё (и как надо), но переключение раскладок клавиатуры в Х-ах всё равно не работает.

A: Умолчательная (насколько мне известно — во всех дистрибутивах) раскладка клавиатуры у Х-сервера — en_US.

Как его вылечить от неё (привет теме о «случайности» проблемы кодировок) — я [пока] не знаю.

Если в списке «XkbLayout» встречается неизвестная кодировка — Х-сервер сваливается на умолчательню (см. выше). Насколько я помню, критичным также были факты использования в качестве разделителя запятой, нижнего регистра и отсутствия пробелов (для значения «XkbOptions» — аналогично).

Итого:

Option "XkbLayout"  "us,ru"
#Option "XkbLayout"  "us,ru(winkeys)"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
Anarchist
Longobard
Можно упростить до банального

# mount -o loop path/to/file/file.img /mnt/$MOUNTPOINT

И не парить себе мозг устройствами и их номерами.



/dev/loop: Это каталог
Master

Q: Как собрать пакет под Linux Slackware?

A:

make install DESTDIR=/tmp/package-foo-x.y.z
cd /tmp/package-foo-x.y.z
strip (если надо)
makepkg -c n -l y ../foo-x.y.z-i686-1.tgz
Master

Q: Как проверить, наступил ли последний день текущего месяца?

A:

#!/bin/sh
if test `TZ=MSK-24 date +%d` = 1; then
    echo "Last day of month"
fi
Anarchist

Q: Чем мне преобразовать звук в формат flac (<font color=«blue»>Free Lossless Audio Codec</font>)?

A: За преобразование lossless форматов в linux отвечает sox. Как в бинарных дистрибутивах — не знаю, в Gentoo при указании соответствующего USE-флага (глобально или персонально для media-sound/sox) достаточно команды:

# sox track.cdr track.flac

Прочие опции из man sox по вкусу/потребностям.

Тэги прописываются с помощью easytag.

Q: FLAC большой получился. Мне бы чего-нибудь поэкономичнее…

A: Поэкономичнее с адекватным качеством можно порекомендовать <font color=«blue»>OGG Vorbis</font>.

В расчёте на наушники или типовую компьютерную акустику высшее качество считаю избыточным.

Достаточно

for FLAC in `ls track_*flac`
do
oggenc -q 8 $FLAC
done

При этом если тэги FLAC заполнены, то тэги OGG заполняются автоматически.

Q: Как мне преобразовать музыку из формата Audio CD в компьютерный формат.

A: Преобразование треков Audio CD в файлы осуществляется либо утилитой cdda2wav из пакета cdrtools (в расчёте на точное копирование), либо посредством утилиты cdparanoia (сграбить любой ценой, использовать для повреждённых носителей, с которых cdda2wav треки снять не может).

Грабятся треки обычно в формат .wav.

Дальнейшее преобразование:

for TRACK in `ls track_*wav`
do
VOL=`sox $TRACK -e stat -v 2>&1`
FLAC=`echo $TRACK | sed s/cdr/flac/`
sox -v $VOL $TRACK $FLAC
oggenc -q 8 $FLAC
rm -f $FLAC
done

Если помимо результирующего .ogg’а нужен и FLAC, последнюю команду в цикле следует пропустить.

Master

Q: Как изменить MAC-адрес сетевого интерфейса?

A:

# ifconfig eth0 hw ether 00:01:02:03:04:05      # Linux
# ifconfig fxp0 link 00:01:02:03:04:05          # FreeBSD
Master

Q: Как создать .deb-пакет?

A: 1. Устанавливаем необходимые пакеты:

sudo apt-get install module-assistant build-essential fakeroot dh-make debhelper debconf libstdc++5 linux-headers-generic

2. Собираем пакет:

bash ./packet.run --buildpkg Ubuntu/gutsy
Anarchist
Master
Q: Как изменить MAC-адрес сетевого интерфейса?

A:

# ifconfig eth0 hw ether 00:01:02:03:04:05      # Linux
# ifconfig fxp0 link 00:01:02:03:04:05          # FreeBSD

Для FreeBSD уточнение: в общем случае вместо fxp0 следует писать $devN. Где 'dev’ — драйвер устройства, N — номер устройства.

fxp соответствует Intel EtherExpress PRO/100B (82557, 82558).

Из того, с чем работал лично я: em — Intel PRO/1000 adapter Gigabit Ethernet Card.

С полным списом возможных значений можно ознакомиться почитав GENERIC конфиг ядра (/usr/src/sys/i386/conf/GENERIC).

Список допустимых для данного случая значений следует из /var/run/dmesg.boot.

Полагаю, что для случая Linux следовало бы аналогичным образом дополнить ответ.

Master

Q: Что нужно установить, чтобы была поддержка SSL для jabber-протокола в Psi?

A: Пакет qca-tls.

This is a plugin to provide SSL/TLS capability to programs that utilize the Qt Cryptographic Architecture (QCA). QCA is a library providing an easy API for several cryptographic algorithmns to Qt programs.

$ sudo apt-get install qca-tls
Master

Q: Каким образом после установки Postfix из портов во FreeBSD, сделать так чтобы он был MTA по умолчанию вместо sendmail’a?

A: Из документации к Postfix:

/etc/rc.conf

mta_start_script=""
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

/etc/periodic.conf

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
Anarchist

Обновил свой вопрос.

Мастер, ты не прав :( (или не вполне прав, перевод FreeBSD на Postgres представляю себе не вполне)

Хочу обратить твоё внимание на /etc/mail/mailer.conf.

На /usr/sbin/sendmail и на man mailwrapper.

metal

Q: Не могу записать dvd диск, пишу: wodim -vv dev=/dev/dvdrw Fedora-9-i386-DVD.iso.

Заканчивается все ошибкой:

Starting new track at sector: 0

Track 01:    0 of 3414 MB written.Errno: 5 (Input/output error), write_g1 scsi sendcmd: no error

CDB:  2A 00 00 00 00 00 00 00 1F 00

status: 0×2 (CHECK CONDITION)

Sense Bytes: 70 00 05 00 00 00 00 0E 00 00 00 00 30 10 00 00

Sense Key: 0×5 Illegal Request, Segment 0

Sense Code: 0×30 Qual 0×10 (medium not formatted) Fru 0×0

Sense flags: Blk 0 (not valid)

cmd finished after 0.005s timeout 200s

Что делать?

A: Нужно установить пакет dvd+rw-tools. В нем есть утилита dvd+rw-format, с помощью ее надо отформатировать болванку, после этого диск будет готов для записи.

Anarchist

Q: Как мне сохранить интегрированный в web-страницу видео-ролик на жёсткий диск?

A: В предположении использования браузера FireFox рекомендации следующие:

1. Необходим плагин UnPlug.

2. Разрешить показ flash (в предположении, что используется плагин Flashblock).

3. Выполнить команду «Инструменты -> UnPlug». Последней строкой (если на странице — один видеоролик) появится ссылка на скачивание. Видео скачивается в формате .flv.

Update: По состоянию на 16.07.2008 указанный плагин совместим только с FireFox 2.0. Что не особо и печально.

Ибо есть альтернативное решение задачи: Flashblock даёт возможность скопировать ссылку на ролик, и есть clive (в  Gentoo Linux устанавливается командой # emerge media-video/clive), с помощью которого можно сохранить ролик по ссылке на локальный жёсткий диск.

Thanks to kermit

Но: работает только для

   *  Youtube

   * GoogleVideo

   * Dailymotion

   * Metacafe

   * Guba

   * Sevenload

   * Myvideo

Впрочем, с UnPlug заявляется нечто подобное. Но в куда менее жёсткой форме. Товарищи на Gentoo.ru подсказывают ссылку на UnPlug для FF 3.0

Они же рекомендуют Video DownloadHelper 3.2..

Anarchist

Q: Я использую MySQL на платформе FreeBSD. Не могу найти конфигурационный файл.

A: Умолчательная установка порта mysqlXX-server на FreeBSD не предполагает наличия конфигурационного файла.

Для более тонкой настройки (зависит как от типа и размеры базы данных, так и от железа) может оказаться необходимым использовать конфигурационный файл. Файлы конфигурации MySQL для ряда типовых назначений искать в /usr/local/share/mysql/*cnf (там ещё много чего интересного есть).

Описание области применимости (если недостаточно очевидно из названия) можно прочитать в заголовке.

Расположение принимающихся к обработке файлов конфигурации перечислено в стартовом скрипте /usr/local/etc/rc.d/mysql-server.

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

Anarchist

Q: Как запретить гашение экрана в консоли?

A:

setterm -blank 0
setterm -powerdown 0

(c) biv from gentoo.ru

Anarchist

Q: Как правильно смонтировать NTFS-раздел с использованием драйвера ntfs-3g.

A: Строка в /etc/fstab:

/dev/sdXN /mnt/C ntfs-3g locale=ru_RU.UTF-8 0 0

Где 'X’ — буква устройства соответствующего диску с выньдоуз (строго говоря вовсе не обязательно sd…), а 'N’ — номер монтируемого раздела.

Лично я считаю правильным монтировать все реально используемые (т.е. на специальные разделы типа /boot этот принцип не распространяется) разделы жёсткого диска автоматически при загрузке.

Thanks to evadim from gentoo.ru

Anarchist

Q: Как мне в Gentoo Linux перейти с FireFox 2.X на FireFox 3.0 (на дворе июль 2008, в основной ветке портэджей по умолчанию ставится 2.0.0.14, а 3.0 всё ещё замаскирована)?

A: Реализуемость в существенной степени зависит от используемой конфигурации (количества и характера зависимостей от FireFox 2.0).

В моём случае (FireFox 2.0 просит только OpenOffice) достаточно размаскировать FireFox 3.0 с зависимостями — /etc/portage/package.keywords:

>=www-client/mozilla-firefox-3.0-r1 ~x86
>=net-libs/xulrunner-1.9-r2 ~x86
>=dev-libs/nspr-4.7.1 ~x86
>=dev-libs/nss-3.12 ~x86

И замаскировать FireFox 2.0 — /etc/portage/package.mask:

<=www-client/mozilla-firefox-2.0.0.16

UPDATE: Если развитие второй ветки FireFox будет продолжаться, то версии придётся подправить.

Thanks to NETZMB from gentoo.ru.

Anarchist

Q: Мой сайт тормозит. Как найти страницу, отжирающую больше всего ресурсов?

A: Процитирую себя любимого (смотреть PostSciptum):

Дежурная отписка службы поддержки, которой лениво разбираться в проблеме или банально не хватает квалификации:

Можно ли узнать какой из моих скриптов создает сильную нагрузку на процессор?

Напрямую этого не узнать. Понятно, что если система будет записывать историю вызовов программ, переменные окружения и прочую метаинформацию, то серверы будут заниматься не обслуживанием сайтов, а ведением статистики по своей работе. Временные промежутки подсчета статистики использования ресурсов позволяют без применения каких-то особых математических вычислений оценить логи веб-сервера для поиска скрипта или сравнить время с записями в таблице cron. Возможно, это не скрипт. Из-за особенностей настройки хостинга время процессов веб-сервера, обслуживающих сайты клиентов, тоже учитывается в статистике. К примеру, вложенное стоекратно SSI-включение в shtml-странице.

Правильный ответ:

На самом деле, для случая использования ресурсов хостера оно, может быть, и верно. Для случая же наличия выделенного сервера — вызывающе неверная информация. Какой скрипт насколько грузит процессор (для конкретного кванта времени), можно посмотреть с помощью mod_status (Apache должен быть собран с этим модулем).

В конфигурационный файл Apache надо добавить следующие блоки:

# Потому как в стандартном режиме загрузка процессора не выводится.

ExtendedStatus On

и

SetHandler server-status

Order Deny,Allow

Deny from all

Allow from .mydomain.ru

После рестарта по ссылке www.mydomain.ru/server-status выводится информация о том, какие скрипты отрабатываются, в каком состоянии и кто сколько ресурсов CPU потребляет.

Anarchist

Q: Как в Audacious настроить корректное отображение кириллицы в названиях песен?

A: В настройках (пиктограмма меню, из которого вызывается окно настроек расположена в левом верхнем углу, перекрывается встроенным эквалайзером, в дефолтной теме наблюдается плохо) в вкладке Список воспроизведения в секции Информация о песне и исполнителе выбрать Автоматическое определение кодировки для «Russian» (русского языка).

Мне также потребовалось в закладке Внешний вид снять выделение с пункта Использовать растровые шрифты если возможно, без этого кириллица корректно отображалась только в списке воспроизведения, но не самим плеером.

(В Gentoo media-sound/audacious должен быть собран с флагами chardet nls)

Если в списке воспроизведения уже были песни, то корректная кодировка в их описании будет отображаться только после того как они будут хотя бы раз проиграны.

Thanks to Sancho from gentoo.ru.

Anarchist

Q: По умолчанию latex предоставляет более чем скромный набор базовых размеров шрифтов (ЕМНИП 10pt, 11pt и 12pt). Как бы мне расширить перечень возможных значений базового размера шрифта?

A: Задача решается пакетом extsizes (в настоящий момент как минимум в Gentoo Linux входит в базовую установку tetex).

Для его включения необходимо изменить стиль в заголовке. Например вместо

\documentclass[12pt,oneside,a4paper]{book}



\documentclass[14pt,oneside,a4paper]{extbook}
Anarchist

Q: Почему я не нахожу <font color=«blue»>xmms X MultiMedia System</font>?

A: XMMS — проект старый, запутанный и практически заброшенный. В качестве зависимости тянет gtk 1.3 (чуть ли не единственный из ныне живых, с такой зависимостью).

Поэтому в большинстве дистрибутивов он исключён из основной ветки пакетов.

Рекомендую посмотреть на альтернативы: audacious || Amarok.

Anarchist

Q: Я использую Gentoo Linux. Нужной мне программы нет в основной ветке Portage (Предполагаю, что и ни в одной из альтернативных; либо, что я считаю правильным, нет желания из-за одного-двух пакетов разводить лес деревьев Portage). Я нашёл и скачал ebuild. А что дальше? Как мне установить программу?

A: Возможно, всё же есть смысл подумать о разведении леса. Gentoo качественно документирован. http://gentoo-wiki.com/TIP_Overlays

В предположении, что задача остаётся прежней, необходимо:

1. Прописать в /etc/make.conf дополнительный оверлей

PORTDIR_OVERLAY="/usr/local/portage"

2. Исходя из собственного разумения отнести нужную программу к одной из стандартных категорий portage (`ls /usr/portage`) и создать соответствующий выбранной категории каталог в /usr/local/portage (просто создать каталог и /usr/portage/$CATEGORY не получится, там все под колпаком).

3.

# cd /usr/local/portage/$CATEGORY
# mkdir $PROG_NAME
# cd $PROG_NAME

4.

# ebuild $PROG_NAME-$VERSION.ebuild manifest

5.

# emerge -pv $PROG_NAME
# emerge $PROG_NAME

Пример: установка fbreader-0.8.17.ebuild.

Находим файл ебилда, сохраняем на жёсткий диск.

Пункты 2-4 — комментировать и разжёвывать нечего.

Пробую ставить. И получаю отлуп: нужна нестандартная библиотека dev-libs/liblinebreak, ебилда которой, естественно нет.

Нахожу ебилд этой библиотеки, повторяю пункты 2-4 для неё.

Пробую выполнить п.5. Снова облом: забыл файлик. Возвращаюсь на страницу, откуда качал ебилд библиотеки, качаю файл, переношу его в /usr/local/portage/dev-libs/liblinebreak/files/.

После этого программа устанавливается успешно.

Anarchist

Q: Как в FreeBSD (пишется для 6.X) подключить дополнительный SCSI-диск (RAID не используется)?

(в предположении, что железо поддерживает горячее подключение оборудования и имеется свободный слот)

A: Необходимо сделать следующее:

1. Вставить жёсткий диск в свободный слот;

2. Произвести повторную инициализацию SCSI-устройств

# camcontrol rescan all

3. Дальнейшие шаги, в силу уёбищности инструментов для разбиения дисков предлагаю производить через sysinstall.

Т.е. — вызвать его

# sysinstall


и перейти в Configuration Menu (Configure).

4. Почитать (и при необходимости/желании — изменить) параметры создаваемой sysinstall’ом файловой системы (Configure -> Options -> Newfs Args, значения по умолчанию — -b 16384 -f 2048, изменить опции newfs можно также в меню редактирования слайсов FreeBSD Disklabel Editor, команда 'N').

5.Создать необходимые разделы на жёстком диске (Configure -> Fdisk), записать созданную таблицу разделов (команда 'W') и выйти из подменю. При выходе (клавиша ESCAPE) будет задан вопрос об установке загрузчика. Так как добавляется дополнительный диск для данных, выбираю пункт «Не трогать MBR».

6. Перейти в подменю редактирования слайсов (вставить ссылку на раздел предполагаемого к написанию »Free *nix Handbook, посвящённый структуре разбиения жёсткого диска в FreeBSD: Configure -> Label) и в созданных разделах создать slice’ов по вкусу. Для каждого из созданных slice’ов нужно задать точку монтирования (эти точки монтирования ДОЛЖНЫ быть прописаны в /etc/fstab!!!, на данном шаге прописанные для точек монтирования устройства не важны). После выхода из этого меню, если всё сделано правильно, будут созданы необходимые разделы и инициирована файловая система в созданных разделах, которые автоматически монтируются в заданные точки монтирования.

7. Прописать в /etc/fstab правильные устройства (должны именоваться примерно как /dev/daNsMd, где N и M — натуральные числа), режим и точки монтирования.

И при необходимости — перемонтировать разделы.

ЗЫ: Не полениться раскрыть тему сути BSD’ишной логики разбиения дисков.

Q: Заебись. Подключил я дополнительный диск, прописал его в /etc/fstab, пробую перезагрузить машину (по причине замены ядра или изменения его параметров), а она не грузится. WTF?

A: Проблема в том, что при установке дополнительных SCSI-дисков номера им присваиваются в порядке подключения, при загрузке — в порядке опроса при инициации SCSI-контроллера.

Поэтому, чтобы исключить подобные проблемы, следует задействовать слоты в порядке их опроса при инициации. Для 1-unit’ового сервера (два или, если исключить floppy disk drive — три, дисковых слота) это — слева направо.

Тему 2-unit’овых серверов (6 дисковых слотов) навскидку не раскрою.

Anarchist

Q: Как мне корректно (без потери работоспособности) обновить Gentoo Linux.

A:

1. Загрузить систему, запустить все необходимые программы (браузер и лишний эмулятор терминала могут очень даже пригодится).

2. Получить shell пользователя, имеющего право обновлять систему (root или ещё кто-то).

Далее:

2.1 Обновить дерево портов:

emerge --sync

Или скорее

emerge-webrsync

2.2 Почитать как portage предполагает обновлять систему

emerge -pvuDN world

2.3 Запустить процесс обновления

emerge -uDN world

2.4 Пересобрать зависимости от python’а:

/usr/sbin/python-updater

2.5 Зачистить неиспользуемые пакеты

emerge --pretend --verbose --distclean
emerge --verbose --distclean

2.6 Проверить/исправить зависимости

revdep-rebuild


(фактически функционально дублирует python-updater, но он на данном этапе не работает.

2.7 Проверить/обновить конфигурационные файлы

etc-update

2.8 Зачистить лишние исходные файлы

eclean-dist

Пересборка ядра/перезагрузка — отдельным необязательным пунктом программы.

После смены ядра необходщимо пересобрать пакеты, которые ставят дополнительные модули ядра (AFAIK /sbin/modules-update).

Anarchist

Q: Как мне в Gentoo Linux установить конкретную, отличную от умолчательной и не замаскированную версию программы?

A:

# emerge =$CATEGORY/$PROG_NAME-$VERSION

!!! Вопрос фиксации версии при обновлении при таком решении остаётся открытым!

В определённом подмножестве ситуаций (например меня не устраивают ядра начиная с 2.6.24) его можно решить прописав нежелательные версии в /etc/portage/package.mask (для приведённого мной примера это следующая строка)

>=sys-kernel/gentoo-sources-2.6.24
Anarchist

Q: В моём ядре меня всё (с точки зрения функциональности) устраивает. Но партия повелела обновиться :) Как мне обновить ядро?

A: В большинстве десктопных сборок конфигурация ядра хранится в файле /proc/config.gz (в дальнейшем исхожу из того, что конфигурация используемого ядра тем или иным образом известна, ссылка /usr/src/linux указывает на распакованное дерево исходников нового ядра, в качестве загрузчика используется lilo).

Необходимо скопировать в /usr/src/linux/.config параметры конфигурации используемого ядра. Например

# gzcat /proc/config.gz > /usr/src/linux/.config

После чего

# cd /usr/src/linux
# make silentoldconfig
# make
# make modules install
# mount /boot
# cp arch/i386/boot/bzImage /boot/$NEW_KERNEL

Обновить /boot/System.map (kernel symbol table file) и скопировать туда же конфиг ядра:

# mv /boot/System.map /boot/System.map.old
# cp /usr/src/linux/System.map /boot/System.map
cp /usr/src/linux/.config /boot/$VERSION.config


(для тех, кто хочет таки почитать различия конфигов старого и нового ядра — вместо make siletoldconfig следует запускать make oldconfig)

Новое ядро прописывается в конфиг загрузчика,

# /sbin/lilo
# umount /boot

После чего имеет смысл тестовая перезагрузка.

Q: В моё ядро по бОльшей части меня устраивает. Но в нём отсутствует поддержка ряда нужных мне устройств, которая реализована в той версии ядра, на которую я хочу перейти :) Как мне обновлять ядро в этом случае?

A: После приведения файла конфигурации старого ядра в соответствие с форматом нового (# make silentoldconfig) необходимо перейти в режим конфигурирования ядра (# make menuconfig или # make xconfig или что-нибудь в том же духе по вкусу) и активировать поддержку нужных устройств (здесь очень хорошо смотрелась бы ссылка на главу посвящённую конфигурированию ядра Linux ветки 2.6 из ещё не написанной Free *nix Handbook).

В остальном процедура установки нового ядра не отличается от вышеописанной.

Q: Хорошо. Ядро я обновил. Как мне корректно и полностью удалить старое ядро.

A: Ядро — это особый, самый главный элемент системы. Поэтому оно заслуживает индивидуального подхода.

Если использовался прекомпиллированный дистрибутив ядра, то он должен корректно и полностью удаляться менеджером пакетов.

Если использовалось самосборное ядро, то менеджер пакетов тех файлов, которые он не создавал удалять не должен. Кое-что придётся удалить ручками (сначала необходимо удалить пакет с исходниками старого ядра, если это не было сделано в процессе обновления). Вручную необходимо удалить:

# rm -rf /usr/src/linux-$OLDVERSION
# rm -rf /lib/modules/$OLDVERSION
# mount /boot
# rm -f /boot/$OLDKERNEL
# umount /boot
Anarchist

Q: Я использую кодировку KOI8-R, обновил ядро и… Что за хуйня? В консоли вместо кириллических символов — квадраты…

A: Начиная с версии 2.6.24 ядро по умолчанию предполагает использование юникода (ублюдочные полумеры в виде UTF8).

С одной стороны сие снимает необходимость в использовании команд типа unicode_start.

С другой, при использовании привычной и единственно верной кодировки типа KOI8-R корректное отображение кириллицы в консоли приходится организовывать передачей дополнительных параметров ядру при загрузке.

Для случая использования традиционного загрузчика (lilo):

вместо

image = /boot/kernel-2.6.23-gentoo-r10
        root = /dev/hda5
        label = Gentoo
        append="vt.default_utf8=0"
        read-only # read-only for checking

следует писать

image = /boot/kernel-2.6.25-gentoo-r7
        root = /dev/hda5
        label = Gentoo
        append="vt.default_utf8=0"
        read-only # read-only for checking

После чего перезаписать загрузчик

# mount /boot
# /sbin/lilo
# umount /boot

Для случая использовани продвинутого загрузчика (grub):

в /boot/grub/menu.lst в конце строки описывающей новое ядро дописать vt.default_utf8=0.

Переписывать загрузчик не надо.

После обновления конфигурации загрузчика — перезагрузить компьютер.

Thanks to KYV from gentoo.ru

Anarchist

Q: В один «прекрасный» момент FreeBSD мне выдала следующую ошибку

create/symlink failed, no inodes free

Что бы это значило и как с этим бороться?

A: Сие означает, что в системе кончились свободные inode’s («data structures that contain information about files are created», при этом необходимо помнить, что каталог — тоже файл, только специальный, и что есть ещё некоторое количество других типов специальных файлов), при этом свободное место на диске может присутствовать.

Обычно это происходит когда в системе создаётся большое количество мелких файлов. В результате запуска тестовых скриптов или неправильно (относительно задачи) созданной файловой системы).

С первым бороться легко: локализовать и удалить ненужные файлы.

Со вторым тяжелее: после останова сервера каталог, в котором создаётся большое количество файлов лучше вынести на отдельный раздел жёсткого диска (созданный с потребным, а не умолчательным количеством inode’ов, man newfs в окрестностях опции -i).

Диагностика количества/использования inode’ов в системе: df -i (цитирую только относящиеся к делу столбцы):

iused      ifree      %iused
141310      0         100.00%

Каталоги где можно найти множество мелких файлов:

/var/spool/clientmqueue

и/или /var/spool/mqueue

Как считать (ну и частный вариант ответа для моего случая)

# ls /var/spool/clientmqueue/ | wc -l
  134749

Q: Замечательно. Проблема локализована. Пробую устранить — и облом

# rm -f /var/spool/clientmqueue/*
bash: /bin/rm: Argument list too long

A: Есть мнение, что решать проблему изменением лимитов для rm — порочный подход.

Правильнее:

# find /var/spool/clientmqueue/ -type f | xargs rm
Anarchist

Q: Хочу получать извещения о необходимости обновить антивирус (ClamAV).

A: Можно подписаться на рассылку clamav-announce.

Но лично моя практика показывает на проблемы с прохождением почты.

И эта рассылка не решает задачи рассылки повторных напоминаний.

Поэтому полезно вспомнить, что freshclam не только обновляет антивирусные базы, но и проверяет актуальность рабочей версии (сообщения о необходимости обновить дистрибутив отменяются только запуском новой версии, что, с учётом факта отставания по фазе обновления версии пакета в репозитарии от даты релиза является существенным).

Поэтому уместно возложить задачу рассылки напоминаний на следующий скрипт (ставится в cron с выполнением раз в сутки)

#!/bin/sh
#
# Скрипт для проверки на необходимость обновления антивируса ClamAV.
#
tail -n 256 /var/log/clamav/freshclam.log | grep -e "OUTDATED" -e "WARNING: Local version:" -e "WARNING: Current functionality level"> /tmp/freshclam.report
if [ -s /tmp/freshclam.report ]
then
  mail -s "mail_server virus scanner ClamAV should be updated" adminbox@mydomain.ru < /tmp/freshclam.report
fi
rm -f /tmp/freshclam.report
exit 0
Anarchist

Q: Зачем вообще нужен такой анахронизм как выделенный почтовый клиент? Web-интерфес — это ведь и просто и удобно?

A: Как показывает практика, на достаточность функциональности могут претендовать лишь собственные разработки лидеров, типа Яндекса.

Но и они по удобству интеграции с разного рода адресными книгами, сколько-нибудь сложных манипуляций над письмами и работе с несколькими почтовыми ящиками безусловно рулят.

Не смотря на то, что распространение безлимитных тарифов (и толстых каналов) для доступа в Сеть свело к минимуму преимущество экономии трафика при повторном обращении к данным; при недостаточно высокой надёжности сети провайдера почтовый клиент даёт возможность работы с архивом писем в off-line режиме. И это — большой плюс.

Q: В почтовом клиенте Thunderbird я настроил параметры proxy, но мне так и не удалось получить почту с внешних почтовых ящиков. В чём проблема?

A: Thundebird использует параметры proxy не для соединений по smtp/pop3-протоколам, а для возможности вылезти ему самому в инет для проверки наличия обновлений или за картинками в html письме и т.д. (с) Atlant from gentoo.ru

Q: Хорошо. В таком случае как мне настроить получение почты извне через proxy-сервер (под proxy предполагается SQUID)?

A: Необходимо настроить переброс портов посредством net-misc/proxytunnel || net-misc/proxychains

Метод CONNECT на сквиде должен быть разрешен. (с) Aladdin from gentoo.ru

Anarchist

Q: Привычный, рефлекторный вариант команды 'grep'

$ grep PATTERN file


Производит поиск одного шаблона.

Мне же нужно, чтобы 'grep' выводил строки содержащие PATTERN1 ИЛИ PATTERN2…

A: Здесь полезно вспомнить man 'grep’, точнее — существование опции '-e' и возможность неоднократного применения этой опции.

$ grep -e "PATTERN1" -e "PATTERN2" file


отрабатывает как надо.

Anarchist

Q: После постановки в cron мой старательно отлаженный скрипт перестал работать. Почему?

A: БОльшая часть проблем, связанных с потерей работоспособности в подобных ситуациях связана с тем, что окружение из которого пускается скрипт вручную (в процессе написания и отладки) и окружение в котором его запускает cron мягко говоря несколько различаются.

Поставьте в скрипт последней строкой

$ set > /home/$USER/crond.env

И выполните в консоли (откуда скрипт успешно отрабатывает) команды

$ cd
$ set > current.env



$ diff crond.env current.env


скорее всего содержит ответ на Ваш вопрос.

Anarchist

Q: При попытке удалённого запуска Х-терминала на FreeBSD 6.3 сервере получаю ошибку:

$ ssh -X $SERVER /usr/local/bin/xterm
Enter passphrase for key '/home/$USER/.ssh/id_rsa':
/usr/local/bin/xterm Xt error: Can't open display:
/usr/local/bin/xterm:  DISPLAY is not set

A: К данной ошибке может приводить многое. От запрета X11Forwarding в настройках sshd (в FreeBSD фича традиционно запущена) до конфигурации файрволла на сервере и/или на рабочей станции.

Но для FreeBSD 6.3 типовой является проблема сломанных (во времена 6.2 ЕМНИП при переходе на Xorg 7.2) зависимостей.

Для решения проблемы (в предположении правильно настроенного файрволла) достаточно установить xauth

# cd /usr/ports/x11/xauth
# make && make install && make clean

Q: Исправил этот момент. Но оно всё равно не работает. Что за хуйня?

A: Насколько мне известно, во всех современных дистрибутивах Linux (и *nix’ов вообще) из соображений безопасности по умолчанию X-server запускается с аргументом -nolisten tcp.

Если Вам нужно на локальном Х-сервере запускать приложения с удалённых машин, то эту опцию, очевидно, необходимо отменить. И перезапустить Х-сервер.

Anarchist

Q: Как мне в FreeBSD (предполагая 6.Х) настроить обновление портов через промежуточную точку коммутации?

A: Для обновления портов используется защищённое (SSL) соединение на 5999 порт.

Можно соответствующим образом настроить сквид, а можно — использовать альтернативные сквиду решения.

Например (из штатных инструментов) inetd && nc.

В /etc/make.conf прописывается запуск inetd

inetd_enable="YES"              # Run the network daemon dispatcher (YES/NO).
inetd_program="/usr/sbin/inetd" # path to inetd, if you want a different one.
inetd_flags="-wW -C 60"         # Optional flags to inetd

И в /etc/inetd.conf

cvsup stream tcp nowait root /usr/bin/nc -xIP_Proxy:Port_Proxy -Xconnect cvsup5.FreeBSD.org 5999


(не забыть проверить наличие в правилах сквида «acl SSL_ports port 5999»)

Или с задействованием утилит из портов (необходимо установить sysutils/socket, запускается тоже через /etc/inetd.conf, можно и мимо прокси)

cvsup            stream      tcp      nowait      nobody      /usr/local/bin/socket      socket      cvsup5.FreeBSD.org      5999

Также можно воспользоваться httptunnel, proxychains, prtunnel /etc.

Во всех случаях в качестве хоста для обновления выставляется localhost или 127.0.0.1.

Использованные материалы: Кое-что полезного нашлось здесь.

Q: Как мне в FreeBSD (доступ к ресурсам Интернет — через сквид с авторизацией) настроить автоматическое скачивание исходников?

FETCH_ENV=FTP_PROXY=http://USER:PASS@IP_Proxy:Port_Proxy

FETCH_ENV=HTTP_PROXY=http://USER:PASS@IP_Proxy:Port_Proxy

Не работает!

HTTP_PROXY_AUTH=basic:*:: — ТОЖЕ!!!

ЗАЕБАЛО!!!

A: Не смотря на все красивые заверения в работоспособности подобных конструкций на платформе FreeBSD 6.X добиться работоспособности не удалось.

Также опыт показал, что при прописывании FETCH_CMD в /etc/make.conf пробелы недопустимы.

Решение: использование wget из портов, вместо стандартного fetch’а.

1. Установить wget (исходники придётся скачать и подложить ручками

# cd /usr/ports/ftp/wget
# make
# make install
# make clean

2. Переопределить параметры загрузки в /etc/make.conf (необходимо добавить целых три строки).

2.1. Собственно FETCH_CMD

FETCH_CMD=/usr/local/bin/wget

ВАЖНО: указывать опции на данном этапе нельзя!

2.2. Опции wget’а (для wget-1.11.2, с ранними версиями можно ждать граблей)

FETCH_ENV="--continue --passive-ftp --proxy-user=$PROXYUSER --proxy-password=$PASSWORD"

2.3. Ещё один параметр, необходимый для согласования набора опций (-S fetch’a и -S wget’a — суть разные сущности)

DISABLE_SIZE=YES

Итого секция в /etc/make.conf должна иметь следующий вид

FETCH_CMD=/usr/local/bin/wget
FETCH_ENV="--continue --passive-ftp --proxy-user=$PROXYUSER --proxy-password=$PASSWORD"
DISABLE_SIZE=YES
Anarchist

Q: В FreeBSD из шелла с правами root’а не могу удалить каталог (или файл).

Выводится сообщение

rmdir: /var/empty/: Operation not permitted

A: При выставлении определённых флагов — вполне реальная ситуация. Посмотреть какие флаги установлены для каталога можно следубщим образом:

# ls -ol /var/ | grep empty
dr-xr-xr-x   2 root    wheel   schg  512 16 янв  2008 empty/

Снимается флаг командой

# chflag no $ИМЯ_ФЛАГА ФАЙЛ

После снятия флага (в данном конкретном случае — ’schg’) каталог удаляется без проблем.

Anarchist

Q: Apache упорно выдаёт ошибку

[error] [client XXX.XXX.XXX.XXX] client denied by server configuration:

В чём проблема?

A: Обычно такая ошибка возникает вследствие умолчательных настроек доступа к корневому каталогу web-сервера


AllowOverride None Order deny,allow Deny from all </Directory>

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

В качестве дешёвого резервного варианта для внутреннего сервера — добавить строку


AllowOverride None Order deny,allow Deny from all Allow from .mydomain.ru </Directory>

Для общедоступного web-сервера такой подход недопустим. Там надо решать проблему радикально


AllowOverride None Order deny,allow Allow from all </Directory>
Anarchist

Q: PostgreSQL server при попытке подключения phppgadmin'ом выводит следующую ошибку

Error Loading all_db.php?subject=server&action=tree&server= (200: OK)

Что за фигня?

A: Такая фигня обычно происходит при попытке подключения к базе неправильным (ограниченным, чисто служебно-функциональным) пользователем (при этом драйвер работы с базой, запускаемый с правами этого пользователя работает на ура).

Решение: для работы с базой через клиента добавить пользователя с нужными правами

# su - pgsql
$ createuser -P -s $USER
Enter password for new role:
Enter it again:
CREATE ROLE

ЗЫ: В отличие от phpldapadminphppgadmin не требует для авторизованного доступа SSL-соединения.

Anarchist

Q: Что означает ошибка

sockstat: sysctl(): No such process


(для тех, кто не в курсе: sockstat — *BSD-специфичная утилита)

Пора паниковать или ещё рано?

A: Sockstat сначала формирует список открытых сокетов, а потом устанавливает соответствие между сокетом и процессом, его открывшем.

Если процесс завершился раньше установления соответствия, выводится данная ошибка.

link

Q: Я не нашёл в Linux привычной по *BSD и удобной утилиты sockstat.

Её можно найти?

A: Достаточно близкий к желаемому результат можно получить и посредством стандртных инструментов

netstat -anpe

Достаточно прописать в профиле alias

alias sockstat="netstat -anpe"

link

REDkiy

Q: Как обновить Debian GNU/Linux «sarge» до «lenny»?

A: В /etc/apt/sources.list найти строчку похожую на

deb http://ftp.us.debian.org/debian/ sarge contrib main non-free

и заменить (добавить) на

deb http://ftp.us.debian.org/debian/ lenny contrib main non-free

Затем обновить aptitude

$ sudo aptitude install aptitude

Загрузить список новых пакетов

$ sudo aptitude update

И, в конечном итоге, обновить систему так

$ sudo aptitude safe-upgrade

либо так

$ sudo aptitude full-upgrade


safe-upgrade — Выполнить безопасное обновление

full-upgrade — Выполнить обновление, возможна установка и удаление пакетов

Anarchist

Q: В процессе обновления Gentoo Linux у меня выпала ошибка манифеста (не совпадает размер файла, контрольные суммы MD5 или SHA256).

A: Причина данной ошибки может заключаться как в файле, так и в portage (по моим наблюдениям вероятность где-то в пополаме).

Рекомендую сначала убедиться, что скачиваемый файл верен (посмотрев что предлагают скачать с нескольких, минимум 2-3, разных источников). Если проверка показывает, что файл тот же, то необходимо проверить архив (не только контрольные суммы, взятые с сайта разработчика, но и распаковать).

Если архив корректно раскрывается и содержимое не вызывает подозрений, то исправить манифест

# ebuild /usr/portage/$CATEGORY/$PACKAGE/$EBUILD.ebuild manifest
Anarchist

Q: Как мне в FreeBSD 6.X запустить несколько httpd-демонов, использующих различные конфигурации?

A: Главный руководящий документ, как всегда при использовании портированного ПО — стартовый скрипт /usr/local/etc/rc.d/apache22 (предполагается использование Apache 2.2).

Решение:

1. Создать каталог с конфигурационными файлами для второго демона (в принципе умолчательный набор конфигурационных файлов можно оставить неизменным)

# cd /usr/local/etc
# cp -r apache22 apache_out

2. В /etc/rc.conf прописывается

apache22_enable="YES"
apache22_profiles="local out"
apache22_local_configfile="/usr/local/etc/apache22/httpd.conf"
apache22_out_configfile="/usr/local/etc/apache_out/httpd.conf"

3. Можно запускать демона: # /usr/local/etc/rc.d/apache22 start.

REDkiy

Q: Где взять и как установить официальный драйвер от AMD(ATI) для видеокарты?

A: Официальные (проприетарные) драйвера от AMD(ATI) находятся здесь:

http://ati.amd.com/support/driver.html

Выбирайте соответствующую систему, архитектуру и качайте.

Установка (на примере Debian GNU/Linux «lenny»):

1. Устанавливаем необходимые пакеты:

$ sudo aptitude install fakeroot

2. Смотрим список идентификаторов пакетов:

$ ./ati-driver-installer-8-10-x86.x86_64.run --listpkg

3. Собираем пакеты под «lenny»:

sudo ./ati-driver-installer-8-10-x86.x86_64.run --buildpkg Debian/lenny

4. Устанавливаем полученные пакеты:

sudo dpkg -i *.deb

5. Правим /etc/X11/xorg.conf:

Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:1:0:0"
EndSection

6. Перезапускаем X-сервер.

Anarchist

Q: Как мне в Linux создать DJVU-документ?

A: В предположении наличии необходимых утилит (в Gentoo Linux это — app-text/djvu, в других дистрибутивах он может называться иначе, утилиты могут быть разбиты на несколько пакетов).

Сначала — преобразовать картинки в формат .djvu (предполагаю, что преобразуется текст, 300dpi — более чем достаточно, исходный формат — .png, также заявлен .jpg, прочие — не знаю)

for file in `ls $MASK.png`
do
anytopnm $file | ppmtopgm | pgmtopbm -value 0.499 > $file.pbm
cjb2 -dpi 300 $file.pbm $file.djvu
rm -f $file.pbm
done

После чего объединить страницы в итоговый файл

djvm -c $OUTFILE.djvu $MASK.png.djvu

src (тема раскрыта подробнее, есть и PERLовка)

Anarchist

Q: По умолчанию при добавлении пользователя в Gentoo Linux создаётся пользовательский каталог с правами доступа 755.

Что мне нужно сделать, чтобы при добавлении пользователя домашний каталог создавался с более безопасными правами 700?

A: Маска создания каталога при добавлении пользователя в Gentoo Linux прописывается в файле /etc/login.defs (ключ для поиска: man useradd).

Подсказка была процитирована на форуме Gentoo.RU