[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

[Ayuda] Re: [Ayuda] Re: [Ayuda] Re: [Ayuda] Re: [Ayuda] Re: Nuevo en Linux - ¿que es mejorLinux o Wi ndo



Octavio Ruiz (Ta^3) wrote:

Ivan Caballero Cano, who happens to be smarter than you, thinks:
Pues es que desgracidamente ese "mugroso programa" con problemas de dependencias se puede llegar a convertir realmente en una pesadilla.
Los linuxeros no me dejaran mentir, en ocaciones instalar esas dependencias representa un problema complicado.
Existen miles de lista de correos y foros donde mucha gente expresa que tiene problemas para instalar dependencias.
Tampoco quieras llamarme tonto por que no se instalar dependencias, en muchas ocaciones no basta con instalarlas y listo. y tu lo sabes
tampoco no te la jales.

Quejate particularmente de tu sabor de Linux, no del núcleo o
particularmente de Linux. Me pregunto a mi mismo, ¿desde hace
cuanto tiempo no tengo problemas con resolución de dependencias?
Muchísimo tiempo. ¿Hace cuanto que no uso una distribución basada en RPM?
Posiblemente esa sea la respuesta a la primera pregunta.
Una distribución basada en rpm es la consecuencia de una distribución basada en src.rpm.

Linux es muy distinto a los sistemas operativos comerciales en cuanto a que no hay un control a nivel binario de las librerías que deben estar instaladas y los símbolos que exportan esas librerías; en ese aspecto Linux es exageradamente heterogéneo y de ahí surge el problema de que cuando quieres instalar algún paquete externo a tu distribución tengas problemas de dependencias no resueltas.... Pero eso es por querer trabajar con Linux de la misma manera que con cualquier sistema operativo comercial con control de binarios. Linux es distinto.

En Linux no puedes tener control de paquetes a nivel binario porque Linux es muy heterogéneo, pero una historia muy distinta sucede con el control de paquetes a nivel de código fuente que es lo que permite la existencia de distribuciones tan mutantes como Gentoo pero no se limita a distribuciones basadas en ebuilds; el mismo principio ha sido aplicado a distribuciones basadas en rpm durante muchos años pero sólamente algunos pocos iniciados practican esas artes.

La receta es la siguiente:
1. Si tu paquete externo está disponible sólamente en binario y no hay otra cosa pues ya te chingaste, te queda esperar que tanto tu paquete como tu distribución sean "LSB compliant" y sepan convivir en paz.... 1.1 Si te salen solicitudes de dependencias los Linux modernos ya tienen herramientas para resolverlas e instalar todos los paquetes que necesitas (apt-get (Debian), portage (Gentoo), Up2date (Red Hat), Yum (Yellowdog, Fedora, CentOS), urpmi (Mandrake), yast2 (SuSE)). Todas ellas (en su respectiva distribución) tienen la capacidad de resolver dependencias e instalar los paquetes necesarios de manera autimática. La pesadilla de las dependencias no resueltas queda sólamente como una anécdota de la historia. 2. Si tu paquete externo está disponible en src.rpm lo puedes recompilar con rpmbuild --rebuild (Red Hat, Fedora, CentOS) o rpm --rebuild (otras distros basadas en rpm) y de esa manera vas a obtener paquetes rpm compilados para tu arquitectura y para tu distribución (con todas las mutaciones que tengas), ligados contra tus librerías de tal manera que todos los síbmolos que necesita el ligador binario dinámico (ld.so) para hacer su trabajo estarán resueltos a su satisfacción y no tendrás problemas para correr las aplicaciones que vienen en tu paquete. 2.1 Si te salen solicitudes de dependencias etenes herramientas para resolverlas e instalar los paquetes necesarios. 2.2 Si por alguna razón el paquete no quisiera compilar (algunas veces sucede) puedes instalar tu paquete con rpm -Uvh paquete.src.rpm, buscar el spec y editarlo para resolver los problemas de compilación. Luego recompilas tu paquete con rpmbuild -ba paquete.spec (Red Hat and sons) o rpm -ba paquete.spec (los otros). En realidad no es tan difícil editar un spec, solo déjate llevar por los nombres de las secciones unpack, compile, install,... .... lo que hay dentro de las secciones es como un shell script con la expansión de algunas macros. 3. Si tu paquete externo viene en formato tar.gz existe la probabilidad de que dentro contenga un spec de rpm de tal manera que podrías compilarlo con rpmbuild -ta paquete.tar.gz (Red Hat and sons) o rpm -ta paquete.tar.gz (los demás) y obtendrías tus paquetes rpm para instalar en tu sistema.

4. Si tu paquete externo en código fuente solo lo encuentras en formato tar.gz hay posibilidades de que buscando en rpm.pbone.net lo encuentres en rpm para tu distro/arquitectura y si no pues en src.rpm para que lo compiles para tu combinación de distro/arquitectura+mutaciones.


Espero haber aclarado el problema de la compatibilidad a nivel binario en Linux y la resolución de dependencias. Si piensan que es demasiado complicado piensen que es el costo de la portabilidad. Linux es un sistema operativo portable.

Un saludo.

Sandino Araico Sánchez
--
Puede que no esté de acuerdo con lo que dices.
Entonces daré mi opinión hasta el cansancio,
ya que tengo el mismo derecho que tú......





[Hilos de Discusión] [Fecha] [Tema] [Autor]