jueves, 26 de diciembre de 2013

Como compilar en Puppylinux

A eso que le llaman compilar, textualmente wikipedia dice
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.
Bien ahí, yo se que muchos han leído el concepto y claro tienen conocimiento compilando en distribuciones linux pero, como se compila en Puppy?

Hay que tener en cuenta ciertas cosas que nos van a ayudar a tener éxito en la compilación de una aplicación.

1-Los devx
Que no son otra cosa que el paquete que contiene las herramientas de compilación por lo general se ofrecen en paquetes aparte para no hacer mas grande el tamaño de la iso y en compresion .sfs.

2-Las librerias
Dependiendo de la versión de Puppy que tengas instalada asi seran las libreriar que necesites
Slacko = librerías slackwae
Lucid = librería ubuntu 10.04
Precise = librerías Debian wheezy o Precise Pangolin de Ubuntu

3-El código fuente de la aplicación
Hay muchos servidores que ofrecen su código fuente Github, Sourceforge entre otros.

Dependiendo de la versión de puppy que uses puede que la presencia o ausencia de librerías varie de una versión a otra así que para saberlo abrimos el ppm y buscamos esa librería y ahí veremos que ya esta instalada, si no a buscarla se ha dicho ya sea en la misma interface PPM o en algún repositorio de librerías de Debian o Ubuntu (si fuera el caso de algún Puppy derivado de esas distros)

El archivo INSTALL Y README
Los sources codes o codigos fuente de las aplicaciones traen instructivos que te van guiando como o que comandos hacer para poder compilar, estos instructivos o tutoriales vienen en estos tipos de archivos, generalmente escritos en ingles, si no sabes ingles tendrás que valerte de cualquier traductor, pero es vital que leas la info ya que eso ahorra que des vueltas tratando de averiguar como

Bien ya tenemos la teoría ahora tratemos de compilar algo, veamos algo interesante y que cualquier linuxero usa es Conky ( Un monitor de estado )

Primero vamos a googlear hasta dar con el codigo fuente.
escribo en el buscador Conky source codes.
 http://conky.sourceforge.net/   
Bien lo encontre aqui ahora leemos un poco y buscamos la ultima versión estable como pueden ver es la que está de color rojo ( Seguramente ese proyecto se lleve en Github) pero para el ejercicio con este bastará.


Lo descagamos y descomprimimos.
En puppy basta con darle click al archivo y se descomprime seguramente ya sabes como hacerlo desde linea de comandos.





Ahí esta como puedes ver, también tienen sus archivos readme e install, a leer un poco
El archivo readme tenia un listado de comandos para conky y el archivo install como compilarlo

Sobre los flags ( viñetas de compilación )
Los flags son opciones previas que puedes darle a una compilación para optimizar su proceso entre algunas de ellas están.
El directorio prefijado donde quieras compilar    --prefix=/Directorio
Habilita o deshabilita alguna característica           --enable-FEATURE  --disable-FEATURE
Hay mas pero mejor tratemos de compilar "Manos a la obra"

Quiero compilar conky con todos los problemas que me presente en la actual versión que estoy usando
Puppy-es_os Badass.
nos movemos al directorio del paquete
 cd /root/Downloads/conky-1.9.0
Haré un listado para ver los archivos
ls
└─[Badass][$] ls
aclocal.m4  compile       configure        data     INSTALL     m4           NEWS       TODO
AUTHORS     config.guess  configure.ac     depcomp  install-sh  Makefile.am  README
autogen.sh  config.rpath  configure.ac.in  doc      ltmain.sh   Makefile.in  src
ChangeLog   config.sub    COPYING

Ok estamos listos ahora vamos a compilar usando algunos flags que encontré en otros tutoriales

./configure --disable-mpd --disable-moc --enable-wlan --enable-imlib2 --enable-lua-cairo --enable-lua-imlib2

Si tuvieras tarjeta de video nvidia puedes agregar este comando

./configure --disable-mpd --disable-moc --enable-wlan --enable-imlib2 --enable-lua-cairo --enable-lua-imlib2 --enable-nvidia

Bien luego enter a ver que sucede.

 checking for LUA... no
