Виртуальная машина для работы океанолога на основе Ubuntu 12.04
Задача: обновить виртуальную машину для работы океанолога.
Пришла пора обновить виртуальную машину до нового LTS релиза Ubuntu 12.04. Под катом список установленного софта, инструкция по установке под виндоуз и советы о том как искать и устанавливать недостающие программы.
Следуя принципу "работает, не трогай" я решил, что для софта, доступного из репозиториев убунты я более новые версии устанавливать не буду. Проблемы, которые могут возникнуть у неподготовленного пользователя с установленным вручную софтом, не компенсируются небольшими улучшениями доступными в новых версиях. При этом конечно обидно, что, например, мой любимый IPython notebook будет только версии 0.12, но думаю это решение правильное.
Образ диска лежит - вам всё равно, а мне дополнительный гигабайт не помешает
После распаковки размер будет чуть больше 7 гигабайт. Архив bzip2 может быть распакован в виндоуз например программой WinRAR, в линукс командой
Тем, кому дополнительная информация не нужна, могут запомнить нехитрый пароль и пользоваться на здоровье:
User: ocean
Password: ocean
Список установленного софта:
Вручную установлено:
- модуль питона для работы с различными форматами данных, использующимися в океанологии и климатологии. Основные это netCDF и GRIB.
.
.
.
питоновская обёртка для Ferret, которая позволяет вам обмениваться данными между питоном и ферретом. PyFerret может использоваться и как обычный Ferret, но при этом у него улучшена графика и присутствует много дополнительных статистических функций. Чтобы пользоваться PyFerret в виртуальной машине вам нужно будет подредактировать файл .bashrc, инструкции внутри.
- модуль питона для расчёта свойств морской воды. Доступны как функции расчёта по EOS-80 так и по новой TEOS-10.
- модуль питона для удобной интерполяции данных на разные сетки.
- питоновская обёртка вокруг cdo (смотри про них ниже), позволяет сравнительно удобно вытаскивать в питон данные рассчитанные cdo.
Установлено из репозиториев:
.
.
- масса полезных в хозяйстве функций, основа всех научно ориентированных вычислений на питоне.
.
- модуль питона для отображения данных, то есть графиков различной степени сложности. Стандарт де факто среди учёных пишущих скрипты на питоне.
- расширение matplotlib, позволяющие рисовать карты. Для быстрой начальной отрисовки данных на карте зачастую бывает гораздо удобнее громоздкого PyNGL. Плюс эти карты можно сразу встраивать в IPython notebook.
- очень старая, но очень надёжная гляделка .ps и .pdf файлов.
- программа для анализа и визуализации данных. Визуализация на любителя, но программа старая и заслуженная, так что существует масса легаси кода.
- простой и удобный просмотрщик netCDF файлов.
- операции с изображениями. Например перевод из одного формата в другой производится просто при помощи convert file.png file.jpg .
build-essential - утилиты, которые вам обязательно потребуются если вы возьмётесь компилировать что ни-будь серьёзное.
- компилятор фортрана, который рано или поздно потребуется любому человеку, работающему в науке, поскольку на фортране написано немыслимое количество научного кода.
Как ставить
Вам понадобится установить (VB). Иногда у машин созданных более ранними версиями VB бывают проблемы с поздними версиями VB. Так что если у вас возникают проблемы, то попробуйте использовать VirtualBox 4.2.6, на ней у меня всё работало.
Инструкция будет для виндоуз, но естественно этот образ можно поставить и на OS X и на Solaris и на Linux в качестве рабочей системы.
Инструкция в картинках, картинки в основном сами за себя говорят, так что комментировать особо много не буду. Кому хочется воспользоваться вариантом с русским интерфейсом и расширенными комментариями, можно посмотреть на .
Поехали. Открываем VB, нажимаем New.
Выбираем Линукс.
Выбираем сколько памяти будет позволено использовать виртуальной машине. Я поставил гигабайт, при таком объёме памяти машина работает достаточно шустро.
Мы будем использовать существующий образ диска.
Машина создана, образ добавлен, можно запускать (зелёная стрелочка).
Открыться должно что-то вроде этого.
Для полной интеграции с хост системой (в нашем случае Windows) необходимо установить дополнения гостевой OS. Выбираем пункт в меню (последний).
Здесь жмём кнопку Run и вводим пароль: ocean
Для того, чтобы иметь возможность обмениваться данными между системами, вам понадобится расшарить папку (или папки) хост системы. Для этого идём в меню VB Settings >> Shared Folders, нажимаете на Add и добавляете папку, которую хотите расшарить, например называться она будет share. После загружаете гостевую систему и открываете терминал (кто не в курсе - чёрный квадрат, расположенный ближе к низу в панели слева). Там пишем
sudo mount.vboxsf share /home/ocean/share
В процессе у вас попросят пароль, введите ocean. В линуксе прописные и заглавные буквы ОТЛИЧАЮТСЯ, обратите на это внимание. В вашей домашней директории должна появиться папка share, которая будет видна и в хост и в гостевой системе. К сожалению при таком варианте вам придётся каждый раз при загрузке виртуальной машины вводить
что надоедает. Для того, чтобы процесс происходил автоматически, нужно немного отредактировать файл /etc/rc.local . Для этого открываем его с правами администратора из терминала:
И добавляем строчку (sudo тут не нужно!)
в место отмеченное стрелочкой (перед строчкой exit 0)
Сохраняем изменения. Теперь при загрузке папка должна будет монтироваться автоматически.
Установка дополнительного софта из репозиториев
Если интересующий вас пакет уже есть в репозиториях Ubuntu, то найти и поставить его не просто, а очень просто. Допустим, мы хотим установить популярный питоновский модуль для статистической обработки данных (своеобразная замена языка R под питон).
Из Software Center
Самый лёгкий способ, это воспользоваться Ubuntu Software Center. Запустить его можно либо набрав в терминале
либо нажав на аналог кнопки "Пуск" со значком убунту в левом верхнем углу и в появившемся окне начать набирать его название (после первых двух букв его иконка появится под текстовым полем). Дальше там всё тривиально - вводим pandas в строку поиска и устанавливаем его кликом мышки. В Software Center есть много чего полезного и установка программ происходит автоматом, и как правило без проблем.
Из терминала
Я обычно устанавливаю программы прямо из терминала, но это требует несколько больше усилий на начальном этапе, но со временем установка получается гораздо быстрее.
Для начала поищем точное название пакета.
надо будет ввести пароль. Получим такой вывод:
python-pandas-lib - low-level implementations and bindings for pandas
Таким образом название пакета у Ubuntu - python-pandas. Давайте его установим
Нужно будет согласиться с тем, что объём данных на вашем диске увеличится на незначительную величину и через несколько мгновений пакет будет установлен.
На этом всё. Комментарии, вопросы и пожелания относительно включения дополнительного софта в следующие выпуски образа оставляйте под этом постом.
А GMT, как же без него?
Для просмотра ps/eps/pdf хорошая штука gsview. Удобна тем, что отображает координаты точки под курсором, что часто надо при редактировании PostScript’. Но, сборка только руками, да ещё и gtk хочет первой версии.
2Michael
Жедающие могут поставить командой в терминале
Решил обойтись без него
sudo apt-get install gmt
За наводку на gsview спасибо, подумаю, чтобы включить его в следующую версию.
С удивлением для себя не обнаружил gnuplot и MATLAB/IDL/R.
Могу присоветовать Zim для каталогизации справочных материалов и Recoll для поиска по оным (оно ещё и в PDF-файлах ищет, через pdftotext).
По питоновским поделкам у меня вопрос: Николай, а где гарантия того, что весь этот гадюшник будет работать через 5-10 лет? Как и написанный тобой софт для исследований на питоне – а он запустится через пару лет? Пистон, как мы уже видели с переходом 2.4-2.6 и на 3.0 – не фортран, там про обратную совместимость, по ходу дела, не слышали.
>> “gfortran 4.6 – компилятор фортрана, который рано или поздно потребуется любому человеку, работающему в науке”
Лучше бы это убожество 50-х годов ему вообще бы не потребовалось. Поработав с BLAS и LAPACK, написанных на фортране, я хочу только одного: портировать BLAS/LAPACK на Си, с гуманоидным интерфейсом, а этот кошмар на фортране закопать (вместе с их авторами) в одной братской могиле с КОБОЛом. И цементом залить сверху
P.S> Да, если ты не заметил – вордпресс выдаёт знаки вопросов кое-где: “�?нформировать меня о новых комментариях”. Глобальный и Надёжный Похапэ в полный рост, да
2virens
1) Если я поставлю туда MATLAB или IDL, то долго этот образ в онлайне не проживёт. R прекрасно ставится из репозиториев.
2)Так и матлабовский код 10 летней давности далеко не всегда работает. Проблема обратной совместимости всегда была и будет, особенно если какой то инструмент активно развивается. Это не повод сидеть на устаревших технологиях или платить огромные деньги на жуткого монстра в которого превратился матлаб.
3) Ну видишь, тебе ж потребовалось, значит я прав
Лучше бы, конечно, не потребовалось, но, как я уже не раз говорил, на фортране написано огромное количество легаси кода, например практически все модели глобальной циркуляции. Никто переписывать их на Си в ближайшие лет сто не будет, уж поверь мне.
4) Я заметил, не знаю как с этой хренью бороться. Это по ходу что-то с базой данных а не с php.
У LAPACK же есть сишный интерфейс, зачем работать с фортраном?
Образ можно торрентом раздавать, тогда он проживёт значительно дольше, даже с матлабом внутри )
>> 2)Так и матлабовский код 10 летней давности далеко не всегда работает.
У Матлаба с обратной совместимостью дела намного лучше питона. Хуже, чем у фотрана (чтоб ему гореть синим пламенем), но гвидов ван россумов и других великовозрастных пионеров в MathWorks немного. Вопрос о том, что будут делать питонисты, когда Гвидо в очередной раз выкатит несовместимый пистон, остаётся открытым.
>> Это не повод … платить огромные деньги на жуткого монстра в которого превратился матлаб.
Николай, довод в пользу Маталаба в том, что он удобен, продуман и содержит всё, что нужно. Там идеология “батарейки включены”, и никакого ёпенсорца с его “вам надо – конпеляйте из сырцов, если сможете”. В Матлаб входит BLAS и LAPACK – тебе не надо собирать это по Тайге.
>> 3) Ну видишь, тебе ж потребовалось, значит я прав
Да я готов был откусить себе ногу, когда добрался до LAPACK. Интерфейс к нему писали клиенты сумасшедшего дома.
>> на фортране написано огромное количество легаси кода
В этом его проклятие: BLAS и LAPACK написано на ём же. Код там просто фееричный: куча GOTO 20 и прочего. Но работает быстро, да.
@Michael on февраля 16, 2013
>> У LAPACK же есть сишный интерфейс, зачем работать с фортраном?
А ты его видел?! Функция для QR decomposition сваливает матрицы Q и R в одну, и попробуй оттуда их вытащи.
>> Образ можно торрентом раздавать … даже с матлабом внутри )
В приличных странах за такое отрывают гениталии
А я про матлаб погорячился, посыпаю голову пеплом.
Да, ещё вот что. Мне тут соседи нахваливают язык Yorick за его дикую скорость. Говорят, визуализация данных там летает. Но это ёпенсорц в худшем виде: полтора разработчика, документации с гулькин хвост, туториалов нет.
И в комплект хорошо включить Zim. Он классный: это каталогизатор справочных данных. А recoll можно использовать для полнотекстового поиска по статьям.
>> А ты его видел?! Функция для QR decomposition сваливает матрицы Q и R в одну, и попробуй оттуда их вытащи.
Так на Фортране точно то же происходит, там даже специальные функции есть для их разделения. Наследство времён, когда компьютеры были большие, а память – маленькая.
Вообще у LAPACK просто идеология такая – удобно должно быть машине, а не человеку. Что правильно для задач, требующих действительно большого счёта.
>> В приличных странах за такое отрывают гениталии
Где приличные страны и где мы
К вопросу о recoll, а кто что использует в качестве библиотечного катализатора?
2virens
Я, признаться, удивлён такому отношению к “ёпенсорцу” у человека, блог которого практически целиком посвящён использованию и приручению этого самого “ёпенсорца”
По пунктам:
>>У Матлаба с обратной совместимостью дела намного лучше питона.
Лучше или хуже какая разница, главное, что они есть. Мои впечатления об этой проблеме в матлабе основаны на истории с поддержкой netCDF. Компания M*s решила, что нативная поддержка одного из самых популярных форматов в науках о Земле им нафиг не нужна, и на вайн ресёрчеров отвечала, чтобы они сидели, не вякали и радовались тому, что есть. Какая-то добрая душа сделала поддержку netCDF через mex, но при этом почти для каждой новой версии матлаба нужна была своя версия пакета. Благо у нас отличная служба поддержки и ставила на работе это всё самостоятельно, а дома приходилось по пол дня танцевать с бубном. В 2008(!) году M*s до нас сирых и убогих снизошли, и таки включили поддержку netCDF.
При этом я за пять лет ни разу не столкнулся с проблемами обратной совместимости у питона. В теории у питона, может всё и ужасно, но я пока не заметил.
>>Николай, довод в пользу Маталаба в том, что он удобен, продуман и содержит всё, что нужно.
Всё что нужно тебе
А я не против Матлаба, я вообще за то, чтобы цвели сто цветов. У меня был период экстремизма – “только линукс, только хардкор”. Но потом пришло понимание, что я не программист и не системный администратор, а учёный. Мне надо, чтобы была решена определённая задача, и если какой то инструмент сможет решить её быстро и без проблем, я его использую.
Если Матлаб тормозит при расчёте EOF, я пойду и сделаю его в NCL. Если мне нужно быстро повертеть данные, я открою их в Ferret. Если я нашёл матлабовский скрипт, который решает мою задачу, я его модифицирую под себя и запущу на матлабе. Если мне надо сделать презентацию, или отредактировать присланный Word файл, я не буду мучать себя libre Office, или не дай бог бимером, а пойду в винду и сделаю, и будет быстро и красиво.
У меня кроме программирования и администрирования есть гораздо более важные и геморойные задачи, я лучше потрачу время на прочтение пары статей, чем на компиляцию кода (этим я уже почти никогда не занимаюсь, всё ставлю из пакетов), или настройку веб камеры под линукс.
Идеи “переписать всё на питоне” у меня нет, мне просто быстрее и удобней решать на нём свои задачи. Все ли их можно было бы решить в Матлабе? Нет не все, на сервер работающий с суперкомпьютером никто тебе Матлаб не поставит, а питон пожалуйста. Но это не главный аргумент, главное, что МНЕ удобнее и быстрее добиваться результата на питоне. У нас есть люди, которые на фортране пишут за день такое, на что у меня месяц бы ушёл, а может и год, и у меня нет мысли приходить к ним, и рассказывать о том как ужасен фортран – для них он идеален, и интерфейс к лапаку для них нормален и привычен, они с ним уже тридцать лет живут.