Friday, February 27, 2015

Занятие 1. Установка Geant4 10.01 на платформу Linux Mint 17.1 "Rebecca" - Cinnamon (32-bit)

Дорогие читатели!

В этой статье содержатся весьма специфические рекомендации по установке виртуальной машины с помощью VMware Player 6.0.5, установке на нее указанного в названии Linux Mint 17.1 "Rebecca" - Cinnamon (32-bit), затем установке Geant4 10.01 (самый свежий релиз на сегодняшнюю дату). Такая строгая привязка в версиям программного обеспечения следует из огромного диапазона ошибок и проблем, возникающих при установке Geant4. Обратите внимание - для успешного проведения всех процедур необходимо стабильное подключение к интернету!
  • Установка виртуальной машины на Windows 7/8 и установка на нее Linux Mint 17.1 "Rebecca" - Cinnamon (32-bit)
  • Скачиваем образ диска с Linux Mint 17.1 "Rebecca" - Cinnamon (32-bit) отсюда.
  • Скачиваем бесплатную версию VMware Player 6.0.5 отсюда по первой ссылке из списка. Устанавливаем со стандартными настройками.
  • Открываем VMware Player 6.0.5 и выбираем "File -> New Virtual Machine...". Откроется wizard, в котором мы делаем следующее: Выбираем "Typical" -> Выбираем "Installer disc image file"; Указываем путь до образа диска с Linux Mint 17.1 "Rebecca" - Cinnamon (32-bit), который мы скачали до этого -> Выбираем "Linux"; Выбираем версию "Ubuntu" -> В верхнем поле вводим название нашей виртуальной машины по своему выбору -> Выбираем объем жесткого диска, который мы готовы выделить под систему (желательно, не меньше 10 Гб)  -> По желанию, можно поменять параметры системы. Например, изменить выделяемый объем оперативной памяти. Минимальный допустимый ее объем - 512 Мб; Жмем "Finish".
  • Возвращаемся в главное окно VMware Player 6.0.5, выбираем в списке нашу виртуальную машину и жмем "Power on this virtual machine". Ждем, пока система загрузится, на все всплывающие окна жмем "OK". Возможно, снизу появится желтое всплывающее окно, которое будет просить указать момент, когда мы закончили установку и система перезагрузилась. Пока его не трогаем.
  • Загрузился LiveCD, это пробная версия системы. Саму систему мы пока не установили. На рабочем столе запускаем "Install Linux Mint".
  • Далее идет достаточно очевидная установка Linux Mint. Никаких параметров, установленных по умолчанию, не меняем. Язык системы и раскладку клавиатуры я выбрала "English(US)".
  • После того как установка завершится, и система перезагрузится, нажмите в желтом окне снизу "I Finished Installing". 
  • С первым этапом покончено!

  • Установка Geant4 10.01 на Linux Mint 17.1 "Rebecca" - Cinnamon (32-bit)
