Feeds, issues, packages and code source about emulation and pograming, of VENENUX proyects, Debian related distros and massenkoh!

pbuilder dpkg-dev

|

Creando paquetes debian: CASOS: pbuilder y sourcedebianbluider

Si un usuario slak yega aki por error, no se preocupe, no os sentais insultado, haga caso omiso y abstraigase de retorno a su puro mundo slak.

Estos sistemas discutidos son para fuentes conocidas, es decir, desde la mas automatica y facil pero poco controlada e integral, hacia la mas dificil pero mas elaborada, controlada y modificable, estos casos solo aplican a cuando se tiene las fuentes ya preparadas para una replicacion de paquetes tipo debian, no a fuentes tarballs estandars, externas o fuentes linux puras o sin instraladores.

  • ADVERTENCIA: CONTRARIO A LO QUE DICEN MUCHOS "EXPERTOS" Y USUARIOS LINUX YA EXPERIMENTADOS, NO RECOMIENDO A NADIE QUE ESTE USANDO LINUX PARA JUGAR, MULTIMEDIA O TRABAJO PONER SU SISTEMA COMO UNO DE ENTORNO PARA DESARROLLO, el poner librerias y paquetes de desarrollo hace mas lento linux, ya que carga componentes extra de seguimiento y compilacion para las aplicaciones involucradas. ES RECOMENDABLE QUE INSTALE EN UN DISCO NUEVO o use pbuilder solamente.
  • SI DISPONE DE UNA AMD64 CORE DUO, 1Gb RAM y targeta de video con driver empaquetado desde debian o en unisono con apt, NO HAY PROBLEMA ya que el rendimiento solo se vera afectado en un 12% aprox segun lo que estudie con las maquinas de mi trabajo (P4 2.8GHz, 512Mb RAM , VIA Unichrome 64Mb )
  • SI EJECUTA APLICAIONES MUY PESADAS ( CUBE CON VARIOS CLIENTES por ejemplo) o la maquina es un servidor NO LO HAGA!

REQUERIMIENTOS DE HARDWARE:

500Mb +/- espacio aproximadamente

instalacion unica sin particionamiento (no /grub /home /usr /var or LVM )

ReiserFS o JFS para la particion desarrollo

NO LVM, no configurar un LVM, sino asumase como experto y deje de leer (creo es ovbio porque)

Debian puro y duro, sino vete a juga con guin.. digo con ubuntu

PAQUETES ESENCIALES QUE YA DEBE TENER DE RECOMENDADO

pbuilder

debootstrap

build-essencial

x-dev / xorg-dev

debmake

fakeroot

dpkg-dev

sudo

main-guide / main-guide-es

devscripts

cvs

subversion

patch

dh-make

autoconf

automake

PAQUETES EXTRAS QUE PODRIA NECESITARSE EN CASO ESPECIAL

cvs-buildpackage

lintian / linda

debget

ssh / openssh-server , openssh-client

wdiff

cowdancer

patch-utils

chekinstall (use vnz PICCORO packs)

COMENZANDO

instala debian, instala vi, nano. si ya estaba, perdon por la desconfianza, pero aun existe mucha gente descarriada.

revisar si se tiene suficiente espacio, los 500Mb son suficientes ya que pbuilder instalara una especia de sistema alterno y este tendra solo un sistema base y los paquetes relativos al desarrollo especifico.

instalar los paquetes esenciales, un apt-get seguido de los nombres exactos que se mencionan y listo, ejemplo:

apt-get install pbuilder debootstrap build-essencial debmake fakeroot dpkg-dev sudo

llegando un poco mas alla se introduce otro comando asi y se llena todos los paquetes esenciales para desarrollo minimo:

apt-get install devscripts cvs subversion patch dh-make autoconf automake dh-make

CONFIGURANDO

todo lo requerido esta listo, ahora debemos indicar el sistema base a instalar, si se quiere todo con paquetes extras debera instalar el paquete "cdebootstrap" pero para tener solo lo necesario debera usar "debootstrap" y especificarlo en el pbuilderrc.

PARA PBUILDER: con 'vi' o 'nano' editar '/etc/pbuilderrc' en las ultimas lineas asi:

" vi /etc/pbuilderrc " o " nano /etc/pbuilderrc "

cerca de las lineas indicadas aqui que estan casi al final, cambiar "cdebootstrap" por "debootstrap" asi:

# The name of debootstrap command.

DEBOOTSTRAP="debootstrap"

si se usa "cdebootstrap" se usara un entorno completo debian, si se usa "debootstrap" se usara solo un entorno relativo a lo que necesite cada paquete a construir.

a este punto todo esta listo para comenzar a ejecutar comandos, que bueno no! COMANDOS! je je...

PARA DPKG-DEV Y DH-MAKE:se debe tener muy bien definido el entorno, y es buena practica tener versiones estables pero no tan nuevas de los paquetes instalados, ya que a diferencia y desventaja depbuilder este sistema mas manual, usa las librerias y cabeceras de desarrollo directas desde el sistema instalado, pero por contrario como ventaja, es mas detallado y configurable, aparte de que no ocupa espacio tanto como pbuilder. Pero lo mas importante es que de esta manera es la mas viable para mezclar y hacer paquetes de versiones mas actuales de soft que funcionen con las versiones viejas existentes en el sistema, cosa que con pbuilder comienza a ser un poco fuera de las manos.

