Показаны сообщения с ярлыком debian. Показать все сообщения
Показаны сообщения с ярлыком debian. Показать все сообщения

20090903

Как пометить пакеты в Aptitude, чтобы потом удалить

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

Например, нужно поставить какой-то набор пакетов, чтобы собрать программу X из исходников, а потом нужно эти пакеты удалить. При установке помечаем выбранные пакеты какой-то своей меткой (builddeps в моём примере):
$ sudo aptitude install --add-user-tag builddeps libчто-то-dev libчто-то-ещё-dev ...

А потом, когда эти пакеты больше не требуются, их удаляем, выбрав по той же метке:
$ sudo aptitude purge '?user-tag(builddeps)'

Поисковый шаблон ?user-tag(метка) можно использовать совместно со всеми другими поисковыми шаблонами. Присваивать метки можно не только при установке (install), но и во многих других операциях.

Как видно из примера, особенно эта возможность полезна для самостоятельной сборки пакетов и программ из исходников.

P.S. Не помню, есть ли --add-user-tag в Ubuntu, но в Debian Lenny (aptitude-0.4.11) точно есть.

This post in English

20090826

Не видно букв в японском PDF?

Бывают такие PDF, родом из Японии, в которых, если попытаться открыть их в Evince или XPDF — букв вообще не видно, а в Adobe Reader-е вместо букв видны только точки. В свойствах документа список встроенных шрифтов вообще выглядит пустым. Google Docs же такие PDF открывает, что интересно. И открыв такие PDF в Google Docs, можно увидеть, что в них всё таки есть кое-что и латиницей. Только латиница эта — из японских шрифтов (квадратная и широкая).

Оказывается, для отображения этих PDF нужно поставить кое-какие дополнительные пакеты. Для Evince — нужно поставить рекомендуемый пакет poppler-data*. Для XPDF — нужно поставить пакет xpdf-japanese*. И только после этого мы действительно сможем нормально смотреть такие PDF-файлы.

* названия пакетов даны для Debian/Ubuntu.

20090611

Debian Lenny на Samsung X22

Мой новый рабочий ноутбук — Samsung X22. Черновой отчёт об установке и настройке Debian здесь (по-английски).

Когда разрешу оставшиеся вопросы, перепишу по-русски и помещу здесь. Пока очень кратко.

WiFi нормально работает после установки firmware-iwlwifi.

Комбинации клавиш Fn+... работают не все. Из коробки работают «кнопка сна» и регулировка громкости. Оказалось, не страшно. Простейший патч к hal-info, починяющий кнопки, разработчикам отправлен.

Видео-драйвер radeon работает, но не летает. Версия в Lenny недостаточно свежая и XVideo не поддерживает. Буду разбираться. fglrx вроде работает.
Дополнение 2009-07-01: fglrx который в Lenny, работает без нареканий, а вот с Xorg из unstable мне завести fglrx не удалось. Зато в Xorg из unstable драйвер radeon — уже 6.12.2. А именно в 6.12 появилась поддержка ускорения EXA и XVideo для чипов серии R6xx. Чтобы заработало, нужно также либо ядро 2.6.30 или новее, либо пересобрать модули radeon.ko и drm.ko для старых ядер. Как это сделать — написано в X.org вики (это минутное дело). Да, если ядро Debian — нужно ещё доустановить пакет firmware-linux (то, что выкинули из дебиановского ядра). И действительно — после этого новый свободный драйвер radeon работает. Видео высокого разрешения играется, по-моему, даже лучше и ровнее, чем с fglrx. 3D, правда, пока в свободном драйвере нет, только в fglrx. В общем, сейчас есть выбор: жить с Xorg из stable и проприетарным fglrx, или с Xorg из unstable и со свободным radeon (видео лучше, нет 3D).


Звук играет и с драйвером из Lenny, но, чтобы заработал микрофон, нужна свежая ALSA и в /etc/modprobe.d/alsa-base пришлось добавить
options snd-hda-intel model=ultra
По нажатию на Fn+Esc машина и с самого начала засыпала хорошо, но после просыпания экран не включался. Установил, что работают:
s2ram -f -a 2
и
pm-suspend --quirk-s3-mode
Соответственно в /usr/share/hal/fdi/information/10freedesktop/20-video-quirk-pm-samsung.fdi переделал так:
     <!-- this does not work for my SX22S! -->
<match key="system.hardware.product" string_outof="R40/R41;CoronaR">
<merge key="power_management.quirk.vbestate_restore" type="bool">true</merge>
</match>
<!-- I use this one: -->
<match key="system.hardware.product" string="SX22S">
<merge key="power_management.quirk.s3_mode" type="bool">true</merge>
</match>
После этого и спим хорошо, и просыпаемся.

Вебкамера, кардридер (xD/SD/MS) работают отлично. Оптический привод, вроде, тоже. Bluetooth пока не пробовал, а вот ExpressCard и HDMI проверять просто не на чем.

20090426

Недостаточно места для обновления дистрибутива?

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

У меня разбиение диска такое: корневой раздел / 10 гигабайт, на нём же /var/cache/. Обычно свободно около 1 гигабайта (поудаляв редко используемое, можно освободить 2 ГБ). Для обновления система затребовала больше 4,5 гигабайт — новые пакеты нужно куда-то скачать. Что делать, не переразбивать же диск только ради апгрейда? Тем более, что всё остальное время мне такого / вполне хватает.

Есть выход. Дополнительное место нужно для временного размещения скачанных пакетов. Потом оно будет не нужно (обычные обновления системы не требуют многих гигабайт). В Debian/Ubuntu скачанные пакеты помещаются в /var/cache/apt/archives/. И я просто временно разместил этот каталог на внешнем диске, где места достаточно.

Дополнение: ниже описано, как поступил я. Как подсказывают в комментариях, можно было поступить гораздо проще:
$ sudo mount --bind /каталог/в/разделе/где/много/места /var/cache/apt/archives
Признаюсь, что можно сделать --bind, просто забыл. В следующий раз попробую.


Действовал же так:

1) Сделал резервную копию текущего состояния archives/:
$ sudo rsync -avz --delete /var/cache/apt/archives ~/backup/var-cache-apt-archives

2) На диске, где вдоволь свободного места создал файл, в котором собираюсь разместить временный раздел под архивы (6 ГБ):
$ dd if=/dev/zero of=aptcache.img bs=1k count=6291456

3) Отформатировал этот файл как обычный раздел:
$ mke2fs aptcache.img

4) Подключил этот этот файл на место /var/cache/apt/archives/ (скрыв этим настоящий archives/):
$ sudo mount -o loop aptcache.img /var/cache/apt/archives/

