2011-10-19

ubuntu: enterprise-ready distributio

а еще эта хрень при апгрейде без спросу перезаписывает файлы в /etc.
нет, я не заявляю что оно без спросу похерило все мои конфиги. конечно же не все.
многие оно предлагало похерить, и я вежливо отказался.

без спросу перезаписано/похерено:
* любые файлы в /etc/default. может не все, но многие. возможно это зависит от мантейнера пакетов. а может это линия партии - херить все что херится, хозяен компа каноникал а не та прослойка между клавой и стулом;
* стартовые скрипты и просто скрипты. меня уже заманало восстанавливать из бекапа /etc/qemu-ifup и qemu-ifdown. и да, я знаю про chattr +i, но он не всегда применим и не всегда спасает (как avahi-daemon перезаписывает файлы с immutable???)
* некоторые конфиги типа dhcp-client, и т.д. очевидно девелоперы не верят что там можно что-то править или иметь мнение отличное от мнения девелоперов
* скрипты /etc/init и /etc/init.d (кстати, еще по два луча поноса этим ублюдкам за две системы скриптов в одном дистрибутиве)
* полный волюнтаризм в /etc/rc.*.d

Борьба интеллекта пользователей с тупостью программистов :)

проблема:
при использовании штатных средств управления сетевым подключением (network-manager), есть некоторые неудобства:
1) переключение статика/динамика крайне сложное (под кде это только в последних двух релизах можно сделать без бубна)
2) при кратковременном потере линка (привет патчкордам с отломаными защелками) настройки интерфейса сбрасываются.
3) при уходе в спячку сброс
4) локальный прокси-кеш/банерорезка/анонимайзер теряют контакт с реальностью (не сразу отбнаруживают что днс-сервер доступен/изменился/недоступен)
5) системные сбои обычно приводят к полному отсутствию сети ( пока вручную не будет подправлен/удален /var/lib/NetworkManager/NetworkManager.state)
6) и т.д.

а так как network-manager у меня всегда вызывал устойчивый рвотный рефлекс, он был заменен на систему костылей:

1) /etc/network/interfaces:
auto eth0
iface eth0 inet manual
  up dhcpcd-bin -L -N eth0
  down dhcpcd-bin -k eth0

auto wlan0
iface wlan0 inet manual
  up wpa_supplicant -f /var/log/wpa_supplicant.log -dtK -C/var/run/wpa_supplicant.sock -c/etc/wpa_supplicant.conf -iwlan0 -Dwext -B && dhcpcd-bin -N -L -m 20 wlan0
  down dhcpcd-bin -k wlan0

2) /bin/renet:
#!/bin/bash
echo -n "Checking if interface is UP... "
DEVICE=${1:-eth0}
if [[ -n $(ip -o link show ${DEVICE} up) ]]; then
  echo "yes"
else
  echo "Interface is DOWN"
  exit 1
fi
DEFAULTROUTE=$( ip -4 route show to default dev ${DEVICE})
GW=${DEFAULTROUTE##default via }
if [[ ${GW} =~ [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} ]]; then
  echo -n "Checking if gateway ${GW} is accessible... "
  arping -qfc3 -I ${DEVICE} ${GW} 2>&1 > /dev/null
  REACHABLE=$?
  if [[ ${REACHABLE} != 0 ]]; then
    unset REACHABLE
    echo "no"
  else 
    echo "yes"
  fi
fi
if [[ ${REACHABLE} ]]; then
  echo "Refreshing lease"
  dhcpcd-bin -n -L ${DEVICE}
else
  echo "Restarting dhcpcd"
  dhcpcd-bin -k ${DEVICE}
  dhcpcd-bin -L ${DEVICE}
fi
echo "Refreshing squid3"
squid3 -k reconfigure

3) скрипт отрабатывающий спячку /etc/pm/sleep.d/30_renet
#!/bin/sh
# Restart networking

. "${PM_FUNCTIONS}"

