a cabezazos: sigo sin poder compilar

Bueno machos, me encanta Ubuntu, de verdad, y creo que me encanta por los repositorios tan buenos que tiene. Pero en cuanto necesito un programa que no está en los repositorios la cagamos, Carlos, soy incapaz de compilar.

Por favor, os pido consejo, a ver si por fin soy capaz de instalarme los programas que no estén en los repositorios.



Hoy, por ejemplo, he bajado el applet RSS para el panel de Gnome. Al descomprimirlo esto es lo que hay en el directorio:

bou@Bou:~/gnome_rss_applet-0.1a$ ls
gnome_rss_applet GNOME_RSSApplet.xml gnome-rss.png rssfeed.py
GNOME_RSSApplet.server gnome_rss.glade INSTALL rssfeed.pyc
bou@Bou:~/gnome_rss_applet-0.1a$


no hay configure, no hay nada. de todos modos, voy a probar el método estándar:

bou@Bou:~/gnome_rss_applet-0.1a$ ./configure
bash: ./configure: No existe el fichero o el directorio


OK. Voy a probar a ejecutar el único script que hay, el INSTALL.

bou@Bou:~/gnome_rss_applet-0.1a$ sudo sh INSTALL
mkdir: no se puede crear el directorio «/usr/lib/python2.3/site-packages/rss_applet»: No existe el fichero o el directorio
touch: no se puede efectuar `touch' sobre «/usr/lib/python2.3/site-packages/gnome_rss/__init__.py»: No existe el fichero o el directorio
cp: «/usr/lib/python2.3/site-packages/gnome_rss»: el directorio objetivo especificado no existe
Pruebe `cp --help' para más información.
mkdir: no se puede crear el directorio «/usr/share/rss_applet»: El fichero existe


Ahí me he quedado... como éste mil casos, pero bueno a ver si poco a poco voy aprendiendo. ¿Qué he hecho mal?
¿ Quiza porque INSTALL sea un fichero con instrucciones ?
Es un programa escrito en python.

¿Tienes instalados los requisitos?

Requirements:

    * Python
    * PyGTK with GNOME bindings
    * Feedparser


¿Has probado a hacer un '$./gnome_rss_applet' o un '$python gnome_rss_applet'?
Ferdy escribió:¿ Quiza porque INSTALL sea un fichero con instrucciones ?


/me slaps Ferdy

Sieeeeeeeeeempre igual con tus respuestas :PPP

Bou, como dice ferdy, el archivo INSTALL es un archivo de texto con las instrucciones de la compilación, asi que leelo y dinos que tal :).

PD: Si te gusta ubuntu por sus repos, gentoo te encantara, porque portage lo tiene casi todo, mucho mas que lo que hay en ubuntu :PPP, y si no está, es añadible :).

Un saludo.
Entiendo bien poco de ejecutables, pero a mí desde luego me ha parecido un ejecutable al abrirlo:

#!/bin/sh

#install feedparser from feedparser.org

cp gnome_rss_applet /usr/lib/gnome-panel
cp gnome-rss.png /usr/share/pixmaps
cp GNOME_RSSApplet.server /usr/lib/bonobo/servers
cp GNOME_RSSApplet.xml /usr/share/gnome-2.0/ui
mkdir /usr/lib/python2.4/site-packages/rss_applet
touch /usr/lib/python2.4/site-packages/gnome_rss/__init__.py
cp rssfeed.py* /usr/lib/python2.4/site-packages/gnome_rss
mkdir /usr/share/rss_applet
cp gnome_rss.glade /usr/share/gnome_rss


Y creo que el problema se basa en #install feedparser from feedparser.org, así que procedo:

Bajo, descomprimo, abro el README.

Universal Feed Parser

Parse RSS and Atom feeds in Python. 2000 unit tests. Open source.



Copyright 2002-4 by Mark Pilgrim

Python-licensed

-----



