Sunday, March 29, 2015

Ставлю IntelliJ Idea + Oracle JDK на Ubuntu в Vagrant (VirtualBox)

Изучаю Pylearn2 в Идее


В один прекрасный момент мне надоели эти юниксовые редакторы текста для редактирования и отладки исходников во время прохождения туториала по Pylearn2. Хочу поставить графическую оболочку и там редактировать питоновские файлы. Может даже и задебажить или пробраузить код.

Ставлю графическую оболочку xfce4.

Загуглил и пошел инсталлить по первой же ссылке:
http://stackoverflow.com/questions/18878117/using-vagrant-to-run-virtual-machines-with-desktop-environment
Выполнил все инструкции, перезапустил виртуалку (vagrant reload). В появившемся окне VirtualBox'a залогинился как vagrant/vagrant.

Ставлю Oracle JDK 8

Опять же загуглил и нашел чудовую пошаговую инструкцию как инсталлить ораковую ждк на убунту (14.10)
http://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux
По шагам все сделал почти по инструкции за исключением путей
Перезапускаю

Тоже по инструкции.

Из UXTerm (можно и из XTerm) набираю idea <Enter>: 

Вау, красота то какая!




Все, теперь ставлю Python plugin и дальше буду работать в нормальной IDE :)

Saturday, March 28, 2015

Установка Pylearn2 с помощью Vagrant и puppet

Добрался я наконец-то до компа, но не так чтобы для работы, а подтянуть свои практические знания по Machine learning на python. В последнее время в тренде всякие диплернинги (http://deeplearning.net), особенный пинок в этом направлении дала возможность обучения нейронных сетей с использованием GPU, что на порядки увеличивает процесс обучения.

Далее я буду пытаться утановить Pylearn2 со встроенной поддержкой Theano. Забегая вперед скажу, что сначала я описываю процесс наступления на грабли, а в конце привел исправленный процесс. Так что нетерпеливым можно сразу туда :).

Итак, начнем.

Я взял инструкцию по установке Pylearn2 отсюда: http://deeplearning.net/software/pylearn2/

1. Устанавливаю Vagrant

Актуальная версия 1.7.2
https://www.vagrantup.com/downloads.html
скачал, перезапустил комп

2. Устанавливаю VirtualBox

https://www.virtualbox.org/wiki/Downloads
и VirtualBox Extension Pack (там же)

3. Устанавливаю pylearn2 из образа

клонирую репозиторий с настройками Vagrant
git clone git@github.com:ironchief/pylearn2_vagrant.git
и в папке pylearn2_vagrant стартую Vagrant:
vagrant up


Скачивание образа застопорилось на 12%, поэтому я скачал образ вручую. В файле Vagrant указан url на образ:
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
эту строку я заменил на:
config.vm.box_url = "C:/workspace/bin/images/precise64.box"

Опять запустил vagrant up
Упало с непонятной ошибкой. 

Следую рекоментациям открыть машину в GUI. Переключаюсь в VirtualBox, где появилась новая машина и пытаюсь ее стартовать:

Включаю виртуализацию в биосе, и опять запускаю vagrant up:

puppet долго конфигурирует систему...
и в результате выдал маловразумительную ошибку :(

понять что произошло помог лог файл pip.log, который лежит в папке pylearn2_vagrant. Там вот такая ошибка:
numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

Гугл в помощь, на stackOverflow нашел интересный пост: http://stackoverflow.com/questions/7496547/does-python-scipy-need-blas

В puppet манифест (pylearn2_vagrant/manifest/default.pp) в раздел package добавил liblapack-dev :

и опять запустил vagrant с командой provision :
vagrant provision
опять долго инсталлируется ...

День 2

На следующий день я решил начать все сначала. Но перед экспериментами я форкнул себе репозиторий https://github.com/ironchief/pylearn2_vagrant, склонировал уже свой репозиторий (https://github.com/szelenin/pylearn2_vagrant) в новую папку и в Vagrant файле поставил версию последней убунты:
config.vm.box = "ubuntu/trusty64"

и запустил команду vagrant up из новой папки pylearn2_vagrant:
и о чудо! все проинсталлилось с первого раза!

Финальная версия

Итого чтобы поставить pylearn2 (в моем случае на винду) надо

1. Установить Vagrant

актуальная версия 1.7.2
https://www.vagrantup.com/downloads.html

2. Установить VirtualBox

https://www.virtualbox.org/wiki/Downloads
и VirtualBox Extension Pack (там же)

3. Склонировать форкнутый репозиторий 

Пулреквест отошлю чуть позднее
git clone git@github.com:szelenin/pylearn2_vagrant.git

4. Запустить Vagrant

Переходим в папку pylearn2_vagrant и запускаем команду (желательно из вменяемой консоли, я делал это из git bash)
vagrant up
* Возможно прийдется включить поддержку виртуализации в BIOS.

5. Enjoy

Дальше можно приконектиться по ssh (я использую XShell) порт 2222, пользователь vagrant/vagrant

Используемые материалы

3. Puppet провижнер для Vagrant и сам Vagrant файл: https://github.com/ironchief/pylearn2_vagrant 
4. Мои дополнения для последней версии ubuntu: https://github.com/szelenin/pylearn2_vagrant