rpmbuild - Archivo de especificaciones de RPM: es posible rellenar dinĂ¡micamente una variable de archivo de especificaciones
(1)
Puede definir las variables rpmbuild con %(cmd)
en la parte superior del archivo de especificaciones. Observe que el comando está entre paréntesis, no entre paréntesis. Un ejemplo:
%define whoami %(whoami)
Y en otra parte del archivo de especificaciones, como un script o las secciones de compilación / instalación, use la variable como de costumbre en los paréntesis de esta manera:
echo "The user that built this is %{whoami}"
El cmd
puede ser cualquier cosa, incluido el comando cat. Tenga cuidado: cuando otro usuario reconstruye el archivo de especificaciones, es posible que no encuentre el archivo. Entonces será preferible usar la macro% {sourcedir} de esta manera:
%define path %(cat %{sourcedir}/path_file)
Y asegúrese de que path_file
esté en el directorio de origen y se incluya como origen en el archivo de especificaciones.
Tengo un archivo de especificaciones. Necesito% definir una variable de especificación que obtiene su valor de un archivo de una línea en el sistema.
Por ejemplo
%define path `cat /home/user/path_file`
y en path_file hay una línea
/var/www/html/hosts
Esto funciona parcialmente. Yo digo que comienza en la salida de RPM BUILD, a veces el valor de ${path}
es literalmente mi comando cat /home/user/path_file
y otras veces el valor es la línea en el path_file (/ var / www / html / hosts), ya que ¿debiera ser?