5) Скопировал в него всё из старых archives/ (необязательно, там просто архив уже скачанных пакетов):
$ sudo rsync -avz ~/backup/var-cache-apt-archives/archives/ /var/cache/apt/archives/

6) Проверяю сколько свободного места есть, вижу, что теперь достаточно:
$ df -h / /var/cache/apt/archives/
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 9.5G 7.0G 2.1G 78% /
/dev/loop0 6.0G 12M 5.6G 1% /var/cache/apt/archives

Далее обновляю систему как обычно. После обновления системы можно сделать apt-get clean (удалить скачанные пакеты) и отключить временный /var/cache/apt/archives/.

20090402

Дополнения к статье «eeePC 901 и Debian»

В декабрьскую статью про eeePC 901 и Debian добавил:

1) Замечания по поводу сборки ядра 2.6.29 в Debian. Кратко: хотя пакет этого ядра уже появился в репозиториях (sid), ставить его на eeePC 901 смысла нет, так как драйвер тачпэда Elantech в нём выключен, а поддержку WiFi-модуля RT2860 в Debian-ядре вообще выкинули по лицензионным соображениям (см. #522078 и #521553). Выход — собирать самим из исходников с kernel.org. К статье приложил свой конфиг ядра.

2) Пошаговые инструкции по пересборке свежей ALSA в виде пакета Debian. В общем-то, конкретизированное на примере повторение Debian Wiki. Учитывая, что нужная ALSA теперь есть в sid, пересобрать пакет несложно, а запись звука зато не будет ломаться при апгрейдах.

3) Пример настройки тачпэда Elantech. Раз уж собрали ядро 2.6.29 с его поддержкой, то почему бы дополнительными возможностями тачпэда не пользоваться?

20090317

Нормальный русский шрифт в Tk-приложениях

Обновление: запись частично устарела, python-tk 2.5 уже давно в Debian stable. Так что пересобирать пакеты самостоятельно теперь не надо.

Как известно, есть такая библиотека для графических интерфейсов, Tk. На Tcl/Tk легко писать скрипты с графическим интерфейсом. Так же Tk используется в качестве стандартной (доступной по умолчанию на всех платформах и не требующей установки) графической библиотеки в Python. Приложений написанных с использованием Tk довольно много. Раз читаете этот пост — значит, видели (смотрим, например, aptitude search ~Dpython-tk и aptitude search ~D^tk).

Однако русским пользователям Debian и Ubuntu с Tk явно не повезло. По умолчанию, из коробки, русские буквы в ней отображаются очень криво. Вот, к примеру простейшее приложение-однострочник:
$ echo 'button .b -text "привет, world!" ; pack .b ' | wish
и наблюдаем вот такой результат:



Хороших слов для таких шрифтов не находится. Такое ощущение, русские буквы берутся из какого-то китайского шрифта, при этом никакого сглаживания и хинтинга. Проблема настолько острая, что даже разобрана в LOR Wiki. В случае Tcl/Tk достаточно начать использовать Tk 8.5 вместо 8.4. В Debian/Ubuntu это делается так:
$ sudo update-alternatives --config wish 

Есть 3 альтернатив, которые предоставляют `wish'.

Выбор Альтернатива
-----------------------------------------------
* 1 /usr/bin/wish8.4
+ 2 /usr/bin/wish-default
3 /usr/bin/wish8.5

Нажмите enter, чтобы сохранить значение по умолчанию[*], или введите выбранное число: 3
Используется `/usr/bin/wish8.5' для предоставления `wish'.
Повторяем наш проверочный пример, и получаем вполне пристойный результат:



Понятно, что перед этим нужно поставить пакеты tcl8.5 и tk8.5. Это минутное дело.

Однако приложениям на Python, использующим Tk, вышеописанный фокус не поможет. В Debian (Lenny) и Ubuntu (Hardy, Intrepid) пакет python-tk собран с поддержкой только tk8.4, то есть по-умолчанию такие приложения выглядят вот так:



Чтобы это исправить, нужно поставить пакет python-tk собранный с поддержкой Tk 8.5. В Debian такой пакет есть, но только в experimental. Я скачал оттуда pytnon-tk 2.5.4-1 и нужный ему blt 2.4z-4 вручную и поставил. Никаких лишних зависимостей они не тянут, а Tk-приложения обретают новую жизнь:



В Ubuntu (Intrepid) ситуация похожая. Пакет python-tk собранный с Tk 8.5 повляется лишь в Jaunty. И сразу python-tk 2.6.1-0ubuntu1. Конечно, в таких случаях религия предписывает пересобирать пакет самостоятельно.

20090316

Wacom Bamboo Fun в Debian Lenny

Начну с приятного. Планшет Bamboo Fun* в Debian Lenny поддерживается, в смысле, что собирать самостоятельно драйвера Wacom не надо. Годятся дистрибутивные. У меня стоят соответственно пакеты wacom-tools и xserver-xorg-input-wacom версии 0.7.9.3-2.

* а вот владельцам Bamboo One, похоже, повезло меньше, судя по-всему им придётся установить драйвера самостоятельно, поддержка Bamboo One заявлена лишь начиная с wacom-tools 0.8.2.2


Однако для нормального использования, нужно внести настройки планшета в /etc/X11/xorg.conf. Во-первых, я добавил туда раздел ServerLayot, которого по-умолчанию там не было:

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Configured Mouse"
InputDevice "Generic Keyboard"

InputDevice "stylus" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "pad"
EndSection


Во-вторых, добавил описания для все четырёх устройств ввода планшета (оба конца пера, указатель курсора и кнопки планшета).

Section "InputDevice"
Identifier "stylus"
Driver "wacom"
Option "Type" "stylus"
Option "USB" "on"
Option "Threshold" "10"
Option "Device" "/dev/input/wacom"
EndSection

Section "InputDevice"
Identifier "eraser"
Driver "wacom"
Option "Type" "eraser"
Option "USB" "on"
Option "Threshold" "10"
Option "Device" "/dev/input/wacom"
EndSection

Section "InputDevice"
Identifier "cursor"
Driver "wacom"
Option "Type" "cursor"
Option "USB" "on"
Option "Threshold" "10"
Option "Device" "/dev/input/wacom"
EndSection

Section "InputDevice"
Identifier "pad"
Driver "wacom"
Option "Device" "/dev/input/wacom"
Option "Type" "pad"
Option "USB" "on"
EndSection


После этого нужно перезапустить графическую подсистему («иксы»). Т.е., если используется графический экран входа в систему, то подключить планшет нужно ещё до появления этого экрана. Если курсор там управляется планшетом нормально — входить и работать. Если же планшет там не подхватился, то, не входя в систему, нажать Ctrl + Alt + Backspace. Графическая система перезапустится. После этого планшет должен уж точно подхватиться.

