понедельник, 5 ноября 2012 г.
XOR и деревья
Наткнулся на интересную имплементацию бинарного дерева: в каждой ноде вместо трёх пойнтеров (на родителя + на 2-х чайлдов) лежит два (!) поXORенных значения указателей -- для каждого чайлда с родителем. А в итераторе два указателя вместо одного -- на текущую ноду и на родителя. Ну прекрасно же, а.
вторник, 10 апреля 2012 г.
Натравливаем aptitude на ненужные пакеты
По идее, aptitude должно удалять их за нас само. Там для каждого пакета даже наличие флажка специального предусмотрено -- automatically installed. Но это в идеальном вакууме. На практике вы часто что-то ставите руками, а потом забываете сделать remove или unmarkauto. Хуже того, вам придётся пометить как установленные вручную пакеты с приоритетами required, important и standard, чтобы оно вам ничего лишнего не снесло. Поддерживать такой список пакетов вручную смерть есмь. Решение следующее -- будем помечать необходимые пакеты специально обученным тэгом:
Затем пишем скрипт, помечающий всё, что не нужно, как automatically installed:
/root/bin/markallauto:
Удаляем мусор:
Если вы после этого сделали (safe|full)-upgrade, примените клизму повторно.
# aptitude add-user-tag mytag <package>...
Отключаем ненужное автоматическое удаление неиспользуемых пакетов -- его и вручную несложно запустить.Затем пишем скрипт, помечающий всё, что не нужно, как automatically installed:
/root/bin/markallauto:
# !/bin/bashПомечаем необходимые пакеты тэгом и запускаем скрипт. Всё это делаем, конечно, от рута.
aptitude markauto `aptitude -F %p --disable-columns search "~i ?not(~M)"`
aptitude unmarkauto `aptitude -F %p --disable-columns search "?user-tag(mytag)" ~prequired ~pimportant ~pstandard`
Удаляем мусор:
# aptitude remove ~g ~o
Радуемся полчаса.Если вы после этого сделали (safe|full)-upgrade, примените клизму повторно.
Подписаться на:
Сообщения (Atom)