rpmbuild

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?