Внимание! Если планшет отключить (выдернуть из USB-порта), то придётся выходить из системы, чтобы он заработал опять. Не очень удобно, но так вот пока сделано... Зато работает и стёрка, и перо, и кнопки. В Убунту по-умолчанию планшет подхватывается сам, но чтобы заработала и стёрка, и кнопки, придётся всё равно сделать как в Debian.

После этого в используемом приложении (Gimp, Inkscape) нужно указать, какие устройства планшета надо включить. Конкретно в Gimp 2.4 нужно пойти в Файл, Настроить, Устройства ввода, Настроить дополн. устройства ввода. Далее последовательно выбрать все устройства планшета (stylus, eraser, cursor, pad) и включить каждое из них, установив режим «Экран» или «Окно». Нажать Сохранить.

Включить планшет в Gimp

Дополнительные возможности регулировки нажима кисти есть в новом Gimp 2.6, но в Debian Lenny старый добрый 2.4. В нём всё минималистично:

Настройки чувствительности кисти в Gimp 2.4

Утилитки wacomctl в Debian Lenny нет. Впрочем, может и к лучшему. Настроить параметры планшета и запрограммировать его кнопки можно из коммандной строки с помощью xsetwacom. Есть также графические утилитки Gnome Tablet Apps, которых в Lenny тоже нет, но поставить несложно. Выглядят они вот так:

Gnome Tablet Apps: регулируем чувствительностью планшета к нажатию

Однако вернёмся к не такой яркой, но универсальной утилитке xsetwacom. Ниже я расскажу, как регулировать чувствительность к нажатию. Для себя я описываю его «гаммой» нажатия. Гамма равная 1 соответствует настройке по умолчанию, гамма равная 2 соответствует очень сильной чувствительности к слабым нажатиям, гамма равная 0 соответствует очень слабой чувствительности к слабым нажатиям.

Параметры кривой чувствительности планшета вычисляются для данной гаммы длинной командой, которую я его сделал алиасом (pressgamma ниже). В ~/.bashrc поместил следующее:
alias pressgamma="awk 'BEGIN{ b=3.14*ARGV[1]*0.25; x=int(50*1.41*cos(b)); y=int(50*1.41*sin(b)); print x, y, 100-y, 100-x; }'"
function setwacomgamma { xsetwacom set stylus PressCurve `pressgamma $1` ; }
Теперь, посмотреть параметры кривой чувствительности для произвольной гаммы,
$ pressgamma 0.7
60 36 64 40
А установить нужную чувствительность планшета можно командой
xsetwacom set stylus PressCurve `pressgamma 1.2`
или просто
setwacomgamma 1.2


Дополнение. На сайте Wacom можно зарегистрировать свой планшет указав операционную систему Linux.

20081215

eeePC 901 и Debian (установка и настройка)

У моей жены теперь появился eeePC 901. Эту модель выбрали в основном потому, что в ней сочетается ещё достаточно компактный размер и малый вес (при этом экран уже 1024×600), ёмкий аккумулятор и экономичный процессор (это один из наиболее автономных нетбуков), при этом цена вполне разумна. Выбрали жизнерадостный зелёный вариант исполнения с предустановленным Linux (в этом случае второй встроенный флэш-диск 16 ГБ, а не 8 ГБ, как в версии с Windows).

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

Всё дело в том, что в 901, 1000 и 1000H Асус стал ставить модуль WiFi Realtek RT2860, драйвер к которому довольно сырой и требует проприетарной прошивки. Как результат, eeePC 901 из коробки просто не мог подключиться к открытой (!) точке доступа (тоже Асус, кстати). Такой хоккей нам не нужен. Более того, я теперь не удивляюсь, что им где-то там возвращают машины с Linux. Даже такая базовая для нетбука вещь как WiFi из коробки в новых 901 толком не работает, и не работает по вине производителя. Очень, очень стыдно, Асус, мы в тебя верили, а ты явно предпочитаешь модели без Linux! Одно отрадно: за лицензию Windows платить не пришлось, а проблема с WiFi решаема.

Так что почти сразу появился стимул поставить нормальный Debian. Сразу скажу, что с установкой системы моя жена справилась самостоятельно. Я только подсказал, как загрузочный образ debian-eeepc.img записать на флэшку:
0. посмотреть как называется устройство флэшки в выводе команды mount,
1. отсоединить том флэшки,
2. dd if=debian-eeepc.img of=/dev/устройство_флэшки,
3. sync
и подсказал ещё как лучше разбить диск (/ на первом флэш-диске, 4 ГБ, /home на втором, 16 ГБ, раздел для подкачки не создавали). Следуя рекомендации в Debian Wiki мы оставили два небольших раздела на первом флэш-диске. Вроде бы это ускоряет загрузку.

Для загрузки с установочной флэшки, нужно вставить флэшку, нажать ESC при перезагрузке устройства и выбрать устройство, с которого осуществлять загрузку. WiFi включается в BIOS (F2 при загрузке), это необходимо, если планируется ставить систему по беспроводной сети. Мы ставили по обычному Ethernet.

Основной источник информации при установке и настройке Debian на eeePC: Debian EeePC Wiki.

После установки почти всё сразу заработало. Ручного вмешательства потребовали только настройка sudo, WiFi и звук (микрофон). Засыпание/просыпание и видеокамера заработали сразу после установки. VGA-выход ещё не проверяли. Даже многопальцевые комбинации на тачпэде работают (хотя и не настраиваются, и мне кажутся непривычными после тачпэда synaptics). Bluetooth ещё не проверяли. Кардиридер работает.

sudo настраивается как обычно, запуском visudo от root-а, и добавлением строки
username ALL=(ALL) ALL
в файл /etc/sudoers. Другой вариант, раскомментировать строчку
%sudo ALL=NOPASSWD: ALL
а пользователя добавить в группу sudo.

Драйвер для WiFi доступен как на сайте производителя (Ralink), так и в репозитории
deb http://eeepc.debian.net/debian lenny main contrib non-free
Данный репозиторий подключается автоматически, если установка велась с указанного выше загрузочного образа.

После установки rt2860-modules-2.6.26-1-686 появляется возможность использовать сетевой интерфейс ra0. Разные способы настройки описаны здесь. Я же выбрал лёгкий путь и поставил wicd. Минутой позже я спокойно подключился к точке доступа с WPA2PSK.

Вообще, попробовал wicd я совсем недавно, и должен сказать, что это наиболее логичная и ясная графическая конфигурялка сети, которую я пока что видел. Устанавливается созданием файла /etc/apt/sources.list.d/wicd.list с указанием на сторонний репозиторий:
deb http://apt.wicd.net lenny extras
импортом ключей:
wget -q http://apt.wicd.net/wicd.gpg -O- | sudo apt-key add -
и после этого обычной установкой пакета wicd (с удалением NetworkManager). Запустить апплет wicd для панели Gnome: wicd-client.

