[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
es:howtos:misc:anatomy_of_a_slackbuild [2020/01/24 15:23 (UTC)] – [Anatomía de un Slackbuild] rrampes:howtos:misc:anatomy_of_a_slackbuild [2020/02/08 15:20 (UTC)] – [Anatomía de un Slackbuild] rramp
Línea 133: Línea 133:
  
 Otro algoritmo común es llamado, por ejemplo, php es la "sentencia switch". Otro algoritmo común es llamado, por ejemplo, php es la "sentencia switch".
-En terminos simples, es una lista con condiciones que se va evaluando. Si ninguna de las condiciones se cumple en las últimas líneas puede colocar lo que le gustaría hacer.+En términos simples, es una lista con condiciones que se va evaluando. Si ninguna de las condiciones se cumple en las últimas líneas puede colocar lo que le gustaría hacer.
  
-En bash en principio es la misma idea, pero se le llama "sentencia case"Es posib+En bash en principio es la misma idea, pero se le llama "sentencia case"
 Podes colocar lo que desees en los bloques case, pero si piensas en el hecho de que queremos averiguar la "arquitectura" de un ordenador y ya sabemos que sólo hay ciertas posibilidades, entonces tiene sentido probar primero un par de posibilidades conocidas en la lista y, si no hay ninguna coincidencia, hacer algo para obtener una respuesta. arm y i586 son dos tipos de arquitecturas de computadoras. Podes colocar lo que desees en los bloques case, pero si piensas en el hecho de que queremos averiguar la "arquitectura" de un ordenador y ya sabemos que sólo hay ciertas posibilidades, entonces tiene sentido probar primero un par de posibilidades conocidas en la lista y, si no hay ninguna coincidencia, hacer algo para obtener una respuesta. arm y i586 son dos tipos de arquitecturas de computadoras.
  
Línea 146: Línea 146:
 Esto muestra la arquitectura de tu PC, en mi caso es x86_64. Esto muestra la arquitectura de tu PC, en mi caso es x86_64.
  
-Así que para resumir con respecto al bloque de código. Primero una sentencia "if" se ejecuta para ver si la variable "ARCH" está vacía. Si hay un valor para la variable ARCH, nada en el bloque de "if" y "case" interno se ejecutará; pero si una cadena vacia es encontrada (ARCH no tiene valor) una "sentencia case" es ejecutada (dentro del bloque de código if) para buscar una coincidencia. Si +Así que para resumir con respecto al bloque de código. Primero una sentencia "if" se ejecuta para ver si la variable "ARCH" está vacía. Si hay un valor para la variable ARCH, nada en el bloque de "if" y "case" interno se ejecutará; pero si una cadena vacía es encontrada (ARCH no tiene valor) una "sentencia case" es ejecutada (dentro del bloque de código if) para buscar una coincidencia. Si se encuentra una coincidencia la variable ARCH sera asignada con el valor de la coincidencia y la ejecución del case se detendría. Si la variable ARCH estaba vacía y no coincide con la lista, entonces entra en juego la línea que dice:
  
- If there is a value for the ARCH variable nothing in the block of  the "if" and inner "case" will run;but  if an empty string is found (ARCH has no value)  a "case statement" is run(within the if block of code)  to find a match.If a match was found the variable ARCH would be set to the value of the match found, and the execution of the case would come to a stop If the ARCH variable was empty and  no match was found in the case list , then the bottom line comes int play which is:+<code>uname -m </code> 
 +es usado para obtener el resultado y la variable ARCH es fijada con el resultado.
  
-<code>uname -m </code> is used to get a result and ARCH set to the result.  +No te preocupes por el signo de interrogación en i?86, el signo de interrogación es un lugar que permite posibilidades través de regex. 
-   +Podría ser "3" (i386), "6"( i686)etc.
-   +
-Don't be   fazed by the question mark in i?86 ,the question mark is place holder that allows for possibilities via regex. it could be "3" (i386) , "6"( i686) etc.+
  
-Next block of code+Proximo bloque de código
  
 <code> <code>
Línea 164: Línea 163:
 </code> </code>
  
-Before we go into this let me have look in my slackware file  system and see whats there at /tmp/SBo.Taking quick look at the image will give you a clue that the slackbuild worksby using the /tmp/SBo/ directory and creates a directory with the syntax package-packagename.So if we now have a look at the code above. CWD (current working directory is a  variable and is set to the value of pwd. If you run that in a terminal windowit will tell you where you in a bash context where you are working from.{{ howtos:misc:tmp_Sbo.gif }}+Antes de entrar en esto, déjame echar un vistazo mi sistema de archivos de Slackware y ver qué hay en /tmp/SBo.  
 +Echando un vistazo rápido la imagen te dará una pista de que el slackbuild funcionausando el directorio /tmp/SBo/ y crea un directorio con la sintaxis package-packagename. Así que si ahora echamos un vistazo al código anterior. 
 +CWD (directorio de trabajo actuales una variable y es configurada al valor de pwd. Si lo ejecutas en una ventana del terminal, te dirá dónde estás en un contexto bash desde el que estás trabajando. 
 +{{ howtos:misc:tmp_Sbo.gif }}
  
-TMP is going to be set to /tmp/SBo. +TMP se va a establecer en /tmp/SBo. 
-Now lets have look at +Ahora echemos un vistazo 
  
 <code> <code>
 PKG=$TMP/package-$PRGNAM PKG=$TMP/package-$PRGNAM
 </code> </code>
-   + 
-You might guess PKG is going to be set for latex2html to :+Se podría suponer que la PKG se va a fijar para el látex2html a 
 <code> <code>
 /tmp/SBo/package-latex2html /tmp/SBo/package-latex2html
Línea 180: Línea 183:
 If you look closely at the image (taking into account /tmp/SBo/ at top of image)  you will see exactly that in the image.OUTPUT is set to  /tmp \\ If you look closely at the image (taking into account /tmp/SBo/ at top of image)  you will see exactly that in the image.OUTPUT is set to  /tmp \\
  
-Next block of code:+Próximo bloque de código:
 <code> <code>
 if [ "$ARCH" = "i586" ]; then if [ "$ARCH" = "i586" ]; then
Línea 197: Línea 200:
  
 </code> </code>
-Probably we needbefore we look at the rest of the code for  latex2html slackbuild to introduce  some basic concepts.+Probablementeantes de mirar el resto del código del slackbuild latex2html para introducir necesitemos algunos conceptos básicos.
  
-Historically computer software is installed  in  a three step process  called configure, makemake install. Configure gets ready to build the software , see if everything needed is there and builds a new make fileA make file is a file that contains instructions to build a program+Históricamente el software para computadoras es instalado en un un proceso de tres pasos llamado configure, make and make install. 
 +configure se utiliza para preparar la construcción del software, comprueba que todo lo necesario está en el sistema y crea un archivo para make. Un archivo para meke es un archivo que contiene instrucciones para compilar un programa.
  
-You can from the command line install software just using configure, make and make install. slackbuild does the job of creating a package so that the process of installing is more manageable and reliable fashionWhen you have a slackbuild downloaded on your system should there be a new release of source code its a simple matter of putting  that source in your unpacked slackbuild and a quick edit to the slackbuild script+A partir de la línea de comandos se puede instalar software solamente usando configure, make and make install. Un slackbuild hace el trabajo de crear el paquete para que el proceso de instalación sea más manejable y confiable de modaCuando usted tiene un slackbuild descargado en su sistema, si hay una nueva versión del código fuente es una simple cuestión de poner esa fuente en su slackbuild desempaquetado y una rápida edición del script de slackbuild. 
  
 +El código fuente de los programas informáticos está escrito en lenguajes de "alto nivel", pero se convierte en una forma que el ordenador puede entender fácilmente. El código escrito en el lenguaje C implica que un compilador de C lo convierte a binario.
  
-Computer program source  are written in “high level “ languages but are converted into a form that the computer can readily understand.Code written in the C language involves a C compiler converted it to binary. 
  
 The whole goal of any system  installing a program, is that it should involve the concept of making it “tailor made” for the computer its being installed. Obviously that is going to involve the computer Architecture.  The whole goal of any system  installing a program, is that it should involve the concept of making it “tailor made” for the computer its being installed. Obviously that is going to involve the computer Architecture. 
Línea 213: Línea 217:
 CFLAGS and CXXFLAGS are variables holding values that can be passed in at compile time. We will see later that the variable SLKFLAGS will be used to set them.  CFLAGS and CXXFLAGS are variables holding values that can be passed in at compile time. We will see later that the variable SLKFLAGS will be used to set them. 
  
-Next block of code:+Proximo bloque de código:
  
 <code> <code>
Línea 358: Línea 362:
 </code> </code>
  
-That line goes back to the original directory that Latex2html.SlackBuild was run from i previously quoted Desktop) opens up the SlackBuild with "cat"  command and copies it to the documentation directory +Esa línea vuelve al directorio original que Latex2html. SlackBuild fue ejecutado desde (yo previamente ingrese al Desktop) abre el SlackBuild con el comando "cat" y lo copia al directorio de documentación.
-Now before I submitted latex2html to slackbuilds obviously I did some testing and found that when the package was installed it had a fairly comprehensive output of what it could do just using: +
  
 +Ahora, antes de enviar latex2html a slackbuilds, obviamente hice algunas pruebas y encontré que cuando el paquete fue instalado tenía una salida bastante completa de lo que podía hacer simplemente usando: 
 <code> <code>
 $ latex2html --help $ latex2html --help
 </code>  </code> 
  
-Also I had access to comprehensive manual in pdf formatso in my case I did not write code for man pagesInstead I simply put a copy of "manual.pdf" into the /usr/doc/latex2html-2019.2 directory.+ 
 +También tuve acceso un completo manual en formato pdf; así que en mi caso no escribí código para las páginas de manualEn su lugar, simplemente puse una copia de "manual.pdf" en el directorio /usr/doc/latex2html-2019.2.
  
  
 es:howtos:misc:anatomy_of_a_slackbuild ()