среда, 4 февраля 2015 г.

Poltergeist - Can not allocate memory

Poltergeist - замечательный Ruby Gem, который является оберткой для headless браузера PhantomJS. Он позволяет пользоваться этим браузером через Capybara - средство эмуляции пользователя в сети интернет.

Я использую poltergeist для парсинга динамических интернет сайтов. Этот браузер построен движке webkit и позволяет исполнять javascript, в отличие от стандартного браузера капибары.

При длительной работе с ним может возникнуть ошибка: Can not allocate memory - phantomjs. Это происходит из-за того, что он не может автоматически освободить память от сессий, которые уже не используются. Чтобы это предотвратить, используйте метод quit у драйвере сессии, чтобы освободить память:

session.driver.quit

Если по каким-либо причинам это не заработало, создайте файл config/initializers/poltergeist.rb и добавьте в него следующее содержимое:
https://gist.github.com/jonstokes/04b10617a497ec2cc8a8

Это позволит насильно убивать процесс браузера в системе, что поможет освободить неиспользуемую память.

вторник, 3 февраля 2015 г.

Run 32-bit program on a 64-bit system

Бывают случаи, когда нужно запустить 32-битную программу на 64-битной системе. Я столкнулся с этим, когда пытался установить web интерфейс базы данных postgresql.

Решение простое - установить библиотеки совместимости:
sudo apt-get install ia32-libs
Если не помогло, установите так же это:
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0