[ -x $BINARY ] || exit $NA
[ -f $CONFIG ] || exit $NA

case "$1" in
  hibernate|suspend)
    # Do nothing
    ;;
  thaw|resume) 
    /bin/renet eth0
    pidof wpa_supplicant || /bin/renet wlan0
    ;;
  *) exit $NA
    ;;
esac

4) вручную править /etc/wpa_supplicant.conf

скрипты на гениальность/красивость не претендуют. но для меня они работают :)

Новая игрушка

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

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

После установки обновлений я сразу же обнаружил множество положительных изменений. Разработчики положили на все rc-скрипты, т.е. мгновенно загрузились все демоны когда-либо установленные в системе. Также, Система любовно:
* добавила 18 локалей, включая локали стран африки (естественно, ведь каждый нормальный убунтоид должен быть близок к идеям свободы равенства и братства!)
* тщательно перегенерировала initrd и modules.dep для всех когда-либо установленных ядер (причем не менее 5 раз), причем под "когда-либо установленными" я понимаю действительно пакеты с ядрами уже давно удаленные из системы, правда не все удалось обновить, но кто ж обращает внимание на такие ошибки!
* любовно загрузила в память все модули ядра, проигнорировав modprobe blacklist (а вдруг пригодится!)

Но и на этом приключения не кончились. Ведь изменения станут эфективны лишь после перезапуска программ, верно?
Перезагрузка принесла новые положительные сюрпризы:
* plymouth не смог себя прикончить при перезагрузке (эпическое сообщение killing all remaining applications ... [fail]:)), и ушел в мертвую петлю. отсутствие кнопки резет на ноутбуках это неудобно. с такими новыми современными операционными системами эту кнопку стоит поставить вместь пробела.
* загрузка тоже принесла красивейшие спец-дефекты. черный экран без курсора. я честно ждал минут 5 пока не начал искать способы что происходит, и нашел что:
* система решила подождать для верности 5 минут для настройки сети. еще и возмутилась почему она стартует так долго. и верно, нельзя же статические айпишники из /etc/network/interfaces применить мгновенно, стоит подождать (я конечно понимаю что 5 минут система ждала рапорта от network-manager, но его в системе нет уже 3 года, и апгрейд к счастью его не вернул - почему система этого не заметила?)
* затем система около 3х минут пробовала смонтировать все диски
* и наконец, гранд-финал! kdm. и здесь меня тоже подстрекает забота программистов. как прояснил dpkg.log, xserver-xorg-input-kbd (драйвер клавиатуры для иксов) это для слабаков, и соответсвенно был снесен нахрен. потому ввод пароль превратился в умилительнейший квест!
* при старте я получил с пол-сотни всплывающих зависающих уведомлений, но это уже мелочи. я дома.

При чистке системы обнаружил еще пару бонусов:
* 12309 более на актуален. если раньше при копировании файлов система подтормаживала, то теперь копирование 5Гб файла позволило мне достигнуть на ноутбуке LoadAvg 13! (запуск 2х виртуалок с 2008r2 с паралельной установкой в виртуалку win7 это LoadAvg около 6-7)
* порадовало потребление памяти: сразу после загрузки 3.2Гб. и это без учета всяких буферов и кешей. которые после копирования 5Гб файла позволили мне применить все 8Гб оперативки! теперь у меня своп-файл простаивать не будет: в нем УЖЕ 30Мб :)

2011-10-04

Полезная утилита

apt-get changelog

например:
apt-get changelog tzdata

tzdata (2011k-0ubuntu0.11.04) natty-proposed; urgency=low

* New upstream release 2011k: (LP: #865750)
- Palestine suspends DST during Ramadan in 2011
- Gaza and Hebron split in 2011, leading to a new Asia/Hebron zone
- Belarus adopts permanent DST in 2011
- Ukraine adopts permanent DST in 2011
* debian/control: update maintainer fields

-- Gary Lasker Mon, 03 Oct 2011 22:02:21 -0400