Далее звук. Игрался он и так нормально, а вот с микрофона ничего не записывалось. Выяснилось, что поддержка Intel HDA Audio появилась в ALSA сравнительно недавно. Соответственно, нужно или ставить ядро 2.6.28-rc1 или более позднее, или собрать новую альзу самостоятельно. Мне было проще сделать второе.

Дополнение 2009-04-02. Несколько слов о сборке ядра 2.6.29 для Debian. Хотя пакет этого ядра уже появился в репозиториях (sid), ставить его на eeePC 901 смысла нет: драйвер тачпэда Elantech в нём выключен, а поддержку WiFi-модуля в Debian-ядре вообще выкинули по лицензионным соображениям (см. баги #522078 и #521553).

Короче, поступать в этой ситуации следует так:

1) не устанавливать готовых пакетов Debian, а взять исходники ядра на kernel.org и собрать пакет самостоятельно; при этом получив и поддержку тачпэда, и поддержку WiFi, и ядро, оптимизированное для настольных приложений — «из коробки»; постарался отключить всё лишнее, но явно отключил не всё. Конфигурацию ядра я частично позаимствовал отсюда. Основные особенности: CONFIG_PREEMPT=y (десктоп), CONFIG_RT2860=y (встроенный WiFi), CONFIG_MOUSE_PS2_ELANTECH=y (тачпэд Elantech), CONFIG_ATL1E (гигабитный Ethernet);

2) следовать инструкциям по сборке собственного пакета с ядром; если кратко, то переходим в каталог с распакованными исходниками ядра и делаем следующее:
$ make menuconfig
$ make-kpkg clean
$ nice -n +10 fakeroot make-kpkg --initrd --revision=eee901 kernel_image kernel_headers
Не забываем перед этим установить kernel-package и zlib1g-dev;

3) переходим на один каталог выше и устанавливаем собранные пакеты:
$ cd ..
$ sudo dpkg -i linux-headers-*.deb linux-image-*.deb

4) Перед тем, как перезагрузиться, не забываем пересобрать те модули, которые ставились из исходников. Например, пересобрать пользовательские модули ALSA из alsa-source можно так:
 sudo nice -n +10 m-a a-i -l 2.6.29 alsa
Хотя, кстати, с 2.6.29 я уже не уверен, что это нужно. Спросите экспертов;

5) после перезагрузки у меня вроде всё заработало (о настройке тачпэда см. ниже): WiFi, двухпальцевых скроллинг на тачпэде, звук и запись звука, видеокамера, кардридер, блутус (встроенный Bluetooth ещё не проверял, внешний USB-модуль работает), засыпание-просыпание, датчики батареи.


Для сборки альзы, вначале устанавливаем linux-headers:
sudo aptitude install linux-headers-`uname -r`
после чего можно скачивать исходники альзы. Исходники распаковываем, переходим в каталог с ними, делаем
$ ./configure --with-cards=hda-intel
$ make
$ sudo make install-modules
$ sudo ./snddevices
Конечно, не Debian-way, но работает. После установки драйверов из alsa-drivers-1.0.18a и перезагрузки заработал и микрофон, и регулировка громкости аппаратными клавишами.

Дополнение 2009-04-02: правильный для Debian способ заключается в пересборке пакетов ALSA. Тогда драйвера не будут затираться при каждом апгрейде ALSA в дистрибутиве. Конкретно в этом случае, если система Lenny (stable), а нужная версия доступна только в Sid (unstable), я поступил так:
1) добавил репозиторий исходников sid в /etc/apt/sources.list:
# sid source repository
deb-src http://ftp.debian.org/debian sid main contrib non-free
и вполнил sudo aptitude update.
2) во временном каталоге выполнил
$ apt-get -t sid source alsa-base
т.е. вытащил все исходники пакета alsa из репозитория sid. Затем скачал и установил все необходимые для сборки зависимости:
$ sudo apt-get -t sid build-dep alsa-base
Можно сохранить где-нибудь список, чтобы было проще удалить их потом. Наконец, перешёл в каталог с пакетом:
$ cd alsa-driver-1.0.19.dfsg/
Конкретная версия может отличаться.
3) Редактирую файл списка изменений
$ vi debian/changelog
На самом деле просто добавил «~backport1» к номеру версии. Новую запись в файле changelog делаю по образцу предыдущих (сохраняю отступы и количество пробелов). Время в нужном формате печатает команда date -R.
4) Пересобираю пакеты:
$ fakeroot dpkg-buildpackage -us -uc
Перехожу на каталог выше и устанавливаю все собранные пакеты:
$ cd ..
$ sudo dpkg -i linux-sound-base_1.0.19.dfsg-2~backport1_all.deb \
alsa-base_1.0.19.dfsg-2~backport1_all.deb \
alsa-source_1.0.19.dfsg-2~backport1_all.deb
Почти готово.
5) Осталось собственно собрать модули для текущей версии ядра. Для этого должен быть установлен пакет linux-headers и module-assistant. Тогда сборка и установка будет практически автоматической:
 $ sudo m-a a-i alsa
Всё. Теперь «правильная» альза должна быть установлена «правильным» способом. И пока в stable не появится более свежей альзы, будет использоваться «бэкпорт». При обновлении ядра нужно будет повторить только последний шаг (5). Чтобы новые модули заработали, нужно или выгрузить вручную все старые модули, которые начинаются на snd..., или просто перезагрузиться.


Аппаратные клавиши работают должным образом после установки пакета eeepc-acpi-scripts из указанного выше специального репозитория Debian для eeePC. Опять же, при установке со специального образа, он устанавливается по-умолчанию.

Ещё остаётся задача как следует настроить тачпэд. В 901 используется тачпэд Elantech. У меня он сейчас настроен как
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
EndSection
и он вроде работает. Кажется, только, иногда подтормаживает. Двумя пальцами делается вертикальная прокрутка и эмулируется средняя кнопка мыши, тремя пальцами эмулируется правая кнопка мыши, краткое касание второго пальца при удержании первого включает режим перетаскивания. Эти комбинации работают, но после тачпэда synaptics кажутся непривычными, и некоторые из них я бы отключил, особенно перетаскивание. На первое время я убавил чувствительность тачпэда в настройках Gnome.