CASO 1 USANDO PBUILDER Y UN bootstrap de debian

 

PREPARANDO EL ENTORNO

se crea el sistema base o el sistema a usar, este contendra el entorno tipo "chroot" donde se construiran los paquetes asi:

" sudo pbuilder create --debootstrapopts --arch --debootstrapopts i386"

lo cual tardara bastante asi que vayan a ver dragon ball z un rato para variar o "maluko" digo.. naruto... no mejor naruto no porque tarda aun mas ...

La opcion "i386" indica que construiremos para arquitectura x86, si se requiere para amd64 usar asi:

" sudo pbuilder create --debootstrapopts --arch --debootstrapopts amd64"

despues, se tendra el sisteam en un tar.gz en "/var/cache/pbuilder" esto es para contruirlos, para obtenerlos se necesitan lineas de fuentes que agregaran o pondran en el archivo "/etc/apt/sources.list" y aqui estan unas chimbas ahí para que no se quejen y digan que soy malo:

fuentes para ecth:

deb-src http://mirrors.kernel.org/debian etch main contrib non-free

fuentes multimedia para etch:

deb-src http://ftp.de.debian.org/debian etch main contrib non-free

deb-src http://ftp.mgts.by/debian-multimedia/ etch main

 

para agregar las lineas de fuentes es asi:

echo "deb-src http://mirrors.kernel.org/debian etch main contrib non-free" >> \ /etc/apt/sources.list

por cada linea hacer lo mismo.una vez insertes las lineas deseadas, actualizas asi:

" apt-get update "

COMENZANDO A CONSTRUIR

una vez configuradas las fuentes, hasta este punto tenemos, los requerimientos, el entorno pbuilder y las fuentes desde donde compilar, entonces debemos bajar que deseamos compilar, en este caso deseo compilar un sofware que llamare "pokemongolic-detector" que tal!

nuestro soft en debian (suponiendo que existe) se llamara "pokemongolic-detector" entonces bajaremos de las fuentes dicho soft asi:

" apt-get source pokemongolic-detector "

ahora una vez descargados las fuentes necesarias (descargara tres archivos, el diff que es el parche, el dsc que describe, y el tar.gz que son las fuentes)

y este es el paso mas ubun.. digo.. y este es el paso mas guindonwisado, el que lo hace todo todito, una simple linea y esta todo construido, asi:

" sudo pbuilder build pokemongolic-detector.dsc "

esto construira todos los paquetes y sus derivados, en la mas pura politica debian, si la linea no sirve se puede construir asi (puede ser bruta esta forma pues compilara todo lo que encuentre, pero tambien los necesarios):

" sudo pbuilder build *.dsc "

esto fabricara todos los paquetes de las fuentes que esten ya descargadas.

RESULTADOS FINALES

 

El paquete resultante o los paquetes construidos estaran en el directorio "/var/cache/pbuilder/results"

OPCIONAL: USANDO PBUILDER Y PAQUETES DE DISTINTA VERSION DE RAMA:

Cuando se quiere usar un paquete que no esta en la verson actual del sistema (por ejemplo uno de etch en sarge) se puede compilar y empaquetar uno especial, pero para que pbuilder lo construya se usa dget. Este viene con el paquete "devscripts" ( >= 2.9 ) si se desea usar en sarge se debera descargalo de backports o usar un mirror fuente apt-get de backports.org.

ahora imaginemos la version testing de "oppenmortal-testin" que no esta en la distro siquiera, solo debo ir a la pagina del paquete y ver el link del 'dsc' y copiarlo en la linea de comandos para usarlo con dget asi:

" dget http://xxx.yyy.zzzz/paqueteficticio/openmortal-testing.dsc "

la parte de esta linea de comandos que reza "http://xxx.yyy.zzzz/paqueteficticio/openmortal-testing" es el link que se supone copiaran o buscaran o leeran desde la pagina del paquete, en debian este link aparece tanto abajo como a la derecha mostrando las fuentes originales del paquete.

una vez descargado se procede igual que lo anterior esplicado, la misma linea:

" sudo pbuilder build openmortal-testing.dsc "

(OPCIONAL no usar sino solo que sepas que haces) fuentes para testing:

deb-src http://mirrors.kernel.org/debian lenny main contrib non-free

deb-src http://www.debian-multimedia.org sid main

NOTA: bpuilder funciona igual que apt-get, aqui el mas nuevo es el mejor (super estupido no pero que se hace) las puse testing porque se quiere algo actual pero no tan nuevo.

RAZON: esto es porque a veces un paquete requiere otro paquete, lo cual comienza a tornar el sistema en un gran hibrido sin orden de releases estables, testing y unstables.

 

 

0 comments/comentarios:

Publicar un comentario

si vienes de guindo, winbuntu o parecido, limitate y escribe algo util...