checking for LUA51... no
checking for LUA51... configure: error: Package requirements (lua5.1 >= 5.1) were not met:

No package 'lua5.1' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LUA51_CFLAGS
and LUA51_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.


Bien al parecer necesito las librerías LUA51 y que también puedo ajustar esa variable con el comando LUA51_CFLAG y LUA51_LIBS, pero quiero mi conky completo asi que vamos a buscarlas

Ok encontré liblua5.1.0 dev que me servirá para compilar conky, la descargo, instalo y a ver que pasa, la pueden buscar tanto en google como en el administrador de paquetes.





Como pueden ver tengo un check en DEV para que el administrador de paquetes apunte al las librerías de desarrollo.

 ./configure --disable-mpd --disable-moc --enable-wlan --enable-imlib2 --enable-lua-cairo --enable-lua-imlib2 

Ahora me dice esto:
 checking for LUA51... yes
checking for cairo... yes
checking for cairo_xlib... yes
checking for tolua++... no
checking for tolua++5.1... no
checking for tolua++-5.1... no
configure: error: tolua++, tolua++5.1, or tolua++-5.1 is required for Lua extras.


Ahora a buscar esas librerías tolua++5.1
El ppm no encontró ninguna coincidencia así que la buscare en otra parte.

Bien la encontré en el repo de Debian wheezy

Ahora de nuevo a compilar.
  
 ./configure --disable-mpd --disable-moc --enable-wlan --enable-imlib2 --enable-lua-cairo --enable-lua-imlib2

No voy a postear todo lo que compilo sólo la ultima parte.


conky 1.9.0 configured successfully:

 Installing into:   /usr/local
 System config dir: ${prefix}/etc
 C compiler flags:        -I/usr/include/lua5.1       -I/usr/include/freetype2   -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -Wall -W
 Libraries:         -liw  -lncurses -lm -lX11   -lImlib2    -llua5.1   -ltolua++5.1   -lXext   -lXdamage -lXfixes   -lXft   -lglib-2.0   -lasound -lrt -ltolua++5.1
 Linker flags:       -Wl,-O1

 * X11:
  X11 support:      yes
  XDamage support:  yes
  XDBE support:     yes
  Xft support:      yes
  ARGB support      yes

 * Music detection:
  Audacious:        no
  BMPx:             no
  MPD:              no
  MOC:              no
  XMMS2:            no

 * General:
  math:             yes
  hddtemp:          yes
  portmon:          yes
  RSS:              no
  Curl:             no
  Weather
    METAR:          no
    XOAP:           no
  wireless:         yes
  IBM:              no
  nvidia:           no
  eve-online:       no
  config-output:    yes
  Imlib2:           yes
  ALSA mixer:       yes
  apcupsd:          yes
  I/O stats:        yes
  ncurses:          yes

 * Lua (yes) bindings:
  Cairo:            yes
  Imlib2:           yes

bien ya esta el tema de ./configure
ahora hacemos el comando make

make

El proceso tarda de acuerdo al tipo de maquina que tengas.

Ahora procedemos a instalar, si quieres compartir el paquete con otros puedes instalar fuera del sistema y despues crear el paquete pet ( explicare como crear un paquete .pet de forma detallada en próximos tutoriales)
Bueno como te decia, si quieres insatalar en el sistema haces el comando
make install 
Y si deseas crear un directorio para después hacer un paquete escribes 

make install DESTDIR=/tmp/conky-1.9.0 

Donde DESTDIR significa directorio de destino
/tmp/  una carpeta temporal 
y conky-1.9.0 el directorio se va a crear dentro de esa carpeta 

Ok nos vamos a ese directorio y veremos si esta presente. 

cd /tmp

Y si , efectivamente hemos creado un directorio que contiene todos los archivos necesarios para crear un .pet, creamos el pet, instalamos y buscamos algun tema conky con lua para nuestro sistema.

 

No es un conky de campeonato pero acepta imagenes propio de las librerías Lua.

Gracias y nos leemos en la próxima.


1 comentario:

  1. por fin veo como se hacen los pets gracias x el tutorial me servira x que quiero aprender para apoyar un poco a la comunidad n.n

    ResponderEliminar