To install:

$ python setup.py install




Full documentation is available in the docs/ directory, or online at

http://feedparser.org/docs/


Clarito y facilito. Abro una consola y tecleo:

bou@Bou:~/feedparser$ sudo python setup.py install
running install
error: invalid Python installation: unable to open /usr/lib/python2.4/config/Makefile (No such file or directory)


Y aquí es donde empiezo a comerme las uñas.
A lo mejor digo una tonteria pero....has probado:
sudo aptitude install python
Entiendo bien poco de ejecutables, pero a mí desde luego me ha parecido un ejecutable al abrirlo:


Y claramente lo es. Que por otro lado es estúpido porque por convenio los ficheros INSTALL, README, ... son instrucciones.

Mea culpa

Saludos.Ferdy
Vorlander escribió:A lo mejor digo una tonteria pero....has probado:
sudo aptitude install python


Sí, te adjunto el resultado que me dio:

bou@Bou:~$ sudo aptitude install python
Password:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Se han retenido los siguientes paquetes:
acpi-support gtk2-engines-pixbuf libgnutls11 libgtk2.0-0 libgtk2.0-bin
libgtk2.0-common libgtk2.0-dev openoffice.org2 openoffice.org2-base
openoffice.org2-calc openoffice.org2-common openoffice.org2-core
openoffice.org2-draw openoffice.org2-evolution openoffice.org2-gnome
openoffice.org2-help-en-us openoffice.org2-help-es
openoffice.org2-impress openoffice.org2-java-common
openoffice.org2-l10n-en-us openoffice.org2-l10n-es openoffice.org2-math
openoffice.org2-writer python-uno ttf-opensymbol wine
0 paquetes actualizados, 0 nuevos instalados, 0 para eliminar y 26 sin actualizar.
Necesito descargar 0B de ficheros. Después de desempaquetar se usarán 0B.
Escribiendo información de estado extendido... Hecho
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho


Vamos que NO.

Ferdy, la verdad es que no se me había ocurrido pensar que los ejecutables eran simplemente instrucciones. Bueno, sí pero para el ordenador, no para el usuario XD algo he aprendido de momento, gracias.

¿Alguna idea?
¿Quizá necesita la versión 2.4 del intérprete de python y sus bibliotecas y la versión instalada es una anterior?

Saludos
Por una parte en el INSTALL pone:

mkdir /usr/lib/python2.4/site-packages/rss_applet

por otra, el error que te da es

mkdir: no se puede crear el directorio «/usr/lib/python2.3/site-packages/rss_applet»: No existe el fichero o el directorio

es raro que en un sitio ponga 2.3 y en el otro 2.4.

De todas formas, mira a ver si tienes algún directorio /usr/lib/python2.4 (o 2.3, la versio que te sale en el script)

si no lo tienes, haz un apt-get install python2.4 a ver si lo tienes instalado.
Bou escribió:
Sí, te adjunto el resultado que me dio:

Vamos que NO.

¿Alguna idea?


prueba un :
aptitude search python, y luego haz un aptitude install con el nombre exacto del paquete que contenga el python completo

A ver si me ayudais a mi con mi problema de kernel [oki]

compilando el kernel de Ubuntu








-
Alberich escribió:es raro que en un sitio ponga 2.3 y en el otro 2.4.

De todas formas, mira a ver si tienes algún directorio /usr/lib/python2.4 (o 2.3, la versio que te sale en el script)


Sí tengo instalado python 2.4, y existe el directorio. ¿Modifico el script para que donde pone 2.3 ponga 2.4? ¿Está mal escrito el script, o qué pasa? :?



P.D. de todos modos, como requiere que instale feedparser, lo que más me urge es el error del propio feedparser, que tampoco me lo compila:

bou@Bou:~/feedparser$ sudo python setup.py install
running install
error: invalid Python installation: unable to open /usr/lib/python2.4/config/Makefile (No such file or directory)


