Wednesday, September 17, 2014

bash: Как следить за процессами

Для того, чтобы вывести в консоль информацию о каком либо процессе (фильтруется по имени) можно воспользоваться командой:
watch -n 1 'ps ax -o rss,user,command | sort -nr | grep celery |head -n 5'

Эта команда выведет все процессы связанные с celery и ограничит вывод 5 штуками

bash: Как выводить в консоль изменения в файле

Эта команда позволяет выводить в консоль последние строчки в файле. Если в файл будут добавлены новые строки, они автоматически отобразятся в консоли. Очень удобно следить за логами:
tail -f filename

где filename - имя файла

Tuesday, September 16, 2014

django: Утечка памяти

Честно говоря, это не утечка памяти, а ожидаемое поведение django (о котором, я думаю, не все знают). Дело в том, что django очищает кэш при работе с базой данных после того, как view-функция возвращает response. Мне приходилось писать функции, которые не возвращают такой объект (например таска для celery). В этом случае, кэш необходимо очищать вручную:
from django.db import reset_queries
reset_queries()

fedora 20: Как установить Viber (updated)

Разработчики Viber стали теперь собирать rpm пакет, а это значит, что программу можно установить скачав и запустив файл http://download.cdn.viber.com/cdn/desktop/Linux/viber.rpm
Также у них на странице появился логотип fedora, что очень радует.

Sunday, August 3, 2014

fedora 20: Как установить последнюю версию gitg

Последняя версия gitg в fedora 20 0.27, в то время как на официальном сайте 0.32. gitg в ветке 0.3 заметно преобразился. Установить его в fedora 20 можно с помощью jhbuild, т.к. gitg требует для работы новые версии библиотек, которые появятся только в следующей версс fedora. Вообще, jhbuild удобно использовать для превью новых приложений.

Для начала установим необходимые зависимости:
sudo yum install @development-tools @gnome-software-development

sudo yum install libtasn1-tools systemd-devel cups-devel cmake opencc-devel tracker-devel gperf libicu-devel yelp-tools gettext-devel intltool gcc-c++ asciidoc lcov python-rdflib

Теперь установим сам jhbuild:
git clone git://git.gnome.org/jhbuild
cd jhbuild/
./autogen.sh
make
make install

Также запустим команду, которая установит остальные необходимые пакеты:
jhbuild sysdeps --install

Установить gitg можно через графический интерфейс jhbuild либо через командную строку:
jhbuild build gitg

Процесс долгий и заканчивается такой ошибкой:
No package 'gtkspell3-3.0' found

Создадим файл со ~/.config/jhbuildrc с содержимым:
branches['glib'] = 'master'
branches['gtk+'] = 'master'
branches['pygobject'] = 'master'
branches['vala'] = 'master'
branches['Webkit'] = 'master'
branches['gtkspell-3'] = 'http://hg.code.sf.net/p/gtkspell/code'

Теперь установка gitg должна завершиться успешно. Запускаем gitg командой:
jhbuild run gitg

Если отсутствуют какие-то иконки, это значит, что надо через jhbuild установить тему adwaita.

fedora 20: Как установить GNOME shell 3.12

GNOME Shell 3.12 вышел уже достаточно давно. Был разговор о том, чтобы официально обновить в fedora 20 его с 3.10 до 3.12, но по-моему ни к чему он так и не привел. Есть экспериментальный репозиторий с обновленным gnome shell до 3.12. Я обновился с него пару дней назад, и все работает без проблем.

Итак, для того, чтобы обновиться создаем файл /etc/yum.repos.d/rhughes-f20-gnome-3-12.repo со следующим содержанием:
[rhughes-f20-gnome-3-12-i386]
name=Copr repo for f20-gnome-3-12 owned by rhughes (i386)
baseurl=http://copr-be.cloud.fedoraproject.org/results/rhughes/f20-gnome-3-12/fedora-$releasever-i386/
skip_if_unavailable=True
gpgcheck=0
cost=900
enabled=1

[rhughes-f20-gnome-3-12-x86_64]
name=Copr repo for f20-gnome-3-12 owned by rhughes (x86_64)
baseurl=http://copr-be.cloud.fedoraproject.org/results/rhughes/f20-gnome-3-12/fedora-$releasever-x86_64/
skip_if_unavailable=True
gpgcheck=0
cost=800
enabled=1

После этого обновляемся командой:
sudo yum update

Перегружаемся.

Friday, August 1, 2014

fedora 20: Просмотр логов

Для просмотра логов в fedora 20 существует специальная команда:
journalctl

Для того, чтобы показать все логи относящиеся к какому-то конкретному процессу надо выполнить:
journalctl /usr/bin/gnome-session

Есть режим, который постоянно выводит новые сообщения в консоль:
journalctl /usr/bin/gnome-session -f

Чтобы вывести полный текст сообщения можно использовать следующую команду:
journalctl /usr/bin/gnome-session -f -o cat