
При создании собственного USB-установщика для Centos6.6 (это нелегко) я обнаружил, чтоеслираздел %post файла kickstart имеет обратные кавычки
- Anaconda завершает работу, но немедленно завершает работу с пустым экраном (без видеовыходов). Обычно она завершается с сообщением о том, что работа Anaconda завершена и т. д. и
- Оба файла журнала anaconda-ks.log и %post существуют, но имеют нулевую длину.
Это работает
%pre --log=/root/postLog.log
echo "This is the post"
ls
%end
Это не работает.
%pre --log=/root/postLog.log
echo "This is the post"
echo `ls`
%end
Это тоже не работает
%pre --log=/root/postLog.log
echo "This is the post"
echo $(ls)
%end
Почему? Мне нужно сделать много вещей в %post, и отсутствие подстановки команд/поддержки обратных кавычек усложнит задачу.
Есть ли обходной путь?
Редактировать: А зачем мне обратные кавычки?
Установщик предназначен для продукта-устройства, поэтому ему необходимо установить базовую ОС, пользовательские пакеты RPM ОС и пакеты RPM продукта.
Итак, в разделе %post очень распространено нечто вроде следующего шаблона:
cd $ApplicationPackageDir
RPMLIST=`ls *.rpm`
RPMCOUNT=`ls *.rpm | /usr/bin/wc -l`
for theRpm in $RPMLIST
do
echo /bin/rpm --quiet --upgrade --nodeps --force $theRpm
done
Подобный шаблон для общего выполнения чего-либо счто бы нифайлы существуют в определенном каталоге.
Вся концепция не работает, если анаконда блеет из-за наличия в файле обратной кавычки.
Кроме того, обратный апостроф — допустимый оператор bash, с которым у kickstart, похоже, возникают проблемы.
Являются ли обратные кавычки bashпредполагаемыйработать в кикстарте?
Редактировать II:Добавлен $(ls) в пример