¿Realmente compilar es tan jodido, o es culpa mía que no sé, o es que estas cosas sólo me pasan a mí? Porque cada vez que intento compilar me da errores raros...
Yo probaría instalando el python2.4-dev. Si algo me casca porque falta loquesea, instalo el paquete loquesea-dev. Son las librerias necesarias para compilar algo basado en loquesea. XD

En cuanto al script, prueba a cambiar el 2.3 del script por el 2.4, o a instalalar el python2.3 (siempre y cuando al hacer apt-get no te diga que va a desinstalar el 2.4)

Cuando vas a compilar algo, es muy común que diga que falta esto o aquello. Pero se soluciona instalando las librerías correspondientes.
Bueno, parece que instalando el -dev sí ha podido compilar feedparser:

bou@Bou:~/feedparser$ sudo python setup.py install
running install
running build
running build_py
creating build
creating build/lib
copying feedparser.py -> build/lib
running install_lib
copying build/lib/feedparser.py -> /usr/lib/python2.4/site-packages
byte-compiling /usr/lib/python2.4/site-packages/feedparser.py to feedparser.pyc


A ver si instala el otro paquete.

Edito: he modificado el INSTALL para dejarlo así:

#!/bin/sh

#install feedparser from feedparser.org

cp gnome_rss_applet /usr/lib/gnome-panel
cp gnome-rss.png /usr/share/pixmaps
cp GNOME_RSSApplet.server /usr/lib/bonobo/servers
cp GNOME_RSSApplet.xml /usr/share/gnome-2.0/ui
mkdir /usr/lib/python2.4/site-packages/rss_applet
touch /usr/lib/python2.4/site-packages/rss_applet/__init__.py
cp rssfeed.py* /usr/lib/python2.4/site-packages/rss_applet
mkdir /usr/share/rss_applet
cp gnome_rss.glade /usr/share/rss_applet


Y parece que se instala, pero al querer añadir el applet me sale este mensaje de error:

Imagen

Así que vuelvo a cambiar el script:

#!/bin/sh

#install feedparser from feedparser.org

cp gnome_rss_applet /usr/lib/gnome-panel
cp gnome-rss.png /usr/share/pixmaps
cp GNOME_RSSApplet.server /usr/lib/bonobo/servers
cp GNOME_RSSApplet.xml /usr/share/gnome-2.0/ui
mkdir /usr/lib/python2.4/site-packages/gnome_rss
touch /usr/lib/python2.4/site-packages/gnome_rss/__init__.py
cp rssfeed.py* /usr/lib/python2.4/site-packages/gnome_rss
mkdir /usr/share/gnome_rss
cp gnome_rss.glade /usr/share/gnome_rss


Aquí no me da error:

http://img360.imageshack.us/img360/2888/pantallazopregunta5vp.png


Yyy... parece que funciona. A ver si es así.


¡Funciona! [oki] ¡Oleeeeeee!







Bueno, he encontrado otro applet que hace lo mismo pero parece que es mejor, estoy intentando compilarlo. Ésta es la página, y éstas las instrucciones de instalación:

for common installation...

./configure --prefix=/usr
make
sudo make install


Sin embargo, al ejecutar el primer comando me dice lo siguiente:

