Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaPró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] rramp | es:howtos:misc:anatomy_of_a_slackbuild [2020/02/08 15:20 (UTC)] – [Anatomía de un Slackbuild] rramp |
---|
| |
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. |
| |
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 a 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 a 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> |
</code> | </code> |
| |
Before we go into this let me have a look in my slackware file system and see whats there at /tmp/SBo.Taking a quick look at the image will give you a clue that the slackbuild works, by 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 window, it 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 a mi sistema de archivos de Slackware y ver qué hay en /tmp/SBo. |
| Echando un vistazo rápido a la imagen te dará una pista de que el slackbuild funciona, usando 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 actual) es 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 a look at | Ahora echemos un vistazo a |
| |
<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 |
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 |
| |
</code> | </code> |
Probably we need, before we look at the rest of the code for latex2html slackbuild to introduce some basic concepts. | Probablemente, antes 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, make, make install. Configure gets ready to build the software , see if everything needed is there and builds a new make file. A 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. A slackbuild does the job of creating a package so that the process of installing is more manageable and reliable fashion. When 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 moda. Cuando 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. |
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> |
</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 a comprehensive manual in pdf format; so in my case I did not write code for man pages. Instead I simply put a copy of "manual.pdf" into the /usr/doc/latex2html-2019.2 directory. | |
| También tuve acceso a un completo manual en formato pdf; así que en mi caso no escribí código para las páginas de manual. En su lugar, simplemente puse una copia de "manual.pdf" en el directorio /usr/doc/latex2html-2019.2. |
| |
| |