[ubuntu-ar] Archivos tar.gz
Pablo Lillia
pablofer72 at yahoo.com.ar
Wed Sep 23 22:04:50 UTC 2015
El 23/09/15 a las 08:35, Ernesto Rizzardi escribió:
> Gracias, Angel, lo probaré. Saludos
>
> El 22/09/15 a las 21:09, Angel Cadoppi escribió:
>> El 22/09/15 20:37, Ernesto Rizzardi escribió:
>>> Hola amigos
>>>
>>> Despertaré la modorra comunicacional para molestarlos con un tema
>>> muy remanido como es la instalación de archivos tar.gz. Me dirán que
>>> hay toneladas de sitios donde se explica el "como", es cierto, pero
>>> nunca pude dar con la tecla, soy duro de arriba, si existe un modo
>>> simple para "viejos novatos" como yo, les ruego la bondad de
>>> facilitarlo. Pido disculpas por "consultas con telarañas" . Abrazos,
>>> Ernesto.
>>>
>> Hola Ernesto, yo tambien lidié con los tar.gz y los tar.bz2 hasta que
>> instalé "alien", es un programita que desde consola te permite
>> transformarlos en .deb y desde ahí todo es mas facil.
>> Espero poder aportar mi granito de arena.
>> Luego conta como te fué.
>> Saludos, Angel
>>
>
>
Con los tar.gz, alien te puede servir algunas veces, y muchas otras no.
El problema con los tar.gz es que no es un formato de paquetes, si bien
la vieja Slackware alguna vez lo usaba (capaz que todavía los usa...
todavía existe Slackware?? :D) como tal, pero considerando algunas
convenciones adicionales.
El tar.gz no es más que un formato de archivos comprimidos y puede
contener *cualquier* cosa. Es como un zip si se quiere. Puede tener
imágenes, videos, textos, programas (binarios) de alguna plataforma,
código fuente compilable, fotos de gatitos, .... cualquier cosa
imaginable, mezclado, y con cualquier estructura. En realidad el archivo
tar es solo un formato de archive (que nació en Unix para backups en
cinta: 'ta'pe a'r'chive = tar), que también se usa para distribuir
archivos, porque conserva y maneja bien los permisos y estructuras de
archivos y directorios de Unix. Cuando los archivos tar además están
comprimidos con gzip, es que terminan en .gz. También pueden comprimirse
con otras herramientas similares, como el muy común bzip2 (bz2), 7zip
(7z), o más raro en zip.
Pero veamos los dos casos más habituales de tar.gz:
OPCION 1) tar.gz binario (el programa ya compilado) de un programa.
Hay que bajarse el que sea (más) compatible con tu Linux, y de la
arquitectura correcta (x86 = 32-bit, x86_64 o AMD64 para 64-bit). Solo
hay que descomprimirlo y ejecutar el programa. El nombre del
ejecutable... puede ser cualquier cosa. Lo mejor: seguir las
instrucciones, o fijarse qué ejecutables tiene y probar. Es normal que
dentro del .tar.gz exista una carpeta con el nombre del programa.
Un ejemplo:
$> tar xzvf progama-dist-bin.tar.gz
$> cd programa/
$> ./programa
Supongiendo que el tar.gz se llame programa-dist-bin.tar.gz, que los
archivos están en una carpeta llamada "programa", y que el ejecutable
del programa se llama "programa", y que ya tiene permisos de ejecución.
Sino, para ver qué archivos tienen permisos de ejecución, basta con
hacer un:
$> ls -lh
y ver qué archivos tienen una 'x' en la tripleta de permisos, o si está
coloreado, pueden ser los que tienen el color verde (puede cambiar según
la terminal, la distro, y las opciones del usuario).
El "punto barra" de ./programa, es para correr el programa que está con
ese nombre en el directorio actual.
OPCION 2) tar.gz con código fuente.
Depende del tipo de programa y/o de la sanidad mental del autor, si
sigue o no las convenciones GNU, y de muchas variables, como la posición
de los astros. Pero "en general", una gran mayoría se reduce a esos pasos:
$> tar xzvf progama-dist-src.tar.gz
$> cd programa/
$> ./configure
$> ./make
$> sudo make install
El comando (script en realidad) configure analiza si se cumplen las
dependencias en el sistema: si existen las librerías en el sistema, si
tienen las versiones correctas, si están los encabezados para poder
compilar, si están presentes todas las herramientas de compilación, y un
largo etc muy técnico. Puede terminar con éxito... o reportar problemas.
Dichos problemas, pueden indicar que antes necesitamos instalar algo,
llamado por ese motivo una "dependencia", como puede ser una librería o
un compilador. A veces las dependencias ya están instaladas, pero
"configure" fue incapaz de encontrarlas porque no están en las rutas
(path) esperadas. En tal caso, configure tiene muchas opciones para
forzar un path alternativo. También configure tiene opciones para
habilitar o deshabilitar opciones del programa. Por ejemplo: tal vez el
programa soporta varias interfaces gráficas, como Gnome, KDE, y X11, y
por ahí solo nos interesa compilar una de ellas. O tal vez el programa
tiene partes opcionales que no nos interesan o no aplican a nuestro
caso, o que no son compatibles con nuestras dependencias. Con
"configure" se pueden habilitar y deshabilitar dichos componentes
opcionales. A veces un programa que no compila, se soluciona
deshabilitando algo opcional, o forzando alguna configuración.
El comando make, sin entrar en muchos detalles, digamos que procesa un
script (guión) llamado Makefile, creado por los conjuros mágicos del
'configure'. Digamos que make interpreta pergaminos de una antigua
ciencia oscura usada para invocar a los compiladores, ensambladores y
enlazadores en un orden correcto. Nadie sabe a ciencia cierta como
funciona, salvo un par de mortales, y quien dice lo contrario,
probablemente miente, está loco, o hizo un pacto con el lado oscuro. No
exagero :D
El último comando, sudo make install, hace la instalación (copia) del
programa y todos sus archivos en las ubicaciones definitivas del
sistema. Se debe correr con 'sudo', porque suele necesitar permisos
administrativos para poder copiar en carpetas protegidas.
Para desinstalar un programa instalado así, a veces hay un paso inverso
que es:
sudo make uninstall
A veces la desinstalación falla miserablemente, o no deja las cosas en
orden, resultando en situaciones hilarantes como un sistema inutilizado.
Pero no todos los programas tienen y/o necesitan un "configure", algunos
programadores están más allá de ello o no comulgan los mismos credos.
Algunos usan otros sistemas de construcción. O tienen scripts creados
por el mismo programador a su propio gusto, locura y/o necesidad.
También hay programas en/para Python, PHP, Node.js, etc, que se instalan
por otros procedimientos y vías.
Después de todo esto, con suerte quedará un programa instalado fuera del
control del sistema de paquetes de la distribución, la mayoría de las
veces sin más consecuencias, pero que otras pueden traer problemas
cuando se actualicen paquetes de la distribución, y hasta podrían
introducir fallos de seguridad al no recibir actualizaciones periódicas
por estar instalados por fuera del sistema.
Instalar programas de esta forma, nunca es aconsejable, y debe hacerse a
conciencia, como última opción. A partir del "sudo make install", si
algo sale mal, pueden pisarse archivos del sistema y dejar un
zafarrancho divertido, que en casos extremos puede llevar a una
reinstalación del sistema operativo. En casos dudosos o con sistemas
críticos, es buena práctica probar primero en un sistema de pruebas,
como puede ser una máquina virtual (ejemplo VirtualBox o qemu) que sea
desechable.
Normalmente todo programa trae un documento README y/o un INSTALL. Si
existen estos documentos, vale la pena leerlos, porque pueden tener
instrucciones útiles.
Si bien no existe "una" receta, como aprendizaje está muy bueno, aparte
de útil para algunas situaciones. Y la mejor forma de aprender, es
probando (y a veces rompiendo xD). Es cuestión de animarse :)
Saludos,
Pablo
More information about the Ubuntu-ar
mailing list