Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Este tipo de instalaciones no serán las que realices con más frecuencia en tu día a día. Sin
embargo, puede que en algún momento necesites hacer una instalación a partir del código
fuente, bien porque no encuentres el archivo desde el que hacer la instalación y sí solamente su
código fuente, o bien porque antes quieras modificar el código y así personalizar el programa a
tu gusto para después instalarlo.
Los pasos a seguir para realizar una instalación desde el código fuente son los siguientes:
• Descompresión del archivo que te hayas descargado del paso anterior, si es que has
descargado un archivo y no su código a través de Git.
Puedes saber qué significa compilar si accedes a la sección Glosario de esta unidad. Además, si
estás interesado en profundizar sobre qué es compilar y un compilador puedes visitar el vínculo
denominado ¿Qué es compilar? en Enlaces de interés.
Tar
Con este comando, como con todos los de Linux, siempre podrás conocer todos sus usos a
través de la consulta: tar –-help. No obstante, a continuación vas a conocer las opciones más
usadas con este comando:
Tar puede manejar archivos con extensiones: tar, tar.gz, tgz, tar.bz2, tar.tbz o tar.tb2 donde las
extensiones tar.gz y tgz son similares y las extensiones tar.bz2, tar.tbz y tar.tb2 también son
similares entre ellas.
Para conocer los usos más comunes que podrás hacer con la herramienta tar para archivos
comprimidos o que vayas a comprimir con los formatos anteriormente indicados, deberás leer
los siguientes puntos:
Ahora, por ejemplo, quieres instalar node.js pero no la versión actual sino una anterior, por
ejemplo la versión 8.2.0. Para ello, accede a GitHub y allí haz los pasos indicados en la imagen.
1. Haz clic sobre el botón “Branch”, ahí se desplegará una ventana. Crea un archivo
comprimido.
2. En la ventana que se te ha desplegado haz clic sobre la pestaña “Tags”.
3. Ahora tienes acceso a todas las versiones de node.js. Entonces, buscas la versión que te
interesa y haz clic sobre ella, recuerda que es la versión 8.2.0
Como ves, ahora estás viendo el código que hace referencia a esa versión y que a continuación
irás a descargar.
Tan solo te queda descargar el código. Primero harás clic en el botón que tiene como nombre
“Clon or download”, tal y como puedes ver en la imagen, de manera que al hacer clic te ofrecen
dos alternativas para descargar el código. Una de ellas es descargarte el archivo empaquetado
zip a través del enlace “Download ZIP”. La otra consiste en hacer clic en el icono marcado en la
imagen y descargarte el código a través de la opción clone de git, que es la vas a usar a
continuación con el siguiente comando:
git clone --depth 1 --branch v8.2.0 https://github.com/nodejs/node.git
Una vez descargado el código, por ejemplo en tu directorio de usuario, te creará un directorio
con el nombre de node donde tendrás todo el código necesario para posteriormente compilarlo
y crear tu ejecutable.
Caso práctico: uso de la herramienta tar
Para el siguiente caso práctico, crea en tu directorio de usuario cinco archivos con extensión .txt,
otros cinco archivos con extensión .jpg y otros cinco archivos con extensión .php, no importa
que no contengan nada.
1. Crea un archivo comprimido tar, con nombre todos.tar, con todos los archivos creados
en el paso anterior.
2. Crea un archivo comprimido tar , con nombre archivo_a.tar, con solo los archivos que
tienen extensión .txt
3. Crea un archivo comprimido tar , con nombre archivo_b.tar, con solo los archivos que
tienen la extensión .jpg
4. Crea un archivo comprimido tar , con nombre archivo_c.tar, con solo los archivos que
tienen la extensión .php
5. Dentro del archivo todos.tar, introduce archivo_a.tar, archivo_b.tar y archivo_c.tar
6. Consulta el listado de archivos que contiene ahora el archivo todos.tar y podrás ver que
dentro tienes los archivos con extensión .txt, .jpg, .php y .tar
7. Extrae de todos.tar todos los archivos con extensión *.txt, *.jpg y *.php y guárdalos en
un directorio que se llame salida que se encuentre dentro de tu directorio de usuario.
Para poder conocer las soluciones a todas estas tareas, continúa leyendo.
Solución
Hasta ahora lo que has hecho es desempaquetar el archivo donde está el código fuente de la
aplicación que quieres instalar o te has descargado directamente el código fuente tal y como has
hecho.
Nodejs, a la hora de crear los paquetes de instalación, utiliza GNU Build System o Autotools por
lo que te deberás fijar o buscar entre todos los archivos descargados los siguientes dos archivos:
• configure
• Makefile
Además, es el archivo responsable de crear el archivo Makefile final. El archivo Makefile será el
que contenga todas las instrucciones necesarias para construir el instalable.
Si lo deseas, puedes saber más sobre GNU Build System accediendo a la sección de Enlaces de
interés donde encontrarás un enlace con dicho nombre.
Obteniendo ayuda del archivo configure
Para ejecutar el archivo configure lo harás de la siguiente manera para así tener acceso a todas
las opciones que te permite:
./configure –help
Como puedes ver el número de opciones es enorme y en determinadas ocasiones hay que
profundizar mucho para hacer la instalación a partir del código, pero en este caso, te vas a
centrar solamente en la opción –prefix.
Con esta opción le dices a configure dónde quieres que instale tu aplicación. Por defecto lo haría
en /usr/local, pero ahí acabaría mezclándose con el código de otras aplicaciones y, como esta
instalación la estás haciendo a partir de código fuente, mejor hacerla en /opt, otra buena
ubicación para la instalación.
Además, dentro de ese directorio no hay nada y siempre tendrás claro que lo que hay ahí lo has
creado a partir de código fuente.
Por lo tanto, ahora solamente necesitas crear un directorio donde se vaya a instalar la aplicación
que llamarás por ejemplo node-v8.2.0 dentro de /opt con permisos de superusuario.
Ejecución del archivo configure
Ahora ya estás en disposición de ejecutar el archivo configure indicándole la ruta donde quieres
que esté instalada la aplicación y validar que todo lo necesario para realizar la instalación está
disponible en el sistema. Para ello, deberás ejecutar la siguiente instrucción:
./configure --prefix=/opt/node-v8.2.0
Como puedes ver, empiezas a obtener los primeros mensajes de herramientas que te faltan. En
este caso, te falta el compilador de C++
Haz la instalación del compilador con el siguiente comando: sudo apt install g++ para Debian y
sudo yum install gcc-c++ para CentOS. Una vez instalado, lo llamas y ves que te da un error
porque le faltan los archivos para compilar, lo que te dirá que la instalación ha sido correcta
porque se ha ejecutado y ha encontrado dicha deficiencia.
Ejecución del archivo configure y compilación el código
Ya no obtienes ningún mensaje de error, por lo que estás en disposición de compilar el código
fuente. El proceso de compilación del código fuente puede durar desde unos minutos hasta
horas, todo depende de la capacidad de procesamiento del sistema, de la complejidad del
código, etc.
Durante dicho proceso aparecerán multitud de mensajes a través de la consola con todo lo que
está haciendo el compilador. En caso de error se detendrá dicho proceso. Aunque lo normal es
que esto no ocurra una vez ejecutado el archivo ./configure.
¿Cómo reducir el tiempo de compilación? Has de saber que la instrucción make tiene una opción
–j(N+1) donde N es el número de núcleos que tiene el procesador donde se vaya a realizar la
compilación que te ayudará a reducir el tiempo de espera. Por lo que si tu procesador tuviera
cuatro núcleos, la instrucción de compilación habría quedado de la siguiente manera: sudo
make –j5 && echo ok.
Una vez hecha la instalación, si vas al directorio donde has dicho que quieres realizar la
instalación podrás ver que dentro de él se encuentra la aplicación instalada:
Ahora, dentro del directorio /bin tienes el archivo ejecutable “node”. Para llamarlo, estés donde
estés, deberás indicar toda la ruta de acceso a él ./bin/node –version, pero esto es bastante
engorroso y seguro que te estás preguntando cómo poder acceder directamente al ejecutable
sin necesidad de poner la ruta, como por ejemplo puedes acceder a los comandos "ls" o "cd" o
"mkdir“ sin indicar la ruta completa. Para ello, deberás avanzar a la siguiente pantalla, que es
donde aprenderás a saber cómo acceder directamente a “node”.
Configuración de la variable $PATH
Por si no lo sabías, lo que permite acceder a los comandos directamente es que su ruta debe
estar configurada en la variable $PATH. Esta configuración está hecha para comandos como “ls”,
“mkdir” o “cp”, por ejemplo, pero para la instalación que acabas de hacer no lo está, y es lo que
ahora mismo aprenderás a hacer.
Antes de nada, para saber qué rutas hay en tu variable $PATH puedes hacer la consulta con el
comando echo $PATH como se muestra en la imagen:
Como puedes ver, ahora mismo ahí no se encuentra la ruta que te llevaría al ejecutable de
“node”, que sería /opt/node-v8.2.0/bin. Debes añadirla con el siguiente comando:
export PATH="/opt/node-v8.2.0/bin:${PATH}“
Una vez hayas ejecutado el comando anterior, puedes comprobar cómo ahora sí está la ruta en
la variable $PATH y puedes acceder a node sin indicar la ruta completa. Simplemente con el
comando: node –version verás que te muestra la versión de node instalada.
Ahora pensarás que todo está solucionado y que siempre que entres podrás acceder a node sin
problemas. Pero no, no es así. Esta solución es válida mientras no salgas del terminal, si sales y
vuelves a entrar y consultas el valor de la variable PATH verás que ya no está configurada la ruta
de acceso a node.
Configuración de la variable $PATH: permanente
Si al hacer los siguientes pasos te equivocas y al volver a entrar dejas de tener acceso a los
comandos de siempre (por ejemplo “ls”, “cd” o “mv”), no te preocupes. Sal y vuelve a entrar, pero
esta vez con el usuario root y arregla los errores que hayas podido realizar de lo que ahora
deberás hacer para que la configuración de la variable PATH tenga el acceso a node de manera
permanente.
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/node-v8.2.0/bin"
export PATH
Para desinstalar lo instalado (lo habías hecho en /opt porque no querías que la instalación se
mezclara con otras instalaciones), podrás hacerlo con el siguiente comando:
Para terminar, debes eliminar la configuración de la ruta a node que has hecho anteriormente
en el archivo .bashrc o .profile
Una vez eliminadas estas dos líneas, sales de la sesión en la que te encuentras con el
comando exit y vuelves a identificarte para posteriormente comprobar el contenido de la
variable PATH y que tienes acceso a los comandos “ls”, “cd” o a “nano” por ejemplo.
Si es así, todo estará correcto y habrás terminado todas las tareas a realizar.
RECAPITULACIÓN
En esta unidad has aprendido a descargar código desde un repositorio, qué es un repositorio de
código, cómo puedes desempaquetar o empaquetar archivos con tar, compilar, instalar,
configurar la variable de entorno PATH así como desinstalar lo instalado.
Además, lo has hecho en un directorio correcto y sin mezclar tu instalación con instalaciones de
otros programas. Digamos que has evitado compartir directorios comunes con otras
aplicaciones que a la hora de desinstalar la aplicación lo hace todo más complicado.
BIBLIOGRAFÍA
• Christine Bresnahan, Richard Blum. LPIC-1. Linux Professional Institute Certification. ANAYA
MULTIMEDIA; Edición: edición (22 de octubre de 2015).
• Sébastien Rohaut. Linux - dominar la administración del sistema. Eni (13 de abril de 2017).
• Tobias Günther. Learn Version Control with Git: A step-by-step course for the complete
beginner. Independently published (9 de marzo de 2017).
• Samuel Dauzon. GIT. Controle la gestión de sus versiones. Conceptos, utilización y casos
prácticos. Eni (18 de mayo de 2018).
GLOSARIO
• A
o Compilar
Es la acción de traducir código fuente en código objeto de manera que, a partir
de él, se pueda generar posteriormente un ejecutable que podamos instalar.
ENLACES DE INTERÉS
• ¿Qué es compilar?
https://tecnologia-facil.com/que-es/que-es-compilar/
• Otras herramientas de empaquetado y desempaquetado de archivos.
https://computernewage.com/2015/11/18/como-comprimir-y-descomprimir-archivos-en-
linux-desde-la-terminal/
• Git.
https://git-scm.com/
http://rogerdudler.github.io/git-guide/index.es.html
https://desarrolloweb.com/articulos/introduccion-git-github.html
• GNU Build System.
https://es.wikipedia.org/wiki/GNU_build_system
PREGUNTAS FRECUENTES
• Subversion (https://subversion.apache.org/)
• Mercurial (https://www.mercurial-scm.org/)
• CVS (http://www.nongnu.org/cvs/)
• Etc.