#singularity-container #scientific-software
#сингулярность-контейнер #scientific-программное обеспечение
Вопрос:
Цель состоит в том, чтобы создать контейнер singularity, в котором Feynhiggs / Higgsbounds / HiggsSignal / 2HDMC / SusHi работают мирно. Это мощная комбинация, но ее сложно настроить. Я хотел бы иметь возможность предложить этот контейнер как способ воспроизведения моих результатов.
Для этого требуется несколько взломов. Например, 2HDMC в основном требует Higgsbounds версии 5, но также использует одну устаревшую функцию из HiggsBounds версии 4, поэтому я вставлю устаревшую функцию в исходный код HiggsBounds 5 перед компиляцией HiggsBounds 5. 2HDMC больше не поддерживается, но это по-прежнему единственная программа, которая делает то, что мне нужно. Это только один пример, почти все пакеты требуют изменений в исходном коде для совместной работы, хотя все они предназначены для совместного использования.
В принципе, я мог бы записать все эти изменения в рецепт singularity в качестве sed
замен, но это, вероятно, создало бы совершенно нечитаемый файл рецепта. В качестве альтернативы я мог бы создать zip-файл всех файлов, которые нуждаются в изменениях, и просто заменить их рецептом, я думаю, это было бы аккуратнее, но я никогда не видел, чтобы это было сделано. Из рецепта также стало бы очевидно, где находятся изменения.
Существует ли стандартная практика взлома исходного кода перед компиляцией в singularity?
Комментарии:
1. Есть ли какая-либо причина, по которой вы не хотите сначала создавать контейнер как изолированную среду, интерактивно вносить изменения, а затем генерировать изображение из изолированной среды?
2. @compBio Похоже, что я смог бы создать только изображение таким образом, а не рецепт? Цитирую документы ; «Будьте осторожны при преобразовании каталога изолированной среды в формат SIF по умолчанию. Если в доступный для записи контейнер были внесены изменения до преобразования, в файле определения Singularity нет записи об этих изменениях, что делает ваш контейнер невоспроизводимым. Вместо этого рекомендуется создавать неизменяемые производственные контейнеры непосредственно из файла определения Singularity. »
3. Да, это правда. В зависимости от того, как настроены лицензии для устанавливаемых вами программ, я мог бы порекомендовать вам создать страницу GitHub (или другой репозиторий) с кодом для точной настройки и просто клонировать его в контейнер. Это приемлемо?
4. @compBio это кажется хорошим предложением. Другим было бы проще проверять изменения и сократить количество внешних зависимостей (почти) только на github.