OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Construye tus propios archivos RPMs
Articulo originalmente publicado por Sinner en Libertonia.
Has encontrado ese programa/versión de la librería en CarneFresca o en ForjaFuentes que te va a solventar la vida.
Llevabas casi 3 semanas buscándolo. Y ahora va y resulta que no está en formato [.deb | .rpm | .tgz] para tu distribución favorita.
¿Qué haces? ¿te tiras de los pelos? ¿te vas a dormir? ¿te instalas el Windows?
Norl!!!
Créate tu propio paquete.
Introducción
Esto del OpenSource es aquello de "si tienes un picor, te rascas... y publicas el código fuente". Incluso para los tutoriales como éste.
Mientras luchaba con unas librerías actualizadas para poder instalar un programa que necesitaba urgentemente, me vi en la necesidad de aprender varios secretos sobre la creación de RPMs en particular y todo tipo de paquetes en general.
Y, ya puestos, ¿por qué no hacer un mini-tutorial?
El problema
Encuentras un programa o librería que necesitas para tus aventuras en Linux. Vas a la sección de Downloads y descubres, como no, que solo existen paquetes para las distribuciones que no usas. No falla. Pasa siempre. YPMQ miran la distribución que usas y, dinámicamente, esconden los paquetes que necesitas.
Entonces, te queda bajarte las fuentes del programa/librería, configurarla, cruzar los dedos, compilarla (y que no pete) e instalarla (y que no te rompa nada).
Encima, no te garantiza que vas a obtener los "provides" necesarios para instalar el otro programa que es el que realmente quieres instalar.
Como casi siempre, no eres el primero que se encuentra en tamaño brete.
Afortunadamente, algunos de los compañeros de penas saben programar, tenían tiempo libre y, en base a código de un proyecto anterior, installwatch, van y empiezan un proyecto que te va a alegrar: un generador de paquetes!!!
La solución
Efectivamente, existe tal generador de paquetes. No, no es magia negra. Sí, pueden utilizarlo Bilo, Nano... incluso GonzoTBA, alias "cambiar a ReiserFS con 2 c*j*n*s".
El programa se llama CheckInstall. Si os fijais, el proyecto se aloja en una web de Mexico. Eso sí, la documentación que he encontrado, está en el más puro Inglés. Pero no pasa nada. El Sinner lo va a explicar.
¡Crea tus paquetes!
El primer paso consiste en instalarse el programilla.
¿Qué hay que hacer para instalarlo?
Instalando desde el soporte de software "contrib"
urpmi checkinstall
Es complicadillo, ¿verdad? xD
Recuerda que has de ser root y ejecutar el comando en la consola o bien utilizar rpmdrake (Instalador gráfico de paquetes) y buscar el paquete llamado checkinstall.
O bien compilarlo e instalarlo "a mano"
En su sección de Download, lo encontrarás en formato de código fuente (tar.gz), en paquete tipo RedHat/Mandrake/SuSE (rpm), para Debian (deb) y para Slackware (tgz). Vamos, para todos los gustos.
Luego, asegúrate que tienes el programa en cuestión en el PATH del administrador (root). El programita se llama "checkinstall". Si no está en el path de root, ponle un link en, por ejemplo, en /usr/sbin/.
¡Ahora ya estamos preparados para crear nuestros própios paquetes!
Bajando los fuentes a empaquetar
El segundo paso será descargar el código fuente del programa o librería que queramos. Lo descomprimimos en un directorio. Ahora toca leerse los ficheros README, BUILD, COMPILE, INSTALL y toda la documentación que incluya.
Sí, hay que leerlos. No, no es broma.
Configurando
Ahora toca configurar el paquete. Primero, haremos un
./configure --help
para ver que se puede configurar.
Usualmente podremos configurar (y nos interesará configurar) alguna de estas opciones:
--bindir=DIR --sbindir=DIR --target=TARGET
Que son, por orden:
* Directorio "DIR" donde poner los ejecutables * Directorio "DIR" donde poner los ejecutables para el administrador * Configurar para la plataforma "TARGET"
Dependiendo del programa configurador, tendrás muchas opciones. Utiliza las que necesites, o las que veas que te crean paquetes con los archivos en su sitio (ya que cada distribución pone los archivos donde les da la gana... aunque ahora el LSB parece que va a arreglar todo esto.)
Cuando lo tengas claro, procede a dar la orden
./configure
con todas las opciones que necesites, como por ejemplo:
./configure --prefix=/usr/share/apps --bindir=/usr/bin --build=i586
Si te da errores, sé avispado, utiliza Google, los grupos de noticias de EcolNet y tu intuición. Como último recurso, ¡usa la fuerza Luke!
Cuando acabe sin errores, es hora de dar el siguiente paso:
La compilación
¡No te asustes! Es bien facil. Da la orden
make
Te vas a por la cervecita y a esperar que acabe la compilación. Evidentemente, si tienes un AthlonMP Dual a 2200, solo podrás tomarte una cañita rápida, y si usas un i386sx, acabarás beodo.
Cuando termine (bién, es de suponer) la compilación, te dirá que es el momento de hacer
make install
pero como root.
En este instante, te cambias a root y utilizas la arcana mágia... digooooo, que utilices el programa CheckInstall, que con la mágia, la casa acaba oliendo a cosas raras.
nota-recordatorio: para cambar a root puedes utilizar el comando: "su"
Da la orden
checkinstall
y, si no le pasas ninguna opción, entrarás en el modo interactivo.
- Primero te pregunta si quieres crear el directorio de documentos ./doc-pak
Responde como te convenga en tu caso. - Ahora, el programa empieza a darse un garbeo por tu disco y comprueba donde van a acabar cada uno de los archivos que contiene el programa de marras.
- Luego te pregunta qué paquete quieres crear: Slackware [S], RPM [R] o Debian [D].
Como ves es sencillo. - Si por esas cosas, el paquete original no tiene un "Summary" o pequeño resumen sobre el paquete, te pedirá que lo entres.
- Luego te muestra una lista de las opciones, como esta:
- 1 - Summary: [ CheckInstall installations tracker, version 1.5.3 ]
- 2 - Name: [ checkinstall ]
- 3 - Version: [ 1.5.3 ]
- 4 - Release: [ 2mdk ]
- 5 - License: [ GPL ]
- 6 - Group: [ Applications/System ]
- 7 - Architecture: [ i586 ]
- 8 - Source location: [ checkinstall-1.5.3 ]
- 9 - Alternate source location: [ ]
- 10 - Provides: [ checkinstall ]
Como ves, es autoexplicativo. Cambia lo que quieras. Por ejemplo la Release, para indicar que es una compilación nueva que has hecho y le pones un número más, y le añades un indicativo apra saber que la has hecho tú (GonzoTBA) y acabas poniendo en Release 3gtba, pongamos por caso. Si el programa se distribuye con licencia BSD, pues le cambias el apartado correspondiente. Si quieres compilar especialmente para un Athlon, pues lo cambias.
- Cuando hayas acabado de afinar, le das al enter y ¡empezará la construcción del paquete!
Tras el momento de euforia, verás que acaba diciéndote algo así como:
Done. The new package has been installed and saved to /usr/src/RPM/RPMS/athlon/checkinstall-1.5.3-3gtba.athlon.rpm You can remove it from your system anytime using: rpm -e checkinstall-1.5.3-3gtba
Este anuncio te indica el directorio donde tienes el paquete, que te ha instalado el paquete en el sistema y te da la forma de desinstalarlo. Y ya está.
¿A que no era tan dificil?
Salut,
Sinner
Usuario
# 1465 Mas fácil imposible xD
Me sorprende lo fácil que puede llegar a ser construirse uno su propio paquete. ¿La gente se anima? ¿Podrían los usuarios de BlogDRAKE crear un repositorio común? De momento capi_x ha creado el suyo.
¿Alguien se anima? ¿Alguien ofrece espacio en un ftp para crear *el* repositorio BlogDRAKE?
un saludo de jcdenton@jabberes.org
un saludo de jcdenton@jabberes.org
BOFH
# 11084 ¿no deberia ir esto a los libros colaborativos?
pues eso... :)
¿Quien es Jesucristo?
BOFH
# 11090 Ya esta añadido
Lo he puesto en la sección de administración. Si os parece bien lo dejo aquí, sino pues lo cambio a otra.
Por cierto todos los artículos que veas interesantes para añadir a los libros, escribe un mensaje como el que acabas de hacer, y si puedes también opina en que sección debe ir.
Salu2
----------
cloud_tdh@jabber.org
----------------------
Colabora con la Documentación
BOFH
# 11093 :-D
ok :)
¿Quien es Jesucristo?
BOFH
# 11226 Muy pero que muy útil
Gracias por ponerlo en los books.
Saludos
Mozilla1.8b1
Se necesita traductor al portugues
¿Cómo enviar un BUG?
Documentación
El Blog de Pacho