Дополнение 2009-04-02: если было установлено достаточно свежее ядро с поддержкой тачпэдов Elantech (см. выше инструкции по установке ядра 2.6.29), то можно использовать нормальный драйвер тачпэда. Соответственно в /etc/X11/xorg.conf помещаем:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "synaptics"
Option "Device" "/dev/input/mouse0"
Option "Protocol" "auto-dev"
Option "SHMConfig" "true"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
EndSection
Кроме этого нужно установить xserver-xorg-input-synaptics версии не ниже 0.99.3. Готовые пакеты для Debian Lenny (stable) можно взять здесь. После перезапуска иксов, будет работать как вертикальный, так и горизонтальный скролинг двумя пальцами на тачпэде.

Подробности о настройке тачпэда смотрим в DebianEeePc Wiki.
Ссылки по теме:Народный опыт (*nix на схожих моделях):Впечатления о eeePC 901 в целом, как о железке, у меня очень приятные. Ничего не болтается, ладно всё подогнано. Вес и размер как раз такие, чтобы с ним было приятно сидеть где-нибудь на диване. Приятно сопротивление, с которым открывается и закрывается крышка. Клавиатура мелкая и чуть-чуть нестандартная, но если набирать аккуратно, то вскоре начинает получаться. От батареи работает действительно долго. Экран яркий, матовый, с широким углом обзора. Самое то. В разрешении же 1024×600 оказалось комфортно, особенно если использовать полноэкранный режим для ряда приложений (F11 в Gnome) и несколько рабочих столов. Только изредка приходится перетаскивать окошки с зажатым ALT.

Дополнение 2009-03-07: см. также мою следующую заметку, как переназначить курсорные клавиши, Shift и PageUp/PageDown на ееePC 901.

Дополнение 2009-04-02: дополнил описанием, как пересобрать пакеты ALSA для Debian stable, как собрать пакет ядра 2.6.29, как настроить тачпэд Elantech.

Дополнение 2009-07-01: в свежей заметке — как бороться с тормозами Firefox-а на eeePC.

Дополнение 2009-07-09: упомянул CONFIG_ATL1E (гигабитный Ethernet). Убрал ссылки на конфиг ядра, в котором его не было.

20081127

Подключаем сетевой принтер в GNOME

Задача: подключить сетевой принтер к клиентской машине. Предполагается, что используется GNOME в Debian/Ubuntu.

Решение:

1. Запускаем утилиту настройки принтеров (Система → Администрирование → Печать из меню GNOME или sudo system-config-printer).

2. Указываем отображать принтеры, подключенные к другим машинам (Сервер → Параметры в утилите настройки, ставим нужную галочку).



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



Вот, в общем, и всё.

20081118

До стабильного релиза Debian осталось…

Помню, как накануне выхода Intrepid Ibex весь инет пестрел картинками: осталось столько-то дней. Но мы-то ждём безглючного Lenny! А он будет готов тогда, когда будет готов, т.е. когда будут закрыты все баги. Итак, веселья ради, мой счётчик*:



Вставляется так:



Пример здесь: Debian RC-bugs countdown

Кстати, говорят, уже первый релиз-кандидат инсталлятора вышел…

* В RSS-аггрегаторах может не показываться, вставляется IFRAME-ом.

Дополнение: вышел, вышел уже родимый Lenny. Просто праздник!

20081112

Удалённое журналирование домашнего маршрутизатора

Матёрые сисадмины (я себя к ним не отношу) это и так знают, но простым пользователям это тоже может быть полезно. Бывает, что с домашней точкой доступа/маршрутизатором/DSL-модемом что-то случается и надо разобраться. Доступ к таким устройствам обычно только через веб-интерфейс. И даже если там включено журналирование, читать их журнал событий («лог») через веб-интерфейс не всегда удобно, да и время его хранения там не регулируется. К счастью, его можно перенаправить на нормальную GNU/Linux машину и сохранить в общем системном журнале.

Последовательность действий.

1. Включаем удалённое журналирование на маршрутизаторе. На моём Linksys-е, например, в веб-интерфейсе я выбираю Administration/Reporting/Syslog IP Address. Вводим IP-адрес своей машины. Чтобы узнать адрес своей машины:

$ ip addr | grep 'inet\>'

Понятное дело, что IP-адрес машины, сохраняющий журнал, предпочтителен статический, иначе придётся менять настройку каждый раз, когда меняется адрес.

2. На локальной машине, где будет писаться лог, требуем от syslog-а принимать логи от удалённых машин. Эта возможность по-умолчанию выключена, включается опцией -r при запуске сервера. В Debian-системах редактируем файл /etc/default/syslogd, и добавляем опцию в переменную SYSLOGD:

SYSLOGD="-r"


2б. Для удобства, можно прописать IP-адрес маршрутизатора в файл /etc/hosts, что-нибудь вроде

192.168.1.1 router

тогда в логах записи полученные с него записи будут помечаться именем «коробочки», а не её IP-адресом.

3. Перезапускаем syslogd:

$ sudo invoke-rc.d sysklogd restart


4. Журнал маршрутизатора теперь будет добавляться в /var/log/messages:

$ tail -f /var/log/messages | grep router
Nov 12 11:22:31 router secondary DNS address 193.70.152.25
Nov 12 11:22:31 router run_program(/etc/ppp/ip-up)

20081021

Debian Unstable → Ubunty Hardy → Ubuntu Intrepid (и, наверно, обратно)

Мой ноутбук переживал тяжёлый возрастной кризис. Стал необъяснимо зависать cron (при запуске). Потом стал зависать login. И ещё машина стала иногда зависать при засыпании. В общем, я не исключал и аппаратной проблемы. Зависимость от внешнего охлаждения у машинки уже давняя и прочная (перегревы бывают). А тут, раскурочив, я вынул из её чрева летавший там туда-сюда отвинтившийся непонятно от чего винт. Однако memtest86+ ошибок не находил. В общем, решил попробовать поставить «чистую» систему, чтобы посмотреть, не будет ли чудес и там. Быстренько сбросил образы /home и / на внешний диск (на всякий пожарный, dd if=/dev/раздел of=/media/внешнийдиск/backup/файл.img bs=1k conv=noerror,sync) и начал.

Поскольку под рукой был диск с Ubuntu 8.04.1, да и давно уже хотелось посмотреть не текущий уровень достижений в убунтустроении, поставил его. Поставилось нормально. /home оставил тот же. Почти всё, что должно работать, вроде работает. Из приятного: если в начале установки попросить показать подробную информацию по релизу, то запускается браузер, и можно что-нибудь в интернете почитать, пока ставится. Инсталятор Debian не видел давно, пока счёт 0:0.

Ещё из приятного, по причине того, что созданный пользователь имел тот же логин и ID, что и раньше, все старые настройки сохранились и замена системы была бы совсем незаметна, если бы не изменились версии кое-каких программ и не пришлось ставить кое-что заново (по мере необходимости). Ну и минимальные отличия вроде того, что Iceweasel здесь зовётся Firefox-ом :) 1:1

Из неприятного. Репозиторий Ubuntu субъективно меньше. Например, мой любимый Simutrans (это такая игрушка, железные дороги строить, паровозики гонять) для Ubuntu не упакован. Собрал из исходников. Да только вот тормозит, время от времени. Хотя за пару дней до этого ровно та же самая версия в Debian работала безукоризненно. Ну да, это развлечения, но для меня лично — уже 2:1. :)

В видеопроигрывателе Totem (через Gstreamer) по-умолчанию как бы играются MIDI (но без звука!). Зато, видимо как раз из-за MIDI время от времени тормозят программы, использующие SDL_mixer (упомянутая выше Simutrans перестаёт тормозить после отключения MIDI). В Debian GStreamer даже не пытался играть MIDI (когда я последний раз пытался), а SDL_mixer не тормозит. 3:1.

Ещё из неприятного, при подключении моего Garmin GPSmap 60Cx к USB порту, в Ubuntu Hardy устройства /dev/ttyUSB0 не создаётся (соответственно, всякие мои скрипты не работают). Как выяснилось, нужно раскоментировать garmin_gps в /etc/modprobe.d/blacklist. Прогрессивный метод писать в параметрах GPSbabel «-f usb:» у меня лично не работал. 4:1 в пользу Debian.

Зато моя WiFi карточка заработала «из коробки», как и Network Manager. 4:2.

А ещё жене понравилась оболочка для установки-удаления программ. 4:3.

Засыпание-просыпание работает пока без нареканий (то ли время слишком мало прошло, то ли действительно работает). 4:4. Зато кнопки управления яркостью экрана впервые за много лет поменялись местами (т.е. та, которая должна увеличивать яркость — уменьшает, и наоборот). В Debian всё было в порядке, я вообще был уверен, что они аппаратно реализованы. Это конечно мелочь и придирка, но всё же 5:4.

А ещё я постарался посмотреть на всё это с точки зрения «а если бы я был совсем новичок». И пришёл к выводу, что убунту совсем не дружелюбнее дебиан, когда это касается русскоязычных пользователей. Вот, например, по умолчанию пользователь открывает браузер и попадает на сайт техподдержки. Так вот, страница на русском языке там всего одна. Я и по-английски читаю, а кому такую порекомендуешь? Почему на ней нет ссылки на русскую документацию? Не, уж лучше Debian, сайт не такой лощёный, но хоть по-русски куча информации, и найти легко. Да и переводы вроде «разбивка винта» в документации Debian обычно не встречаются. В общем, для русскоязычного пользователя, видимо, Debian в данный момент подходит лучше. Счёт 6:4 в пользу Debian, но арбитр был пристрастен.

Так что жду ненаглядного Lenny, и откатываюсь обратно :)

Update: допишу сюда же об апгрейде до «Бестрепетного тура» (Intrepid Ibex) и об использовании Palm в Убунту. В общем, в отношении апгрейда всё прошло нормально, только папки из закладок стали открываться «Анализатором использования дисков» (baobab). Вылечилось правкой файла ~/.local/share/applications/mimeapps.list, там должно быть inode/directory=nautilus-folder-handler.desktop;, а не что-то иное.

Синхронизация с палмом, как и использование GPS Garmin через GPS, тоже «сломалась» (да, я до сих пор пользуюсь палмом, Tungsten E2). Теперь вместо старого:
$ pilot-xfer -p /dev/ttyUSB0 --backup каталог/резервной/копии/
это делается так:
$ pilot-xfer -p usb: --backup каталог/резервной/копии/
ну и после этого как обычно жмём кнопку на палме.Б

PS. На днях, вероятно, опишу, как настроил планшет Wacom Bamboo Fun. Работает. Update: в Intrepid Ibex уже даже и драйвер собирать не надо, распознаётся, работает на ура (кроме стёрки и кнопок), даже теперь стало работать горячее подключение.

20080222

Каталог игр в Debian

И перед глядущими праздниками и выходными — несерьёзный пост. Недавно узнал про пакет goplay. Программка позволяет посмотреть, какие игры доступны в репозитории Debian, игры можно выбирать по жанру и по типу интерфейса. Сразу можно прочитать описание, сходить по ссылке на страницу игры... Я и не знал, что игр для Linux так много :)

Для некоторых игр сразу доступны скриншоты:



В общем, довольно занятная программка. Интерфейс немного сыроват, но терпим. Все описания правда только по-английски... Чтобы программа заработала, надо перед её запуском сделать с правами root-а:
ept-cache reindex

Ну а выбрав игру, устанавливать её можно как обычно.

Дополнение: найти нужный пакет по тэгам (не только игры!) можно используя вот эту веб-страницу.

20080207

Как задавать произвольные Compose-последовательности

Я уже писал о том, как с помощью клавиши Compose набирать диакритику (символы с акцентами), типографские кавычки и другие символы уникода, отсутствующие в стандартной раскладке . Писал и о том, как я приспособил клавишу Compose, чтобы набирать ударения в словах (добавив специальную Compose-последовательность для символа ударения). Тогда же я ещё сокрушался, что среди стандартных Compose-последовательностей не хватает символа многоточия…

То, как я добавил новую Compose-последовательность (пересобрав метод ввода Latin-Plus) — было решением неудобным и негибким. Недавно же я узнал, как можно гораздо проще и быстрее задавать произвольные Compose-последовательности. Для этого, оказывается, достаточно отредактировать файл ~/.XCompose. Об этом и пойдёт речь.

1. Надо включить клавишу Compose (об этом я уже писал);
2. Маленькая хитрость. Вначале надо настроить систему так, чтобы библиотеки Qt и особенно GTK использовали метод ввода X Input Method (xim). Для этого в Debian можно установить im-switch, запустить im-switch -c и выбрать default-xim из списка. В других системах, видимо, надо присвоить переменным окружения GTK_IM_MODULE и QT_IM_MODULE значение xim (например, поместить GTK_IM_MODULE=xim в /etc/environment). Если этот шаг пропустить, все последующие настройки на GTK приложения распространяться не будут (они будут использовать свой метод ввода). С Qt приложениями, если честно, я не экспериментировал, но видимо и они могут иметь отдельную настройку;
3. После этого можно создать в домашнем каталоге файл ~/.XCompose. Первой его строчкой можно включить все стандартные комбинации клавиш:
include "/usr/share/X11/locale/en_US.UTF-8/Compose"

а затем можно и задать любые дополнительные последовательности (по образцу как в /usr/share/X11/locale/en_US.UTF-8/Compose). Например,
<Multi_key> <period> <space> : "…" U2026 # HORIZONTAL ELLIPSIS, многоточие
<Multi_key> <apostrophe> <apostrophe> : "́" U0301 # ударение

