суббота, 6 февраля 2010 г.

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

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




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

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

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

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

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

воскресенье, 31 января 2010 г.

Как очистить swap в linux

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

Командой swapoff -a, запущенной от имени суперпользователя, можно отключить использование всех разделов и файлов подкачки. После ввода команды содержимое свопа за несколько минут загружается обратно в оперативную память, а сам раздел подкачки отключается. Если честно, я не испытывал, что произойдёт, если при этом оперативной памяти окажется недостаточно. Ну и после загрузки содержимого свопа в оперативную память я всегда включал его обратно командой swapon -a. Однако приятно, что можно так легко и быстро вернуть отзывчивость системы одной командой безо всяких перезагрузок.

пятница, 22 января 2010 г.

Решение проблемы с запуском апплета glipper при загрузке системы

В Gnome есть неплохой менеджер буфера обмена, работающий как апплет - Glipper. Не без причуд, но функции свои выполняет. Однако в Ubuntu Karmic он постоянно падает при загрузке системы. Есть костыль, решающий эту проблему. Нужно отредактировать файл /usr/lib/glipper/glipper следующим образом:

#!/usr/bin/env python

# Glipper - Clipboardmanager for GNOME
# Copyright (C) 2007 Glipper Team
# bla bla bla
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#

import time # <-- Добавьте эту строчку.
time.sleep(8) # <-- И ещё вот эту. Замените 8 на число побольше, если не сработает


import gobject
gobject.threads_init()

import gtk, gnomeapplet, gnome
import getopt, sys
from os.path import *


Уже после того, как я написал эту заметку, я узнал о ещё одном менеджере буфера обмена: Parcellite. Отличная вещь, запускается и висит в трее. До версии 0.9.2, выпущенной совсем недавно, в программе присутствовал нехороший баг - программа не позволяла копировать изображения в буфер обмена. Поэтому лучше собрать самому из исходников, их можно взять здесь. Приятной работы.

среда, 20 января 2010 г.

Disk Maintenance under Linux (Disk Recovery)

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


среда, 13 января 2010 г.

Конвертация музыки в формат FLAC с использованием CUDA

Приятная новость: наконец-то появился кодек для формата FLAC, который может использовать CUDA для ускорения процесса кодирования. Кодек называется FlaCuda и взять его можно здесь. Несмотря на то, что программа написана с использованием .NET, она прекрасно работает при участии Mono. Во всяком случае, у меня не возникло никаких трудностей с её использованием на моей Ubuntu 9.10 amd64 не возникло.

Программка работает довольно шустро, при сжатии одного и того же аудиофайла flac, flake и flacuda показали следующие результаты (amd x2 4200+ , geforce 9800 GT):


flac127 с.425.3 Мб
flake106 с.425.9 Мб
flacuda24 c.424.1 Мб

Уровень сжатия у всех кодеков ставился 8 . Получаем солидный пятикратный прирост в скорости. Программа умеет брать данные из стандартного ввода и выводить на стандартный вывод, что позволяет воткнуть её в конвейер. Например, я вполне успешно модифицировал cue2tracks для работы с flacuda.

Теперь о минусах.  Программа построена на основе кодека flake, поэтому 24-битный звук сжимать не умеет. Очень обидно. Больше недочётов не заметил.

Сам автор предупреждает, что программа всё ещё находится в стадии альфа, поэтому желательно перепроверять полученные файлы. Например, можно полученный .flac перегнать обратно в .wav и сравнить его с исходным, посчитав контрольную сумму того и другого. За развитием можно следить форуме www.hydrogenaudio.org, и там же можно связаться с автором.

суббота, 9 января 2010 г.

Хитрости установки и запуска Unreal Tournament 2003

Попались мне сегодня на глаза диски со стареньким Unreal Tournament 2003 и я задумал в него погонять. Тем более, я давно слышал, что его портировали на линукс, так что он работает практически нативно. Действительно, на 3-м диске обнаружился установщик, который я немедленно попытался запустить. Разумеется, так просто ничего не заработало...

