TUXROOT – GNU/Linux, una forma de vida

julio 17, 2007

Como compilar con Ubuntu

Filed under: General, Manual, Ubuntu — tuxroot @ 11:19

Visto en Be Linux my friend:

Bien, me estreno con este pequeñito pero muy útil “Howto” de cómo añadirle a vuestro Ubuntu la posibilidad de compilar código fuente. Muchos os preguntareis la utilidad de este proceso, pues bien, os pondré un ejemplo para que entendáis rápidamente la importancia que tiene:

¿Cuántas veces has querido instalar un programa para el que no hay un repositorio .deb y te has quedado con las ganas?

Bueno, pues a partir de ahora ya nos va a dar igual no encontrarlo porque nosotros mismos nos lo vamos a crear. Primero de todo abriremos una consola y en ella escribiremos lo siguiente:

# sudo aptitude install build-essential

Como veis no soy partidario de usar apt-get aunque si alguno lo prefiere pues que lo use. Este comando nos instalara una serie de librerías y paquetes necesarios para poder generar archivos binarios con nuestro GCC presintalado. A partir de este momento ya puedes generarte tus ejecutables y, por lo tanto, transformar un código fuente a un fichero binario interpretable por tu Ubuntu.

El proceso de compilado suele ser más o menos el mismo para todos los programas. Primero deberíais extraer el código (que suele venir en un .tar.gz) a una carpeta. Lo más recomendable después de esto es leerse el típico README para saber cuál seria el proceso indicado para generar el binario. Normalmente primero solemos configurar mediante:

# sudo ./configure

Esto generará una configuración para nuestra máquina que le dira a GCC cómo debe compilar. Acto seguido el paso siguiente, que genera ya el binario y lo instala en el sistema, suele ser:

# sudo make

o

# sudo make install

Como os digo arriba esto depende de cada programa por lo que es esencial leerse en las instrucciones del mismo el cómo compilarlo. Espero que gracias a este pequeño y fácil tutorial no se os resista, a partir de ahora, ningún programa para que no encontréis el paquete precompilado.

Un saludo!