Всё, в запускаемых теперь приложениях должны работать новые комбинации. В частности, при нажатии Compose + точка + пробел будет набираться знак многоточия (который отличается от трёх точек), а если после буквы нажать Compose + два раза апостроф — над буквой появится знак ударения.

Таким образом можно вводить любые сиволы из уникодной таблицы (найти нужный символ поможет gnome-character-map). Достаточно вставить этот символ в кавычки после описания последовательности. Можно таким образом создавать целые клавиатурные макросы. В частности, я попробовал повесить <a href="" ></a> на сочетание Compose+a+h. Работает! Желающие могут взглянуть на мой файл ~/.XCompose (кодировка UTF-8). Я добавил туда ещё немного математики и греческие буквы.

Теперь можно прямо в e-mail писать: «∀ε>0 ∃δ>0 ∀x,|x-x₀|<δ : …» :)

Информацию я почерпнул из этих источников:
International text support on Linux
Compose key magic

Дополнение: в комментариях Shoorick дал ссылку на свой .XCompose, в котором есть дореволюционная буква «ѣ» и другая экзотичная кириллица, довольно удобные кавычки для русской раскладки, а также буквы для татарского, башкирского и казахского языков и набор разных стрелок (← → ↗ ↘ ⇐ ⇒ …): http://shoorick.ru/lj/txt/dotXCompose_as (стрелки, дореволюционные буквы и кавычки я заимствовал в свои настройки).

20080118

Поисковые шаблоны в Aptitude

В этом посте я расскажу о том, как искать пакеты программ Debian с помощью aptitude. В Ubuntu, понятно, всё делается точно так же.

Обычно, чтобы найти нужный пакет, достаточно написать что-нибудь вроде

$ aptitude search шаблон

и получить список пакетов, в названии которых встречается «шаблон». Например:

$ aptitude search doom
v doom-engine -
p doom-package - Installer for Doom data files
v doom-wad -
v doom-wad-editor
...


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

$ aptitude search HDR

и получает

p chdrv - Chinese terminal for the Linux console
p chdrvfont - Kuo Chiao 16x16 font for CHDRV Chinese con


Явно это не то, что его интересовало. Вот именно здесь пригодятся более «продвинутые» возможности поиска в aptitude. А именно «поисковые шаблоны». Полное описание шаблонов доступно в документации к aptitude. Здесь я расскажу только о некоторых из них.

Итак, каждый шаблон — это некое условие поиска. По умолчанию, если указать сразу несколько шаблонов, то будет выдан список пакетов, соответствующих всем указанным условиям (логическое И). Если шаблоны разделить знаком «|», то будут найдены пакеты, соответствующие хотя бы одному из условий (логическое ИЛИ). Если перед шаблоном (условием) поставить восклицательный знак, то будут найдены пакеты, для которых это условие не выполняется (логическое отрицание). Несколько шаблонов (условий) можно группировать с помощью скобок.

Шаблоны обычно начинаются со знака тильда «~». За ней следует символ, указывающий тип шаблона. Затем может идти дополнительный текст, зависящий от шаблона. Такой синтаксис шаблонов должен быть знаком пользователям почтовой программы mutt.

Итак, самые полезные, на мой взгляд, шаблоны:

~nимя — в имени встречается текст «имя» (можно использовать регулярные выражения, например, ~n^lib отбирает только имена начинающиеся с lib)
~dтекст — в описании пакета встречается «текст» (очень полезно, если название программы неизвестно, но известно, что она должна делать)
~i — отбирает только уже установленные пакеты
~N — отбирает только новые пакеты (которых раньше не было в репозитории)
~U — отбирает пакеты, которые можно обновить
~Dтребование — отбирает пакеты, которые зависят от «требования» (можно использовать регулярные выражения)
~Rзависимый — отбирает пакеты, которые необходимы для «зависимого» (можно использовать регулярные выражения)

Вернёмся к нашему примеру. Поскольку поиск по именам пакетов ничего полезного не дал, можно поискать по описаниям:

$ aptitude search ~dHDR

даёт 27 строк результатов. Уже лучше, но среди них — явно лишние. Можно ограничить выборку только теми пакетами, в описании которых говорится и про HDR, и про изображения (images):

