Arquivo de log em branco se% post contiver back carrapato ou substituição de comando

1

Ao criar um instalador USB personalizado para o Centos6.6 (não é fácil), descobri que if a seção% post do arquivo de kickstart tem backticks

  • O Anaconda é concluído, mas sai imediatamente para uma tela em branco saída de vídeo), normalmente sai com uma mensagem dizendo que o Anaconda terminou, etc. e
  • Tanto o anaconda-ks.log quanto o arquivo de log% post existe mas tem comprimento zero.

Isso funciona

%pre --log=/root/postLog.log
echo "This is the post"
ls
%end

Isso não funciona

%pre --log=/root/postLog.log
echo "This is the post"
echo 'ls'
%end

Isso também não funciona

%pre --log=/root/postLog.log
echo "This is the post"
echo $(ls)
%end

Por quê? Eu tenho um monte de coisas que eu preciso fazer no% post e não ter o suporte ao comando de substituição / retrocesso de comando vai tornar isso mais difícil.

Qualquer solução alternativa?

Edit: E por que eu preciso de backticks?

O instalador é para um produto de appliance, portanto, precisa instalar o sistema operacional de base, os rpms de SO personalizados e os rpms de produtos.

Portanto, na seção% post, algo como esse padrão é muito comum:

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

Um padrão semelhante para fazer algo genericamente com arquivos quaisquer que sejam existe em um diretório específico.

O conceito inteiro não funciona se o anaconda vomitar em ter um backtick no arquivo.

Além disso, backtick é um operador bash válido - em que o kickstart parece ter problemas.

Os backstacks do bash supostamente funcionam no kickstart?

Editar II: Adicionou $ (ls) ao exemplo

    
por Danny 13.06.2015 / 18:05

0 respostas