Перед тем, как мы начнем сборку и установку Geant4 я приведу несколько необходимых команд для командной строки в Linux и упрощенно поясню что они значат.
  1. sudo  Команда, котороя, по сути, дает нам права администратора. Когда операция затрагивает системные папки (такими операциями является инсталлирование из репозитория (см. ниже) и инсталлирование собранной бииблиотеки, редактирование системных файлов и т.д.), нам необходимы такие права. sudo используется как приставка перед командой, которую мы хотим выполнить, например sudo make install.
  2. ls Команда, которая выводит на экран содержимое директории, в которой мы сейчас находимся. Это полезно, чтобы убедиться, что мы находимся там, где нужно. Кроме того в Linux есть и нормальный проводник, почти ничем не отличающийся от того, что в Windows. Его эмблему - папку - вы можете увидеть на рабочей панели внизу экрана.
  3. cd Команда перехода в другую директорию. После этой команды через пробел указывается путь до директории, в которую вам нужно. Путь можно указывать как относительно директории, где вы сейчас находитесь, так и абсолютный. Например, пусть вы находитесть в папке Documents: ~/Documents/MyStuff - абсолютный путь. В нем для обозначения домашней директории используется знак ~, который эквивалентен /home/имя_вашего_компьютера/. Можно писать и так, и так. Имя вашего компьютера вы выбрали в момент установки Linux Mint. Итак, просто cd /MyStuff, тоже будет работать, и этот путь называется относительным.  Еще стоит упомянуть знак ../, он означает обращение к папке, стоящей выше по дереву. Скажем, чтобы из папки Documents перейти на директорию выше (это наша домашняя директория) пишем к командной строке cd ../
  4. mkdir Создает папку. Тут все просто. После этой команды через пробел указывается название будущей директории.
  5. apt-get install имя_библиотеки Команда, которую мы будем использовать, чтобы установить необходимые нам дополнительные библиотеки из удаленного репозитория через интернет.
  6. nano Команда, открывающая простой текстовый редактор, прямо в консоли. Он уже идет вместе с Linux. Чтобы сохранить файл: Ctrl+X -> Y -> Enter.
  7. ccmake путь_до_папки_с_исходниками Команда, которая вызывает интерактивную версию утилиты cmake, которая нам нужна, чтобы настроить параметры библиотеки Geant4, необходимые нам.
  8. source - команда, которая запускает выполнение скрипта для консоли. Скрипт для консоли или иногда его называют shell script - это файл состоящий из команд, каждая из которых может быть запущена в консоли напрямую. Скажем, этот файл может содержать команды cd или mkdir. Такие файлы могут иметь расширение sh, как, например, в нашем случае файл geant4make.sh (см. ниже). В принципе, мы можем запустить скрипт и просто напечатав ./geant4make.sh , но тогда все изменения, которые мы с его помощью сделали в консоли не будут видны. Файл скрипта обязательно содержит первую строку, открывающую свою отдельную консоль, которая потом закрывается и исчезает. Чтобы передать изменения именно в нашу рабочую консоль, в которой наша командная строка, необходимо использовать команду source. 
  9. chmod +x имя_файла - команда, которая дает всем пользователям право запуска указанного файла. Часто бывает что система Linux ограничивает такие права, часто для файлов, скачанных из интернета.
 Итак, приступим к установке Geant4 10.01.
  • Сначала нам необходимо установить библиотеки, от которых зависит Geant4 10.01. Устанавливать их будем из репозитория, удаленного хранилища библиотек и программ для нашей версии Linux. Установка всех указанных ниже библиотек производится одной и той же строкой, указанной ниже. При первой из установок sudo попросит у вас пароль, который вы выбрали при установке Linux. При начале установки командная строка может вас спросить действительно ли вы хотите установить столько-то мегабайт - жмете "y" и Enter. Ждете, пока вам не вернется командная строка. Затем устанавливаете следующую библиотеку.
sudo apt-get install имя_библиотеки
  • Библиотеки, которые надо установить:
qt4-default - дистрибутив qt4, интерфейсной библиотеки.
libqt4-opengl-dev - дистрибутив, отвечающий за взаимодействие Qt4 и OpenGL, библиотеки, отвечающей за визуализацию. Сам OpenGL уже установлен в Linux Mint с самого начала.
build-essential - пакет, содержащий необходимый нам компилятор g++.
cmake - программа, необходимая для конфигурирования библиотеки Geant4 под наши нужды (см. ниже).
cmake-curses-gui - дополнение к cmake, позволяющее редактировать параметры библиотеки интерактивно. Вызывается с помощью команды ccmake.
libexpat1-dev - библиотека, необходимая для работы с XML форматом. Возможно, это формат данных в котором представлены таблицы сечений, тормозных способностей, материалов, изотопов и прочее, что попадает под отпределение data в Geant4.
libxmu-dev - библиотека, необходимая для поддержки X11, оконной системы, обеспечивающей стандартные инструменты и протоколы для построения графического интерфейса то есть графической оболочки Linux, которая показывает нам окна, рабочие столы и прочие красоты.
  • После того, как мы установили все вышеуказанные библиотеки, скачиваем исходники библиотеки Geant4 10.01 отсюда. Выбираем самый верхний "Download". Находим через проводник куда скачалось, открываем архив (все подхватывает линуксовый распаковщик) и распаковываем в папку "Documents". Теперь у нас там появилась папка "geant4.10.01".
  • Открываем консоль. Заходим оттуда в папку "Documents" и создаем папку "geant4.10.01-build".
cd ~/Documents
mkdir geant4.10.01-build
cd geant4.10.01-build
  • Запускаем ccmake. Откроется его окно в консоли, пока пустое. Жмем "с". Запускается конфигурация, и появляются параметры, которые нам интересны.
ccmake ../geant4.10.01
  • Теперь нам нужно настроить некоторые параметры. Это делается стрелками и Enter.
  1. Меняем параметр "GEANT4_BUILD_MULTITHREADED" на "ON". Это позволит нам собрать многопоточную версию Geant4. Использованию этой особенности будет посвящено отдельное занятие.
  2. Меняем параметр "GEANT4_INSTALL_DATA" на "ON". Это позволит подкачать из интернета необходимые таблицы сечений и изотопов при сборке библиотеки.
  3. Меняем параметр "GEANT4_USE_OPENGL_X11" на "ON". Мы будем пользоваться OpenGL для визуализации.
  4. Меняем параметр "GEANT4_USE_QT" на "ON". Мы будем пользоваться интерфейсной библиотекой Qt для интерактивных задач.
  • Далее жмем "c" пока все звездочки рядом с параметрами не исчезнут. Это значит, что все наши изменения отражены в конфигурационном файле. После этого жмем "g" - сгенерировать Makefile - файл, который управляет сборкой.
  • Перед тем, как мы нажмем "g" окно cmake должно представлять из себя следующее.

  • Теперь мы готовы запустить компиляцию библиотеки. В командной строке набираем make c параметром -j, сразу после которого следует цифра количества потоков, в которых будет собираться библиотека. Количество потоков не должно превышать количество виртуальных ядер на вашем компьютере. Если не знаете таких параметров своего процессора, просто пишите make. Итак, запускаем и идем пить чай. Сборка займет некоторое время, от получаса.