$ aptitude search ~dHDR~dimage
i exrtools - A collection of utilities for manipulating
p libopenexr-dev - development files for the OpenEXR image li
c libopenexr2c2a - runtime files for the OpenEXR image librar
i libopenexr2ldbl - runtime files for the OpenEXR image librar
p libpfs-1.2-0 - C++ library to read and write pfs files
p libpfs-dev - C++ library to read and write pfs files (d
p octave-pfstools - octave bindings for pfstools
i openexr - viewer and docs for the OpenEXR image form
p pfstools - command line HDR manipulation programs
p pfstools-dbg - command line HDR manipulation programs (de
i qtpfsgui - graphical user interface providing a workf


Это именно то, что надо. В данном примере я соединил два поисковых шаблона вместе (логическое И).

А вот пример отрицания условия:

$ aptitude search '!~i~naptitude'
p aptitude-dbg - Debug symbols for the aptitude package man
v aptitude-doc -
p aptitude-doc-cs - Czech manual for aptitude, a terminal-base
p aptitude-doc-fi - Finnish manual for aptitude, a terminal-ba
p aptitude-doc-fr - French manual for aptitude, a terminal-bas
p aptitude-doc-ja - Japanese manual for aptitude, a terminal-b


Здесь я искал такие пакеты, в названии которых встречается «aptitude» (~naptitude), но в системе они у меня не установлены (!~i). Поисковые шаблоны были взяты в кавычки, чтобы избежать интерпретации восклицательного знака оболочкой bash.

А вот пример комбинации логического ИЛИ и логического И. Я смотрю, какие у меня установлены пакеты, такие что в названии встречается firefox или iceweasel (обратите внимание на группировку шаблонов с помощью скобок):

$ aptitude search '~i(~nfirefox|~niceweasel)'
i iceweasel - lightweight web browser based on Mozilla
i iceweasel-gnome-support - Support for Gnome in Iceweasel
i iceweasel-l10n-ru - Russian language package for Iceweasel


Поскольку firefox у меня не стоит, то найдены только пакеты iceweasel.

Конечно, использовать поисковые шаблоны можно не только из коммандной строки. Работают они и во встроенном поиске aptitude в полноэкранном режиме.

От себя могу заметить, что после того, когда я вдруг узнал про поисковые шаблоны aptitude, поиск и установка нужных программ в Debian стали намного проще и приятнее.

По теме: Как пометить пакеты в Aptitude, чтобы потом удалить.

20080109

Как пересобрать deb-пакет

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

К счастью, пересобрать (изменённый) пакет достаточно просто. Последовательность действий:

0. Убедиться, что в /etc/apt/sources.list есть подходящая запись deb-src; добавить, если нет. Добавляется примерно такая строчка:
deb-src http://ftp.ru.debian.org/debian/ testing main contrib non-free

в ней можно менять адрес зеркала, ветку (например, stable или unstable вместо testing) и разделы репозитория.

После этого надо сделать aptitude update. Перейти в каталог, в котором собираетесь собирать исходники.

1. Получить исходники пакета: apt-get source -t unstable названиепакета. Здесь надо учитывать, что иногда из одного пакета с исходниками собирается несколько бинарных. Указывать название пакета с исходниками. Параметр -t unstable указывает, что взять нужно исходники версии из unstable.

2. Скачать всё, что необходимо для сборки: apt-get build-dep название пакета

3. Перейти в каталог названиепакета-версия/

4. Поправить, что хочется, в исходниках. Отредактировать файл debian/changelog (см. документацию, как описывать изменения). Описывать изменения и менять номер версии пакета нужно, чтобы потом самому отличать свои пакеты от дистрибутивных.

Дополненине: Для редактирования debian/changelog можно воспользоваться dch. Например, dch -l myname создаст в changelog запись для новой версии пакета, добавив myname к номеру версии Debian.

5. Пересобрать пакет: fakeroot dpkg-buildpackage -us -uc

Дополнение:: Savagex в комментария заметил, что тот же результат можно получить с помощью dpkg-buildpackage -rfakeroot.

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

Возможно, это не совсем идеологически верное описание и что-то важное я упустил (я не Debian-гуру). Кто знает лучше — пусть поправит. Однако такой способ вполне годится для личного использования.

Дополнение: анонимный читатель указал, что для пересборки пакета можно также воспользоваться программой pbuilder, которая позволяет производить сборку в «чистом окружении» и не засорять систему зависимостями для сборки (см. этап получения build-dep). Соответственно, рекомендую две ссылки по теме: Как я собираю/бэкпорчу deb пакеты (GQ's blog) и о сборке пакетов Debian в русской Debian wiki.

Просмотр вложений *.doc в виде простого текста

Не знаю кому как, а мне приходится получать пустые письма, к которым приложен файл DOC, PDF или, чего доброго, PPT, с двумя абзацами текста. Запускать OpenOffice всякий раз только для того, чтобы взглянуть про что письмо или скопипастить оттуда два слова — долго и неудобно.

Пользуюсь я почтовиком Claws Mail. К нему прилагается скриптик textviewer.pl, готовый работать универсальным просмотрщиком (точнее вызывать подходящий конвертер что-нибудь—в—просто-текст и показывать содержимое файла в стандартный вывод). Так, файлы Word он обрабатывает antiword-ом, файлы RTF — unrtf-ом, файлы PowerPoint — ppthtml (не всегда удачно), PDF — pdftotext, OpenOffice — ooo2txt (а вот этого у меня нет). Получается быстро и удобно.

Соответственно в настройках Claws Mail в качестве универсального просмотрщика нужно указать textviewer.pl -v '%s'.

Однако я думаю, такой скриптик может быть полезен и пользователям других почтовых клиентов. В Debian его можно найти внутри пакета claws-mail-tools или взять прямо из CVS репозитория. Сами конвертеры «хитрый формат в plain text» в Debian находятся в пакетах antiword, unrtf, ppthtml, xpdf-utils.

Дополнение: Вначале обрадовался. Узнал, что в Debian просматривать файлы OpenOffice.org без установки можно с помощью o3read (o3read, o3totxt). Потом огорчился. Ни один из моих файлов *.odt прочитать с помощью o3read не вышло.

Установка дополнительных пакетов LaTeX в Debian

Многие пакеты LaTeX доступны непосредственно из репозитория Debian, в частности в пакетах texlive-latex-recommended и texlive-latex-extra. Однако бывает, что нужно воспользоваться каким-то пакетом, который в дистрибутив не включен (но есть на CTAN).

Инструкции по ручной установке таких пакетов можно найти в руководстве Debian-specific information about TeX packages.

Если кратко, то установка дополнительных пакетов вручную состоит всего из двух шагов:
1. поместить файлы пакета туда, где (La)TeX ожидает их найти,
2. зарегистрировать новые файлы.

(La)TeX ожидает найти новые пакеты внутри каталога TEXMFLOCAL, который обычно находится /usr/local/share/texmf.

Для пакетов LaTeX там нужно создать подкаталог tex/latex/имя пакета (или использовать tex/latex/misc) и поместить туда файлы пакета; документацию надо положить в doc/latex/имя пакета. Если пакет распространяется в виде пары файлов *.dtx и *.ins, то, чтобы создать файлы пакета, нужно обработать latex .ins-файл, а чтобы создать файлы документации — .dtx-файл. После этого файлы *.dtx и *.ins больше не нужны. Ну и, конечно, нужно читать, что написано в файле README идущем вместе с пакетом.

После того, как файлы пакета разложены куда надо, зарегистрировать их легко. Запустите команду mktexlsr (известную также как texhash). Она пересоздаст файлы ls-R для всех каталогов TeX, в которых у пользователя есть права на запись.

Можно также устанавливать пакеты в пользовательское дерево TeX (TEXMFHOME), которое обычно находится в $HOME/texmf. Об особенностях установки пакетов в домашний каталог, а также об особенности установки шрифтов вручную, можно прочитать всё в том же руководстве.

20071119

vim в Debian: включение-отключение расширений

В Debian некоторые популярные расширения к vim, вроде vim-latexsuite, поставляются в виде готовых пакетов (см. также пакет vim-scripts). Однако установить пакеты vim и vim-latexsuite обычно мало. Нужно ещё включить расширение (то бишь поместить на него символические ссылки в своём ~/.vim).

Расширения включаются и отключаются с помощью vim-addons из пакета vim-addons-manager:
$ vim-addons list # показать список доступных расширений
$ vim-addons install latex-suite # установить/включить расширение
$ vim-addons disable latex-suite # отключаем расширение latex-suite
$ vim-addons remove latex-suite # удаляем расширение latex-suite (из ~/.vim)

Вот такой Debian-way.

20071030

Сертификат подлинности Debian

С планеты Debian прилетело:

Сертификат подлинности Debian
SVG-исходник прилагается


Сертификат подлинности Debian[, который можно и не показывать].

«Легализуйте вашу копию Debian, предоставьте подтверждение, и помогите нам бороться с пиратством».

P.S. См. также сертификаты подлинности Ubuntu и Fedora.