понедельник, 4 января 2010 г.

Воспроизведение blu-ray с субтитрами

На днях уселся смотреть диск blu-ray, рипнутый на винчестер. С внешними субтитрами. Открыл smplayer, нашёл в папке BDMV/STREAM самый большой файл, запустил. Красота, звук 5.1, изображение - чётче не бывает. В общем, всё прекрасно, но тайминг субтитров не совпадает. Заглянул в файл с субтитрами - всё нормально, должно работать. Ан нет.

Минут 20 гугления интернетов обнаружили следующий пост в блоге буржуинского товарища, где обнаружились такие строки:

Somehow mplayer “thinks” it starts playing at minute 10 while the movie plays from second one. This causes your subtitles to begin playing from 10 minutes thus resulting in the wrong subtitles at the wrong time.

В переводе с вражеской мовы это означает следующее: "По какой-то причине mplayer "думает", что он начинает проигрывание с 10-й минуты, хотя фильм проигрывается с 1-й секунды. Из-за этого субтитры показываются, начиная с 10-й минуты, поэтому субтитры и видеоряд не совпадают". Решение простое - просто сдвинуть субтитры на 10 минут, или -600000 мс, как принято в smplayer.

Приятного просмотра.

воскресенье, 3 января 2010 г.

Ssh - ubuntu - samba - ubuntu или квест для линукса с оркестром

Всё началось с того, что знакомый дал мне винчестер, чтобы я поперекидывал на него всякую инфу. Тут надо заметить, что у меня стоит 2 компьютера, один из которых служит мини-сервачком: роутер, качалка и ещё по мелочи. Живёт этот сервачок на балконе. На обоих машинках стоит Ubuntu, а связаны они гигабитной сеткой.
Прикинув, что самому разбираться, что именно заливать на эту "дискетку", лень, решил открыть другу доступ на ssh, и пускай возится. Было холодно и сыро, на балкон лезть не хотелось, посему винчестер подключил к рабочему компьютеру, планируя расшарить при помощи nfs.

И вот тут меня ждал облом. Оказалось, что в десктопном ядре выключен nfs-kernel-server. Разбираться с userspace-серверами не хотелось. Махнув рукой, решил попробовать расшарить самбой через гномовскую гуишку. Тыц-тыц, "свойства папки", пара галочек - готово. Захожу на сервачок по ssh, устанавливаю smbfs, монтирую шару командой sudo mount -t cifs //10.1.1.96/pocket /media/pocket - вроде работает. Пробую копировать - амба, файлы копирует, а при копировании каталогов создаёт каталог, а файлы в него писать отказывается. На права ругается.

Ладно, думаю, мало ли, какая бага может быть в гуях. Правлю smb.conf, создаю шару ручками - та же фигня. Часа полтора я плясал над этим конфигом. В конце-концов, от безнадёги решил попробовать копировать, залогинившись на ssh под рутом. Всё прекрасно копируется. Ага, значит конфиг самба-сервера тут совершенно ни при чём! 5-минутное курение мануала опций mount.cifs выявило опцию "noperm". В общем, что происходило: клиент создаёт каталог; сервер меняет владельца на nobody (стандартный владелец для гостевой учётки); клиент смотрит права на запись в каталог, видит, что у него нет разрешения на запись и отказывается копировать. Опция noperm позволяет работать с файлами на примонтированном устройстве без проверки прав со стороны клиента. Ещё пришлось добавить к mount опцию "iocharset=utf8", т.к. по умолчанию имена создаваемых файлов передаются в кодировке nls_default, а nls_default в убунтушном ядре выставлен по умолчанию в cp437. В конечном итоге рабочая команда для монтирования выглядела так:
sudo mount -t cifs //10.1.1.96/pocket /media/pocket -o username=guest,password="",noperm,iocharset=utf8

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