Я нахожусь в процессе создания контейнера для сингулярности с PLINK v 1.9 (генетическое программное обеспечение, а не интерфейс PuTTY, https://www.cog -genomics.org / plink / 1.9 / dev ) внутри него,Я могу успешно скомпилировать программное обеспечение в контейнере, и я вижу файлы и функции PLINK, когда я выполняю оболочку в контейнере.Чтобы упростить задачу для моих конечных пользователей, я пытаюсь добавить основную папку программного обеспечения в особенность $ PATH, чтобы они могли просто вызывать plink из командной строки, но я не могу этого добиться.
До сих пор я пытался:
- Назначение SINGULARITYENV_APPEND_PATH = путь / к / plink в разделе% runcript моего файла рецепта сингулярности.
- Перемещение папки с исходным кодом для Plink в / usr / local / bin в Singularity
- Установка переменной PLINKDIR = / path / to / plink и ее экспорт в раздел% environmentмой файл рецепта похож на то, что они сделали здесь.
Ни один из этих методов не работает.Единственный способ получить доступ к этому пакету - это указать полный путь в моей команде exec сингулярности.
singularity exec test.simg /path/to/plink/plink --version
Я хотел бы просто запустить
singularity exec test.simg plink --version
Содержимое моего файла рецептов сингулярности:
BootStrap: docker
From: ubuntu:16.04
%labels
Plink Version 1.9
%runscript
# Allows us to run the versions of the packages installed in the post
# section
exec plink19 "$@"
%environment
export SINGULARITYENV_PLINKDIR="/plink-ng-b15c19f/1.9/"
%post
# Make some directories for storage
mkdir /new_folder_1 /new_folder_2
apt-get update
apt-get -y upgrade
apt-get install -y --no-install-recommends \
software-properties-common \
build-essential \
apt-transport-https \
curl \
git \
wget \
libfreetype6-dev \
pkg-config \
python \
python-dev \
dh-autoreconf \
libarchive-dev \
libatlas-dev \
libatlas-base-dev \
zlib1g-dev
# Install PLINK
wget https://github.com/chrchang/plink-ng/archive/b15c19f.tar.gz
tar xvf b15c19f.tar.gz
cd /plink-ng-b15c19f/1.9/
./plink_first_compile
ln -s plink plink19
%test
echo $PLINKDIR
Оператор echo ничего не выводит.Как добавить пользовательские пакеты, подобные этому (имеется в виду, что они не установлены с помощью apt-get), в среду Singularity, чтобы их можно было вызывать из командной строки с помощью Singularity Exec?Любая помощь будет оценена!