(...)checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for pkg-config... /usr/bin/pkg-config
checking for pygtk-2.0 >= 2.4.0... Package pygtk-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `pygtk-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'pygtk-2.0' found
configure: error: Library requirements (pygtk-2.0 >= 2.4.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.


Lo de que no se ha encontrado X en la ruta me lo ha dicho ya en más de una ocasión... no sé si tengo pygtk instalado, en los repositorios desde luego no está. A no ser que se refiera a python2.4-gtk2, que sí lo tengo instalado.

¿Qué hago? :?
Mira si la version del pygtk que tienes instalado es superior a la 2.0 :)
Errr ¿me puedes decir qué comando tengo que introducir para eso? Gracias.
Existe dicho comando, pero no lo sé. Mejor ve al synaptics y busca el archivo en cuestion y al lado sale la version :PPP.

Un saludo.
Fox escribió:Existe dicho comando, pero no lo sé. Mejor ve al synaptics y busca el archivo en cuestion y al lado sale la version :PPP.

Un saludo.


Por eso lo digo, en synaptic no aparece, no está en los repositorios.

A no ser que se refiera a python2.4-gtk2, que sí lo tengo instalado.


Por cierto, según el INSTALL:

Requirements:
- Python 2.3 or greater (http://www.python.org/)
- Boost python libraries (http://www.boost.org)
- PyGTK 2.4.0 or greater (http://www.pygtk.org/)
- gtkmm 2.4.8 (http://www.gtkmm.org/)
- gthread-2.0 (http://www.gtk.org/)


Y al menos 2 de ellos no aparecen en los repositorios, ¿es normal tener que ir a la caza y captura de librerías cada vez que se quiere instalar un programa? Lo pregunto sin maldad, pero me parece una desventaja de Linux importantísima respecto a Windows... a no ser que sea culpa mía, claro. A ver si podéis aclarármelo.
Cualquier distribución que se precie las tiene.

Saludos.Ferdy
Ahora intento instalar gtkmm (oootra de las dependencias que me pide) y al hacer ./configure me dice esto:

checking for ATKMM... configure: error: Package requirements (glibmm-2.4 >= 2.6.0 atk >= 1.9.0) were not met.


¿Tengo que recorrerme todo el árbod de dependencias y compilarlas todas a mano? [mad] Llevo ya meses defendiendo Linux ante mis amigos windowseros, pero esto si lo ven se parten el ojete en mi cara. Ferdy, o quien sea, recomiéndame qué puedo hacer, por favor.

P.D. El paquete gthread no lo encuentro buscando por google, encuentro 200.000 referencias a gthread pero el paquete en si NO.
---- Disclaimer

Meterse a compilar un paquete requiere algo más que usar Gnome. Requiere entender el proceso de compilación; requiere entender por qué de las dependencias para no decir burradas sin sentido como:

Lo pregunto sin maldad, pero me parece una desventaja de Linux importantísima respecto a Windows... a no ser que sea culpa mía, claro


Ya que la potencia de Linux y Unix en general radica en que las librerías son reutilizables. Requiere, entre otras cosas, entender lo que se está haciendo. No es cosa de los usuarios de a pie preocuparse por compilar software a mano. Para eso están las distribuciones. Si tu distribución tiene más o menos cosas ya es culpa de la distribución y no del sistema operativo en general.

Dicho sea eso, sin maldad, en serio. Y si quieres seguir compilando cosas a mano tienes que tener en cuenta varias cosas:

1) Si no todas las dependencias las tiene tu distribución, te puedes volver tarumba.
2) Si eres capaz de conseguir que todo funcione, todo quedará guarrísimo desperdigado por el sistema de ficheros.
3) Compilar requiere entender varias cosas (ver principio de mi mensaje).

----- Y ahora la chicha

Todas esas dependencias parecen estar en ubuntu, no he mirado versiones concretas ni versiones de la distribución; pero parecen estar. Tienes que recordar siempre que los de debian (y por ende los de ubuntu) son muy anales a la hora de nombrar los paquetes. (gtkmm se convierte en libgtkmm-*).

Acerca de gthread, hay que buscar con cuidado, buscando por 'gthread' en google la segunda URL que da apunta directamente al manual de referencia de glib. Y pone claramente 'Glib Threads' que sorprendente se parede mucho a 'GThread'.

-----

PD: Si realmente quieres que te ayudemos, intenta no soltar joyitas como las de antes. Se que lo has dicho sin maldad (o eso dices); por eso no te he mandado a la mierda a la primera de cambio.

Un saludo y suerte.
Reconozco que tienes razón, donde dije "una desventaja de Linux" digo "una desventaja de Ubuntu", y resalto "a no ser que realmente sea culpa mía", que no lo descarto.

Sin embargo, Ferdy, para el usuario medio (y me incluyo en ese grupo) bajarse un .exe y ejecutarlo es MUCHÍSIMO más práctico que pasarse la tarde buscando dependencias. Soy consciente de las desventajas que acarrea, no me voy a poner a defender Windows, tranquilo. Pero en términos de comodidad me parece una desventaja enorme. Supongo que entiendes mi punto de vista. Yo el tuyo lo entiendo, por eso he especificado que "me parece" una desventaja, no que lo sea.

En todo caso, no quiero convertir el hilo en una discusión Linux vs. Windows, creo que todos aquí tenemos muy claro qué preferimos. Si he soltado la "joyita" ha sido por un momento de mala leche, que creo que es comprensible.

El hilo lo he abierto para que me echéis una mano, a ver si por fin le pierdo un poco el miedo a esto de compilar cualquier cosa que no encuentre en los repos.

Respecto a lo que comentabas de los repositorios y los nombres, creo que sí había por ahí una libgtkmm, pero de versión anterior a la que requiere el programa. En todo caso, ¿me sería de ayuda por ejemplo añadir los repositorios debian a mi lista, a ver si así encuentro los paquetes?
Sin embargo, Ferdy, para el usuario medio (y me incluyo en ese grupo) bajarse un .exe y ejecutarlo es MUCHÍSIMO más práctico que pasarse la tarde buscando dependencias. Soy consciente de las desventajas que acarrea, no me voy a poner a defender Windows, tranquilo. Pero en términos de comodidad me parece una desventaja enorme. Supongo que entiendes mi punto de vista. Yo el tuyo lo entiendo, por eso he especificado que "me parece" una desventaja, no que lo sea.


Es más facil hacer un 'apt-get install blah' o 'emerge blah' o 'yum --install blah' que tener que buscar el .exe, instalarlo, aceptar un EULA de mierda y luego rezar. Por no decir el desperdicio de disco que eso conlleva o los problemas de seguridad que puede tener, o la mala calidad del software (derivado de la no reutilización). Y un largo etc...

El hilo lo he abierto para que me echéis una mano, a ver si por fin le pierdo un poco el miedo a esto de compilar cualquier cosa que no encuentre en los repos


Y creo que lo he intentado :)

Respecto a lo que comentabas de los repositorios y los nombres, creo que sí había por ahí una libgtkmm, pero de versión anterior a la que requiere el programa. En todo caso, ¿me sería de ayuda por ejemplo añadir los repositorios debian a mi lista, a ver si así encuentro los paquetes?


Ni idea.

Saludos.Ferdy
Ferdy escribió:Es más facil hacer un 'apt-get install blah' o 'emerge blah' o 'yum --install blah' que tener que buscar el .exe, instalarlo, aceptar un EULA de mierda y luego rezar. Por no decir el desperdicio de disco que eso conlleva o los problemas de seguridad que puede tener, o la mala calidad del software (derivado de la no reutilización). Y un largo etc...


Suscribo hasta la última coma, instalar paquetes que están en los repositorios es un placer, y mucho más práctico que en win. Ahora, instalar uno que no está... pues por lo que llevo visto es una lotería, puedes encontrarte con cualquier cosa.

Ferdy escribió:Y creo que lo he intentado :)


Lo sé, y te lo agradezco muchísimo.
Ahora, instalar uno que no está... pues por lo que llevo visto es una lotería, puedes encontrarte con cualquier cosa.


Que un paquete no esté en los repositorios puede significar justo eso; que faltan dependencias en los repositorios o que no es tan facil hacerlo funcionar.

Saludos.Ferdy
24 respuestas