вторник, 17 февраля 2009 г.
Ледниковый период
Блог не мертвый, просто пока самая динамичная часть блога - мой твиттер %) И вообще не будет это блогом про генту, то есть про неё родную хочу конечно писать, но есть и много других интересных тем которые не стоит обделять вниманием.
воскресенье, 2 ноября 2008 г.
Немножко bash - бреда
Видел где-то способ подсчета самых частовызываемых команд в bash, через файл ~/.bash_history.
К сожалению не смог найти источник, так что сочинил на скорую руку сам.
Уверен, что это можно сделать аккуратнее:
А еще я в поиске нормального хайлайтера для кода.
К сожалению не смог найти источник, так что сочинил на скорую руку сам.
Уверен, что это можно сделать аккуратнее:
$ for I in `sort -u <(egrep -o '^[^./ ]*' .bash_history)`; do echo -n `grep ^$I\$ .bash_history | wc -l`; echo " $I" ;done | sort -rg | head
25 sudo
25 ls
13 dmesg
5 pvs
4 poweroff
4 minicom
4 lvs
3 vgs
2 update-eix
2 mount
А еще я в поиске нормального хайлайтера для кода.
среда, 29 октября 2008 г.
distfiles - файлов много, толку мало
Сегодня я поведую Вам о насущной проблеме забивания /usr/portage/distfiles старыми дистрибутивами пакетов. В принципе при хорошем доступе в интернет смысла хранить дистрибутивы их особо нет, но у меня у самого дома дайлап, да и хороший неограниченный интернет на просторах нашей родины только в крупных городах. Плюс меня не раз ужеспрашивали как правильно почистить distfiles, так и родилась эта идея.
Особо нетерпеливых прошу проскролить в низ поста, там жирным выделена финальная версия скрипта. Остальным же предлагаю почитать как я к этому пришел.
Если кому-то непонятно зачем это вот пример:
Очевидно, что из всех этих файлов можно оставить только nano-2.1.5.tar.gz, на случай если надо будет пересобрать пакет, а все остальное поудалять нахрен.
Сразу хочу отметить, что перед экзекуцией крайне желательно привести систему в порядок:
Итак, приступим. Для начала нам надо найти все дистрибутивы установленных пакетов. Поможет нам в этом emerge -epf world, которая выдаст нам список линков на загрузку всего, что что стоит в системе, а файлы мы найдем так:
Чтобы получить расстрельный список надо сравнить этот список с листингом файлов в /usr/portage/distfiles/ и выкинуть из него общие и уникальные для этого списка коммандой comm:
Ну и последний штрих - отправляем файлы в топку.
В итоге получаем такой скрипт:
Вот такой "красивый" способ .Если кто-то захочет потестировать предложенный метод - отпишитесь в комментах.Ну и если этот скрипт удалит что-то нужное или снесет всю систему - я не виноват ;)
Удачи
Особо нетерпеливых прошу проскролить в низ поста, там жирным выделена финальная версия скрипта. Остальным же предлагаю почитать как я к этому пришел.
Если кому-то непонятно зачем это вот пример:
$ ls nano*
nano-2.0.1.tar.gz nano-2.0.2.tar.gz nano-2.0.3.tar.gz nano-2.0.4.tar.gz nano-2.0.6.tar.gz nano-2.1.5.tar.gz
$ emerge -p nano
[ebuild R ] app-editors/nano-2.1.5
Очевидно, что из всех этих файлов можно оставить только nano-2.1.5.tar.gz, на случай если надо будет пересобрать пакет, а все остальное поудалять нахрен.
Сразу хочу отметить, что перед экзекуцией крайне желательно привести систему в порядок:
# emerge -uDavN world
# revdep-rebuild
Итак, приступим. Для начала нам надо найти все дистрибутивы установленных пакетов. Поможет нам в этом emerge -epf world, которая выдаст нам список линков на загрузку всего, что что стоит в системе, а файлы мы найдем так:
$ emerge -epf world | grep -oP "^(ht|f)tp(s?):\/\/[^\s]*" | sed -r "s/^.*\/(.*?)$/\1/g
Чтобы получить расстрельный список надо сравнить этот список с листингом файлов в /usr/portage/distfiles/ и выкинуть из него общие и уникальные для этого списка коммандой comm:
$ comm -13 <(printf '%s\n' "$(emerge -epf world|grep -oP "^(ht|f)tp(s?):\/\/[^\s]*"|sed -r "s/^.*\/(.*?)/\\1/g")") <(printf '%s\n' "$(ls /usr/portage/distfiles/)")
Ну и последний штрих - отправляем файлы в топку.
В итоге получаем такой скрипт:
$ cd /usr/portage/distfiles
$ comm -13 <(printf '%s\n' "$(emerge -epf world |grep -oP "^(ht|f)tp(s?):\/\/[^\s]*"|sed -r "s/^.*\/(.*?)/\\1/g")") <(printf '%s\n' "$(ls /usr/portage/distfiles/)") | xargs sudo rm
Вот такой "красивый" способ .Если кто-то захочет потестировать предложенный метод - отпишитесь в комментах.Ну и если этот скрипт удалит что-то нужное или снесет всю систему - я не виноват ;)
Удачи
понедельник, 27 октября 2008 г.
Не забыть про молоко!
Прикрутил к GMail сервис Remember The Milk через плагин для фаерфокса. Удобно до жути. Теперь дела, всплывающие в памяти стало проще запоминать и выполнять.
Рекомендую!
Рекомендую!
emerge world fails?
Gentoo, ночь, emerge -uDavN world. Ты смотришь какое-то время на пробегающие строчки gcc и умиротворенный идешь спать, чтобы утром обнаружить, что emerge свалился на ошибке минуты через 2 после того, как ты ушел. Думаю такая проблема регулярно возникает у гентушников.
Вот как я решил эту проблему.
Единственное НО - чтобы прибить Ctrl+С не поможет, но можно так:
А утром можно будет спокойно разобраться с проблемными пакетами.
Вот как я решил эту проблему.
# emerge -uDavN world; while ((1)) ; do emerge --resume --skipfirst; done
Единственное НО - чтобы прибить Ctrl+С не поможет, но можно так:
<Ctrl+Z>
# pkill emerge
# fg
А утром можно будет спокойно разобраться с проблемными пакетами.
Подписаться на:
Сообщения (Atom)