make -j8
  • После того, как сборка закончится, запускаем инсталляцию. При этом инсталляция будет проходить в папку, которая указана в параметре "CMAKE_INSTALL_PREFIX". В нашем случае папка системная, поэтому требуется sudo.
sudo make install


  • Сборка (компиляция) и запуск примера B1
  • Переходим в папку с примером B1, который поставляется вместе с исходниками Geant4. Проводим в точности те же самые процедуры, что и при установке Geant4.
cd ../geant4.10.01/examples/basic/mkdir B1-build
cd B1-build
ccmake ../B1
  • При вызове cmake у нас откроется окно с параметрами примера. В них нужно всего одно изменение. В параметр "CMAKE_BUILD_TYPE" вписать "Release".  Дальше все как обычно: c -> c -> g.
  • Дальше следуем стандартной процедуре. Инсталлировать примеры не нужно.
make
  • Настало время запустить пример! Но для этого нам необходимо сделать еще один маленький шаг, а именно запустить скрипт, который укажет нашей системе путь до библиотеки, Qt и необходимых таблиц данных. Вот что мы пишем в командной строке:
source ~/Documents/geant4.10.01-build/geant4make.sh
  • Теперь мы готовы запустить пример. Набираем и наслаждаемся.
./exampleB1


  • Делаем все еще удобней или настройка Qt Creator
  • Скачиваем среду разработки Qt Creator 3.3.1 for Linux/X11 здесь. Эта среда разработки под C++, которая позволит нам очень удобно работать с нашими будущими программами.
  • Устанавливаем Qt Creator 3.3.1 for Linux/X11 следующим образом. В командной строке набираем:
chmod +x ~/Downloads/qt-creator-opensource-linux-x86-3.3.1.run
~/Downloads/qt-creator-opensource-linux-x86-3.3.1.run
  • Установка не должна вызывать сложностей. Никаких особых настроек там не нужно.
  • Теперь возвращаемся на рабочий стол, жмем правую кнопку мыши. "Create New Document -> Empty Document". Переименовываем его в "myqtcreator.sh".
  • Мы собираемся написать свой shell script, который будет передавать в Qt Creator все нужные нам настройки из скрипта geant4make.sh. Иначе эта среда разработки не будет видеть Geant4. Нам нужно показать где все находится.
  • Итак, открываем файл и пишем в нем буквально следующее:
#!/bin/bash
source ~/Documents/geant4.10.01-build/geant4make.sh
~/qtcreator-3.3.1/bin/qtcreator.sh
  • Что делает этот скрипт. Первая строчка стандартна и обязательна для всех shell scripts. В этой строке после #! указывается путь к bash-интерпретатору. bash-интерпретатор это код, который преобразует наши команды, такие как ls, mkdir в команды, понятные процессору. 
  • Следующая строчка запускает уже известный нам скрипт geant4make.sh
  • Последняя строчка запускает скрипт, который у нас появился после установки Qt Creator. Он нам запускает Qt Creator.
  • Теперь кликаем дважды на файл, который мы создали. Выбираем "Run". У нас загрузился Qt Creator. Теперь мы можем открыть в нем наш пример B1. С ним будет удобно работать, так как весь синтаксис будет подсвечиваться, будет легко переключаться между файлами, а компилировать и запускать пример можно будет просто нажатием на кнопку.
  • После того как загрузился Qt Creator жмем "File -> Open File of Project... -> Навигируем до папки с примером B1, которая находится в дистрибутиве Geant4. В папке B1 выбираем файл CMakeLists.txt (что это такое рассмотрим на следующем занятии) -> Open.
  • Затем называем папку, в которой будет содержаться сборка этого примера, сделанная Qt Creator, скажем B1-build-creator. Жмем "Next -> Run CMake -> Finish".
  • Теперь мы видим слева все дерево файлов, которые содержатся в этой папке. Пощелкайте по ним и посмотрите на код. Обратите внимание, что функции и переменные выделены разными цветами.
  • Настало время сборки. Жмем на изображение молотка в левом нижнем углу окна. Наслаждаемся. Это действие равносильно команде make в командной строке.
  • Теперь жмем на зеленый треугольник. Мы запускаем программу. Наслаждаемся еще больше. Готово!