26 мая 2009 г.

Блокировка пакетов, нежелательных к обновлению

Замечательный хинт для deb-based дистрибов (ну, для Debian/*buntu точно), позволяющий запрещать к обновлению некоторые пакеты. Зачем это нужно? А вот... Есть к примеру пакет rdesktop, который по умолчанию очень хреново работает с переключением раскладок во время RDP-сессии. А есть патченная версия его же, но от Etersoft'a, доступная также свободно. Версия последнего - старее, поэтому при любом apt-get upgrade apt норовит обновить его. Что влечет за собой последующие дополнительные действия по скачиванию пакета, и его установке. Нет, можно конечно взять исходники и патчи Этерсофта, и скомпилить самому свеженький rdesktop'чик. Но ведь лень ;)
Гораздо проще блокировать изменения данного пакета. Чтобы это сделать, пишем от root:
echo {PACKAGENAME} hold | dpkg --set-selections
В нашем случае,
apt-get update
echo rdesktop hold | dpkg --set-selections
apt-get upgrade
После чего обновятся все пакеты дистрибутива, версии которых новее установленных, однако rdesktop (или какой то иной пакет) останется неизменным.
delayer@interro:~# apt-get upgrade
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Пакеты, которые будут оставлены в неизменном виде:
rdesktop
...

20 мая 2009 г.

CUPS hint: (client-error-forbidden)

При попытке подключить к CUPS одного Debian сервера принтер, подключенный, настроенный и расшаренный (опция в Administration - Share published printers connected to this system) к другому Debian серверу (обе машинки соединены openvpn туннелем) напоролся на неприятную ошибку, вынесенную в топик. Игры с настройками, попытка внести vpn-подсеть в /etc/networks на обеих сторонах не привели к желаемому результату. Решение оказалось следующим: в /etc/cups/cupsd.conf того CUPS, который отдает принтер, в секции внести следующие изменения:
<Location />
Order Deny,Allow
Allow From ip_cups_client
</Location>
(чтобы такое вставить в HTML-ный блог, юзаем сервис специальный)
ip_cups_client в данном случае - адрес CUPS'а, к к которому подключается нужный принтер.
После рестарта "отдающего" CUPS все начинает работать и ошибка более не проявляется.

8 мая 2009 г.

IDN links

IDN, Punycode и все-все-все - стоит прочитать и попытаться вникнуть.. Хотя можно и RFC уже маять =) Если вкратце - национальные доменные имена - это пиздец!

Загрузчики

Много где это описано, с картинками, видео, рисунками...не знаю с чем еще.. но все равно когда нужно, можно забыть и напортачить. А посему, пусть и тут будет, под рукой. Речь идет о восстановлении загрузчиков - виндового после убийства его grub'ом/lilo/bsd и grub'a после аналогичных действий с другой стороны =)
Системы всегда разные, разбиение и количество hdd тоже, но в общем действия такие:
1) GRUB
Грузимся с любого linux-liveCD, который окажется в наличии.
Запускаем grub. Приглашение консоли должно измениться на grub>
Далее вбиваем две команды: 
root (hd0,1)
setup (hd0)
TAB работает, так что не забываем его пользовать, дабы не ошибиться во вводе. hd0 - первый винт, 1 - второй раздел этого винта (то есть указываем, где лежит stage2 загрузчика. setup'ом устанавлием stage1 в MBR. 
Все, линукс онлайн! ;) Причем, если в menu.lst восстанавливаемого линуха было несколько записей, они вернутся в целости и сохранности.
2)WIN
Грузимся с любого диска установки Windows, у которого есть консоль восстановления (XP и выше точно..насчет win2k не уверен). Также должны подойти диски вроде HirenBootCD. Попав в консоль (нажать R когда инсталлер спросит, устанавливать винду, восстанавливать или передумать), выбираем копию установленной ОС, как правило она одна, так что жмакать 1. Далее вводим пароль учетки Администратор/Administrator. Залогинившись, последовательно вводим две команды - FIXMBR и FIXBOOT. Ребутимся.
Винда онлайн! ;)