16 comentarios »

  1. Pues mira que soy recien llegado y algo bruto, pero encantado de GNU/Linux, te soy franco no comprendo bien tus istrucciones… por ejemplo: no se donde se escribe eso de ./configure o que significa 😦 para que te des una idea de que clase de ayuda necesito. Muchas gracias, espero tu respuesta. Me imagino que para el que sabe un poco mas que yo es un buen tutorial asi que Felicidades!!!

    Comentario por Gellioth — septiembre 24, 2007 @ 21:47

  2. Hola, todos esos comandos que están escritos en negrita hay que escribirlos en el Terminal.
    Lo encontrarás en Aplicaciones –> Accesorios –> Terminal, es una parte fundamental de GNU/Linux, intenta buscar información en internet, ya que es algo básico.
    También existe otra forma más facil de instalar programas, los que ya están compilados (con extensión .deb) En este maravilloso mundo existen ya repositorios donde puedes descargar la aplicación y después instalarla.
    Echa un vistazo a: http://www.debian.org/doc/manuals/apt-howto/index.es.html
    Para coger practica con el Terminal echale un ojo a: http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=155
    Si tienes alguna duda no dudes en preguntar.
    Saludos !!!

    Comentario por tuxroot — septiembre 25, 2007 @ 6:59

  3. very interesting.
    i’m adding in RSS Reader

    Comentario por music — enero 9, 2008 @ 2:56

  4. QUIEN ME AYUDE LO QUE PASA ES QUE CORRO EL UBUNTU DESDE EL CD SIN PARTIR EL DISCO Y ME SALE UN HERROR AL COMPILAR UN ALGORITMO SOBRE STDIO.H… CREO QUE ME DICE QUE NO EXISTE DIR O LIBRERIA NO SE QUE HACER
    GRACIAS

    Comentario por cristian — mayo 24, 2008 @ 19:19

  5. Hola, muy buen aporte de tu parte, yo queria saber si podrias orientarme con un problemita que tengo, intento instalar superkaramba0.39 en mi kubuntu 8.04 kde 3.5 y despues de empezar con configure me marca esto:
    checking for X… configure: error: Can’t find X includes. Please check your installation and add the correct paths!, podrias ayudarme en google dice que me falta librerias xorg pero no las encuentro por ningun lado ya hize lo que dices aqui y me sigue marcando el mismo error alguna idea?? gracias.

    Comentario por Aldo — junio 8, 2008 @ 22:44

  6. se q no es un foro, pero me podrias ayudar?
    ya estoy en el cd pero cuando pongo “# sudo ./configure” me dice que el fichero o directorio no existe… y no se porque! soy re nueva en ubuntu, estoy bastante emocionada, pero no se mucho todavia

    desde ya muchas gracias

    Comentario por vickytirinita — julio 27, 2008 @ 0:05

  7. Pero por que todos los que tratan de explicar como se compilan los programas en linux dicen lo mismo? ” hacer ./configure o hacer un ¿script? y luego make y despues make install” facil, pero donde????
    en una terminal? algunos dicen en el directorio del archivo pero ¿como abro una terminal en un directorio? o talves sea “sudo (direccion completa del directorio) ./configure”
    o no se.
    Por ejemplo, descargue un driver de sonido realtek, lo descomprimi en el escritorio, pero ahora hago ./configure en el terminal y me pasa lo mismo que a todos : “fichero o directorio no existe” y asta ahi nomas llego, ya no se donde buscar como se hace.
    Por fabor, alguien explique bien como se hace, y no lo hagan con palabras tecnicas ( como lo de hacer un script y cosas asi)recuerden que hay muuuchos principiantes en esto

    Comentario por juan — octubre 12, 2008 @ 1:02

  8. Soy nuevo en Linux (Ubuntu 8.10).

    Intento instalar Babytrans, pero me sale ” /usr/lib/babytrans/engtoger.dic: no existe el fichero o directorio”. Leí en Internet y dicen de bajarse los ficheros .dic, crear una carpeta /babytrans en la ruta señalada y mover esos ficheros a ella. Los bajé, pero resulta que algo no me deja escribir en la carpeta /babytrans (y creo que en ninguna del Sistema de archivos, ya que al hacer click derecho, la opción “copiar a la carpeta” está siempre deshabilitada). Probé con el navegador de archivos, con la terminal y con la terminal “root”, y nada (“no se puede efectuar `stat’ sobre «engtospa.dic»: No existe el fichero ó directorio”). ¿Alguien puede darme alguna idea? Desde ya gracias.

    Comentario por Miguel — noviembre 20, 2008 @ 23:21

  9. Cuando se escribe ./configure es porque debemos estar en el directorio en el que descomprimimos el archivo (por ejemplo con el comando cd /directorio del archivo/) una vez alli usamos configure. Lo mismo aplica para make y make install.

    Comentario por Carlos — febrero 16, 2009 @ 20:39

  10. hola estoy iniciando en linux asi q la verdad es q me cuesta :s yo tengo la duda de q creo mi programa pero como que es lo q tengo q escribir en la terminal? gcc -o arch arch.c … igual en Opensuse …???

    Comentario por lolita — abril 5, 2009 @ 17:33

  11. Normalmente en los binarios de las aplicaciones a instalar suele venir un Readme indicando como realizar la instalación. Seguid esos pasos, serán más o menos estos, quitando alguna excepción que necesitan alguna opción especial de instalación.

    Comentario por tuxroot — abril 5, 2009 @ 20:17

  12. Descompriman la carpeta en el escritorio
    antes de sudo ./configure
    escriban en la terminal : $ cd /home/nombredelacomputadora/Escritorio/nombredelacarpeta/

    Por ejemplo, mi máquina se llama eureka5 y lo que quiero ompilar está en una carpeta llamada “programa” en el escritorio:
    $ cd /home/eureka5/Escritorio/programa/

    Comentario por Kevin — abril 18, 2009 @ 5:33

  13. Estoi viendo que muchos de vosotros estais un poco perdidos en linux,pero no pasa nada.Yo llevo con Ubuntu unos 5 meses y al final ves que lo que era imposible de entender ahora es cotidiano.
    Cuando descargas un programa se descarga normalmente en el escritorio.
    1.Si esta comprimido….Boton derecho sobre el y extraer aqui.
    Se crea una carpeta con el mismo nombre.
    2.Entrar en la carpeta y mirar si hay readme o install para leer las instrucciones de instalacion.
    3.Para ejecutar cualquier comando debes estar en la carpeta que has descomprimido.
    Ej.programa.tar.gz
    Abre un terminal en Aplicaciones,Accesorios,Terminal
    root@remo-desktop:~# cd Escritorio
    root@remo-desktop:~/Escritorio# cd programa
    root@remo-desktop:~/Escritorio/programa#

    Comentario por Remo — octubre 21, 2009 @ 20:03

  14. probando, asi que esta cosa era lo que necesitaa tanto xD

    Comentario por xdrazen — abril 3, 2010 @ 19:57

  15. Hola!! Mi problema es que yo quiero utilizar el paquete estadistico R, y ya que tengo el codigo escrito en Kate no se como compilarlo.
    ¿Tengo que instalar estos paquetes?
    ¿Como compilo mi código?
    Espero su respuestas!!!!!!
    Grax.

    Comentario por Mizra — agosto 28, 2010 @ 20:54

  16. saludos soy novato en linux (ubuntu 8.10) por ahora luego me cambia a la vercion 11.11 oneric ocelot algo asi creo bueno mi problema es que quiero usar un dispositivo usb con chip realtek 8187 y tengo el cd con driver y todo pero estoy acostumbrado a hacer doble click y que se instale solo el programa el driver trae un archivo readme pero no entiendo ni la menor cosa algo de compilar y eso de ahi llegue a tu link via google pues me alludas

    este es el redme

    –This driver supports RealTek RTL8187L Wireless LAN NIC for
    2.6 kernel:
    Fedora Core 2/3/4/5/6/7, Debian 3.1, Mandrake 10.2/Mandriva 2006,
    SUSE 9.3/10.1/10.2, Gentoo 3.1, etc, Ubuntu8.04/8.10.
    2.4 kernel:
    Redhat 9.2, etc
    – Support Client mode for either infrastructure or adhoc mode
    – Support WEP, WPAPSK and WPA2PSK connection

    ======================================================================================
    Component
    ======================================================================================
    The driver is composed of several parts:
    1. Module source code
    ieee80211
    rtl8187

    2. Script ot build the modules
    Makefile

    3. Script to load/unload modules
    wlan0up
    wlan0down

    4. Script and configuration for DHCP
    wlan0dhcp
    ifcfg-wlan0

    5. Supplicant source code:
    wpa_supplicant-0.5.5.tar.gz

    6. Example of supplicant configuration file:
    wpa1.conf

    ======================================================================================
    Installation
    ======================================================================================
    <>
    Runing the scripts can finish all operations of building up modules
    from the source code, installing driver to the kernel and starting up the nic.
    1. Build up the drivers from the source code
    make

    2. Install the driver to the kernel
    make install
    reboot

    3. bring up wlan if nic is not brought up by GUI, such as NetworkManager
    ifconfig wlan0 up
    Note: use ifconfig to check whether wlan0 is brought up and use iwconfig to
    check your wlan interface name,since it may change wlan0 to wlan1,etc.

    <>
    Or only load the driver module to kernel and start up nic.
    1. Build up the drivers from the source code
    make

    2. Load driver module to kernel and start up nic.
    ./wlan0up

    Note: when “insmod: error inserting ‘xxxx.ko’: -1 File exists” comes out
    after run ./wlan0up, please run ./wlan0down first, then it should
    be ok..
    Note: If you see the message of “unkown symbol” during ./wlan0up, it
    is suggested to build driver by <>.

    ======================================================================================
    Set wireless lan MIBs
    ======================================================================================
    This driver uses Wireless Extension as an interface allowing you to set
    Wireless LAN specific parameters.

    Current driver supports “iwlist” to show the device status of nic
    iwlist wlan0 [parameters]
    where
    parameter explaination [parameters]
    ———————– ————-
    Show available chan and freq freq / channel
    Show and Scan BSS and IBSS scan[ning]
    Show supported bit-rate rate / bit[rate]
    Show Power Management mode power

    For example:
    iwlist wlan0 channel
    iwlist wlan0 scan
    iwlist wlan0 rate
    iwlist wlan0 power

    Driver also supports “iwconfig”, manipulate driver private ioctls, to set
    MIBs.

    iwconfig wlan0 [parameters] [val]
    where
    parameter explaination [parameters] [val] constraints
    ———————– ————- ——————
    Connect to AP by address ap [mac_addr]
    Set the essid, join (I)BSS essid [essid]
    Set operation mode mode {Managed|Ad-hoc}
    Set keys and security mode key/enc[ryption] {N|open|restricted|off}

    For example:
    iwconfig wlan0 ap XX:XX:XX:XX:XX:XX
    iwconfig wlan0 essid “ap_name”
    iwconfig wlan0 mode Ad-hoc
    iwconfig wlan0 mode essid “name” mode Ad-hoc
    iwconfig wlan0 key 0123456789 [2] open
    iwconfig wlan0 key off
    iwconfig wlan0 key restricted [3] 0123456789

    ======================================================================================
    Getting IP address
    ======================================================================================
    After start up the nic, the network needs to obtain an IP address before
    transmit/receive data.
    This can be done by setting the static IP via “ifconfig wlan0 IP_ADDRESS”
    command, or using DHCP.

    If using DHCP, setting steps is as below:
    (1)connect to an AP via “iwconfig” settings
    iwconfig wlan0 essid [name] or
    iwconfig wlan0 ap XX:XX:XX:XX:XX:XX

    (2)run the script which run the dhclient
    ./wlan0dhcp
    or
    dhcpcd wlan0
    (Some network admins require that you use the
    hostname and domainname provided by the DHCP server.
    In that case, use
    dhcpcd -HD wlan0)

    ======================================================================================
    WPAPSK/WPA2PSK
    ======================================================================================
    Wpa_supplicant helps to secure wireless connection with the protection of
    WPAPSK/WPA2PSK mechanism.

    If the version of Wireless Extension in your system is equal or larger than 18,
    WEXT driver interface is recommended. Otherwise, IPW driver interface is advised.

    Note: Wireless Extension is defined us “#define WIRELESS_EXT” in Kernel
    Note: To check the version of wireless extension, please type “iwconfig -v”

    If IPW driver interface is used, We suggested to follow the steps from 1 to 6.
    If wpa_supplicant has been installed in your system, only steps 5 and 6 are required
    to be executed for WEXT driver interface.

    To see detailed description for driver interface and wpa_supplicant, please type
    “man wpa_supplicant”.

    (1)Download latetest source code for wpa supplicant or use wpa_supplicant-0.5.5
    attached in this package. (It is suggested to use default package contained
    in the distribution because there should less compilation issue.)

    Unpack source code of WPA supplicant:

    tar -zxvf wpa_supplicant-0.5.5.tar.gz (e.g.)
    cd wpa_supplicant-0.5.5

    (2)Create .config file:

    cp defconfig .config

    (3)Edit .config file, uncomment the following line if ipw driver interface
    will be applied:

    #CONFIG_DRIVER_IPW=y.

    (4)Build and install WPA supplicant:

    make
    cp wpa_cli wpa_supplicant /usr/local/bin

    If make error for lack of , install the openssl lib(two ways):
    1. Install the openssl lib from corresponding installation disc:
    Fedora Core 2/3/4/5(openssl-0.9.71x-xx),
    Mandrake10.2/Mandriva10.2(openssl-0.9.7x-xmdk),
    Debian 3.1(libssl-dev), Suse 9.3/10.0/10.1(openssl_devl),
    Gentoo(dev-libs/openssl), etc.
    2. Download the openssl open source package from http://www.openssl.org, build and
    install it.

    (5)Edit wpa_supplicant.conf to set up SSID and its passphrase.
    For example, the following setting in “wpa1.conf” means SSID
    to join is “BufAG54_Ch6” and its passphrase is “87654321”.

    Example 1: Configuration for WPA-PWK
    network={
    ssid=”BufAG54_Ch6″
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP WEP104 WEP40
    psk=”87654321″
    priority=2
    }

    Example 2: Configuration for LEAP
    network={
    ssid=”BufAG54_Ch6″
    key_mgmt=IEEE8021X
    group=WEP40 WEP104
    eap=LEAP
    identity=”user1″
    password=”1111″
    }

    Note: 1. proto=WPA for WPA, proto=RSN for WPA2.
    2. If user needs to connect an AP with WPA or WPA2 mixed mode, it is suggested
    to set the cipher of pairwise and group to both CCMP and TKIP unless you
    know exactly which cipher type AP is configured.
    3. Low kernel version which is lower than 2.6.18.rc2 may have trouble with
    TKIP heavy traffic while SMP is configured. Please change your security
    cipher or update your kernel.
    4. According to documentaion “wpa_supplicant.conf” provided by the package of
    wpa_supplicant, ap_scan is set to 2 for IBSS connection. If user is trying to
    associate to AP in Infrastructure mode, please unmark this line us as belowing
    “#ap_scan=2”

    (6)Execute WPA supplicant (Assume related modules had been loaded):
    wpa_supplicant -D wext -c wpa1.conf -i wlan0 & (recommended)
    wpa_supplicant -D ipw -c wpa1.conf -i wlan0

    Note: At first, user sholud check Wireless Extension by typing “iwconfig -v”
    on the comment line. If the version of Wireless Extension is equal or
    larger than 18, the option of “-D wext” is suggested. If the version
    of Wireless extension is less than 18, the option of “-D ipw” is
    suggested.

    But before you use “wext” or “ipw” command, you sholud check which drivers
    wpa_supplicant can support by typing command “wpa_supplicant”. after typing the
    comment line, you can see some infomations about wpa_supplicant are listed,
    example:
    —————————————————————————
    usage:
    XXXXXXXXX
    drivers:
    wext = Linux wireless extensions (generic)
    atmel = ATMEL AT76C5XXx (USB, PCMCIA)
    wired = wpa_supplicant wired Ethernet driver
    options:
    XXXXXXXXX
    example:
    XXXXXXXXX
    —————————————————————————
    The driver interface wpa_supplicant can support are listed in “drivers”,
    if “ipw” or “wext” is not listed in it, you can only use the the other interface.
    If the interface you want to use is not supported by wpa_supplicant. you can
    follow steps (1)-(6), And in step (3) you must let:

    CONFIG_DRIVER_IPW=y.
    or
    CONFIG_DRIVER_WEXT=y.
    or both
    CONFIG_DRIVER_IPW=y.
    CONFIG_DRIVER_WEXT=y.

    ======================================================================================
    GPIO methord for Radio On/Off
    ======================================================================================
    1. The Change For Deliverring Power State:

    Now we add the RadioPower.sh script in the driver root path.
    When you run ./wlan0up or make install, this script will be copied
    to /etc/acpi/events. And the driver can deliver the power
    state “RFON” or “RFOFF” into /etc/acpi/events/RadioPower.sh from driver.
    So you can change this script based on the power state RFON or RFOFF.

    2. For Example:

    Now the RadioPower.sh’s content is:
    if[ “$1” = “”RFON ]; then
    echo “===================>Now Polling Method Turn RF ON!” > /etc/acpi/events/RadioPowerTest
    else
    echo “===================>Now Polling Method Turn RF OFF!” > /etc/acpi/events/RadioPowerTest
    fi

    So when you turn on RF using Polling Method, you can see “===================>>Now Polling Method Turn RF ON!”
    using command: cat /etc/acpi/events/RadioPowerTest.

    And when you turn off RF using Polling Method, you can see “===================>>Now Polling Method Turn RF OFF!”
    using command: cat /etc/acpi/events/RadioPowerTest.

    porfa es la unica conexion a internet que tengo y no quiero volver a windows xp

    Comentario por daskmond — noviembre 27, 2011 @ 22:58


RSS feed for comments on this post. TrackBack URI

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: