rpmbuild добавляет требования Python автоматически из используемой версии python. Таким образом, он добавлял python(abi)=2.7 в список требований RPM. Однако, при использовании python27, который использовал scl, в список требований добавлялся python27-python. Проблема была решена путем добавления строки
AutoReqProv: no
в файл spec в RPM. После этого машине, на которой был установлен rpm, не нужно было проверять требование python(abi), и вместо этого она проверяла, что python27-python был предоставлен.
Просто обращайтесь с ним, как с другими, которые принимают аргумент ( изображение
и версия
). т.е. добавьте двоеточие, обозначающее обязательный аргумент, в строку опций, которая идет к getopt, и выберите значение из $ 2
.
Я думаю, что ошибка возникает из-за getopt
, поскольку не сказано, что options
принимает аргумент, и поэтому он пытается интерпретировать - build-arg ARG = значение
как длинный вариант (начинается с двойного тире).
$ cat opt.sh
#!/bin/bash
params="$(getopt -o hv: -l help,options:,version: --name "$0" -- "$@")"
eval set -- "$params"
while [[ $# -gt 0 ]] ; do
case $1 in
-h|-\?|--help)
echo "help"
;;
-v|--version)
if [ -n "$2" ]; then
echo "version: <$2>"
shift
fi
;;
--options)
if [ -n "$2" ]; then
echo "options: <$2>"
shift
fi
;;
esac
shift
done
$ bash opt.sh --version 123 --options blah --options "foo bar"
version: <123>
options: <blah>
options: <foo bar>