Псевдонимы не наследуются между подоболочками, поэтому в настоящее время невозможно передать их через $SINGULARITY_ENVIRONMENT
или %environment
.
Один из вариантов - преобразовать псевдонимы в функции:
From:
alias build_command='pushd build_dir && ./configure && make && make install && popd'
To:
build_command() { pushd build_dir && ./configure && make && make install && popd ; }
export -f build_command
Однако Singularity по умолчанию использует /bin/sh
для начальной обработки среды, а в системах на основе Debian /bin/sh
имеет символическую ссылку на /bin/dash
и dash не поддерживает функции экспорта в подоболочки, которые я нашел. Возможно, вы застряли в поиске файла с псевдонимами / функциями вручную, если используете ОС семейства Debian.
В разделе %post
вашего определения вы можете повторить в $SINGULARITY_ENVIRONMENT
.
Из документов :
%post
apt-get update && apt-get install -y netcat
NOW=`date`
echo "export NOW=\"${NOW}\"" >> $SINGULARITY_ENVIRONMENT
В вашем случае вы бы сделали echo "alias something='something else' >> $SINGULARITY_ENVIRONMENT
. Важно выполнить перенаправление добавления >>
, так как вы не хотите загромождать существующий файл среды.