| Historial de revisiones | ||
|---|---|---|
| Revisión 0.2 | 13 / 03 / 05 | Revisado por: R.A |
| Añadidos varios comentarios aclaratorios. Conversión a DocBook | ||
| Revisión 0.1 | 06 / 03 / 05 | Revisado por: J.L.C |
| Primera versión en castellano basada en la how-to en inglés | ||
Instalaremos los siguientes paquetes desde apt:
ramon@pangeadm:~/$ apt-get install libxml-writer-perl dejagnu flex-old doxygen electric-fence \ libslp-dev libcurl3-dev libstdc++6-dbg libsysfs-dev checkinstall |
Después de haber instalado esos paquetes, hacemos los siguientes enlaces:
ramon@pangeadm:~/$ ln -sf /usr/lib/debug/libstdc++.la /usr/lib/ ramon@pangeadm:~/$ ln -sf /usr/lib/debug/libstdc++.so /usr/lib/ |
Necesitamos el rpm de Debian para extraerlo y varios paquetes más para compilarlo:
ramon@pangeadm:~/$ apt-get install rpm bzip2 libelfg0 |
Nos bajamos el rpm y lo extraemos
ramon@pangeadm:~/$ wget ftp://ftp.suse.com/pub/suse/i386/9.2/suse/src/rpm-4.1.1-191.src.rpm ramon@pangeadm:~/$ rpm2cpio rpm-4.1.1-191.src.rpm | cpio - |
Ahora tenemos que aplicar los parches, de SuSE, en el archivo rpm.spec, viene el orden de los patch, veremos algo parecido a esto:
ramon@pangeadm:~/$ grep ^Patch ../rpm.spec Patch: rpm-4.1.1.diff Patch1: rpmqpack.diff Patch2: rpm-4.1.1-findlang.diff Patch3: ia64-asm.patch Patch4: rpm-4.1.1-fdleak.diff Patch6: rpm-4.1.1-hppa.diff Patch7: rpm-4.1.1-ice.diff Patch8: rpm-4.1.1-ppc-no-mfspr_jmpbuf.diff Patch9: lvalue.diff Patch11: brp-compress.diff |
Extraemos el tar.gz del código fuente, nos situamos en el directorio y lo parcheamos en el orden que vemos con el grep:
ramon@pangeadm:~/$ patch -p0 < ../patch.diff |
Después de aplicar todos los parches, ejecutamos el configure:
./configure --prefix=/usr |
Ahora instalamos los siguientes paquetes:
apt-get install python2.3-dev libltdl3-dev libdwarf-dev |
Tenemos que quitar la opción -Werror de los Makefiles situados en elfutils/lib*/Makefile y elfutils/test/Makefile dentro del código fuente del rpm. Algunos se generan mientras se compila, cuando de error veremos qué Makefile es y le quitamos el -Werror.
Para detectarlos podemos hacer: grep Werror elfutils/*/Makefile
Hacemos touch po/mkinstalldirs elfutils/po/mkinstalldirs en el directorio fuente rpm-4.1.
Ahora hacemos un enlace con de los archivos de cabecera de python2.3 a /usr/include y empezamos la compilación:
ramon@pangeadm:~/$ ln -s /usr/include/python2.3/* /usr/include ramon@pangeadm:~/$ ln -s /usr/include/libdwarf/dwarf.h /usr/local/include/ #make #checkinstall |
![]() | checkinstall y mkinstalldirs |
|---|---|
Si tenéis un problema al hacer make y os sale un fallo de compilación, yo lo arregle modificando el Makefile de popt/po ya que en el MKINSTALLDIRS tenía un directorio de más. Lo deje así: MKINSTALLDIRS = $(top_builddir)/./mkinstalldirs |
![]() | checkinstall y dpkg |
|---|---|
Al acabar el checkinstall intentará instalar el paquete debian creado y quizá tenga problemas de conflicto con el rpm de debian. Borramos el de debian apt-get remove rpm librpm4 libpopt0 e instalamos a mano el paquete generado dpkg -i rpm-4.1.1_4.1.1-1_i386.deb |
Instalamos los siguientes paquetes:
#apt-get install sgmltools-lite linuxdoc-tools gettext g++ |
Nos bajamos el código fuente de yast2-devtools del ftp de Suse. Yo lo he hecho todo con la SuSE 9.1, quitando el paquete rpm4.1, debido a que con la versión 9.2 tuve fallos en algunos paquetes. Eso si no hagáis una mezcla de paquetes de las dos versiones, ya que os saldrán muchos errores de compilación.
Extraemos el código fuente
ramon@pangeadm:~/$ rpm2cpio package.src.rpm | cpio - |
y dentro de la carpeta de código fuente:
ramon@pangeadm:~/YaST4Debian/src.rpm/yast2-devtools/yast2-devtools-2.9.17$ ./configure ramon@pangeadm:~/YaST4Debian/src.rpm/yast2-devtools/yast2-devtools-2.9.17$ make ramon@pangeadm:~/YaST4Debian/src.rpm/yast2-devtools/yast2-devtools-2.9.17$ checkinstall |
Mismo procedimiento que antes, nos bajamos el código fuente del ftp de suse, extraemos dicho código y ejecutamos:
ramon@pangeadm:~/$ wget ftp://ftp.suse.com/pub/suse/i386/9.1/suse/src/liby2util-2.9.22-0.src.rpm ramon@pangeadm:~/$ rpm2cpio liby2util-2.9.22-0.src.rpm | cpio - |
Hace falta el paquete libtool y automake1.6
pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# apt-get install libtool pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# apt-get install automake1.6 |
Si tenemos instalado el automake1.4 lo eliminamos
pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# /usr/bin/y2tool y2autoconf pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# /usr/bin/y2tool y2automake pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# autoreconf --force --install pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# ./configure pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# make pangeadm:~/YaST4Debian/src.rpm/liby2util/liby2util-2.9.22# checkinstall |
Lo mismo, nos bajamos el código fuente lo extraemos y ejecutamos:
pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# ln -s /usr/lib/libpopt.la /usr/local/lib/ pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# ln -s /usr/lib/libpopt.so /usr/local/lib/ pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# y2tool autoconf pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# y2tool automake pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# autoreconf --force --install pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# ./configure pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# make pangeadm:~/YaST4Debian/src.rpm/yast2-packagemanager/yast2-packagemanager-2.9.37# checkinstall |
Nota: Es posible el siguiente problema con la compilación (puede no ocurrir). No linkaba bien una biblioteca, el archivo en cuestión a modificar era liby2pm.la y lo deje tal que asi:
dependency_libs=' /usr/lib/librpm.la -L/var/tmp/rpm-root/usr/lib -L/root/rpm4.1/rpm-4.1.1/zlib -L/usr/local/lib /usr/lib/librpmdb.la /usr/lib/librpmio.la -lrt -lpthread /usr/lib/libbz2.la /usr/lib/libpopt.la /usr/lib/libslp.la /usr/lib/libcurl.la /usr/lib/libidn.la -lz /usr/lib/liby2util.la -lutil -lssl -lcrypto -ldl '
Descargaremos y compilaremos el código fuente de hwinfo, programa necesario para YaST.
pangeadm:~/YaST4Debian/src.rpm/hwinfo# wget ftp://ftp.suse.com/pub/suse/i386/9.1/suse/src/hwinfo-8.38-0.src.rpm pangeadm:~/YaST4Debian/src.rpm/hwinfo# rpm2cpio hwinfo-9.31-1.1.src.rpm |cpio -i pangeadm:~/YaST4Debian/src.rpm/hwinfo/hwinfo-8.38# make |
Ahora copiamos del código fuente de hwinfo, el archivo libhd.a a /usr/lib y las cabeceras a /usr/include.
ramon@pangeadm:~/$ rpm2cpio hwinfo-9.31-1.1.src.rpm |cpio -i pangeadm:~/YaST4Debian/src.rpm/hwinfo/hwinfo-8.38# cp src/libhd.a /usr/lib pangeadm:~/YaST4Debian/src.rpm/hwinfo/hwinfo-8.38# cp src/hd/hd.h /usr/include/ |
Bajamos el código fuente del ftp de SuSE , lo extraemos y ejecutamos lo siguiente:
pangeadm:~/YaST4Debian/src.rpm/yast2-core# apt-get install bison ncurses-dev libxcrypt-dev pangeadm:~/YaST4Debian/src.rpm/yast2-core# wget ftp://yast4debian.alioth.debian.org/pub/yast4debian/yast2-core-2.9.79.tar.bz2 pangeadm:~/YaST4Debian/src.rpm/yast2-core# ln -sf /lib/libpopt.so.0 /usr/lib/libpopt.so.1 pangeadm:~/YaST4Debian/src.rpm/yast2-core/yast2-core-2.9.79# /usr/bin/y2tool y2autoconf pangeadm:~/YaST4Debian/src.rpm/yast2-core/yast2-core-2.9.79# /usr/bin/y2tool y2automake pangeadm:~/YaST4Debian/src.rpm/yast2-core/yast2-core-2.9.79# autoreconf --force --install pangeadm:~/YaST4Debian/src.rpm/yast2-core/yast2-core-2.9.79# ./configure pangeadm:~/YaST4Debian/src.rpm/yast2-core/yast2-core-2.9.79# make pangeadm:~/YaST4Debian/src.rpm/yast2-core/yast2-core-2.9.79# checkinstall |
pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite# wget ftp://yast4debian.alioth.debian.org/pub/yast4debian/yast2-testsuite-2.9.9.tar.bz2 pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite# tar xfj yast2-testsuite-2.9.9.tar.bz2 pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite/yast2-testsuite-2.9.9# ./configure pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite/yast2-testsuite-2.9.9# /usr/bin/y2tool y2autoconf pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite/yast2-testsuite-2.9.9# /usr/bin/y2tool y2automake pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite/yast2-testsuite-2.9.9# autoreconf --force --install pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite/yast2-testsuite-2.9.9# ./configure pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite/yast2-testsuite-2.9.9# make pangeadm:~/YaST4Debian/src.rpm/yast2-testsuite/yast2-testsuite-2.9.9# checkinstall |
De nuevo se procede igual que con los anteriores paquetes:
pangeadm:~/YaST4Debian/src.rpm/yast2# wget ftp://yast4debian.alioth.debian.org/pub/yast4debian/yast2-2.9.60.tar.bz2 pangeadm:~/YaST4Debian/src.rpm/yast2# tar xfj yast2-2.9.60.tar.bz2 pangeadm:~/YaST4Debian/src.rpm/yast2/yast2-2.9.60# /usr/bin/y2tool y2autoconf pangeadm:~/YaST4Debian/src.rpm/yast2/yast2-2.9.60# /usr/bin/y2tool y2automake pangeadm:~/YaST4Debian/src.rpm/yast2/yast2-2.9.60# autoreconf --force --install pangeadm:~/YaST4Debian/src.rpm/yast2/yast2-2.9.60# ./configure pangeadm:~/YaST4Debian/src.rpm/yast2/yast2-2.9.60# make pangeadm:~/YaST4Debian/src.rpm/yast2/yast2-2.9.60# checkinstall |
Nos bajamos el código fuente, lo extraemos y ejecutamos :
# apt-get install libncursesw5-dev # ln -s /usr/lib/libpopt.a /usr/local/lib |
Añadir a yast2-ncurses-2.9.20/src/Makefile y yast2-ncurses-2.9.20/Makefile lo siguiente: include: -I$(oldincludedir)/ncursesw
# /usr/bin/y2tool y2autoconf # /usr/bin/y2tool y2automake # autoreconf --force --install # ./configure # make # checkinstall |
Bueno hasta aquí llega el how-to, quisiera agradecer a Ramón Acedo, su colaboración ya que sin él no creo que hubiera logrado llegar a compilarlo. Después podéis probar a instalar el modulo de Users de Yast y comprobar a ver si os funciona.
Si tenéis algo que añadir al how-to, o algo que no quedo claro, no dudéis en decirlo, podeis contactar conmigo por jabber en pikota@jabber.org, y con Ramón en ramon@linux-labs.net.