Primeras impresiones sobre RHEL-7-beta1

Salió hace pocos días, no había tenido tiempo de probarle, pero aquí van mis comentarios iniciales.

Le bajé el ISO que, a propósito es sólo 64bits, RHEL-7 no vendrá con soporte de 32 bits. Y la verdad es que, el que tenga 32bits, podrá seguir usando su hardware con la versión 6 de CentOS o RHEL hasta el 2020, suficiente tiempo pienso yo. No dudo tampoco que alguien se aloque y lance CentOS-7 para 32bits, pero eso habría que verle.

Por otro lado, la verdad es que ningún hardware que se vende para servidores (recordar que RHEL y CentOS son para servidores) ya viene con 32bits. No es que se ve un equipo de 32bits estos días como servidor muy fácilmente. De hecho ya CentOS-6 venía con el sistema de virtualización SOLO para 64bits, si tu instalabas CentOS-6 de 32bits, no ibas a virtualizar nada ahi.

Le instalé dentro de una máquina virtual de KVM. Este KVM está en CentOS-6.5, le puse 1GB de RAM, 2 procesadores y 30GB en disco.

La interfaz del instalador parece la de fedora-18 ó fedora-19 mejor dicho. Es de esa pantalla que te aparece todo ahi mismo, vas dando click en las entradas y escogiendo diversas cosas (disco de instalacion, tipo de instalación, etc) pero toda en la misma pantalla. Es algo que particularmente no me gustaba de fedora, pero bueno, le han adoptado y habrá que acostumbrarse.

De todas formas la idea sigue siendo la misma de toda la vida de RedHat: preguntarte todo lo que te tenga que preguntar al inicio. No hay nada más pesado que esos instaladores que instalan un buchito de cosas, y se detienen a preguntarte tu clave.. para luego seguir y luego de 2 minutos preguntarte el idioma, y luego de 2 más preguntarte el tipo de partición y así tenerte castigado durante todo el proceso de instalación pues tienes que responder preguntas.

En el idioma de instalación, está en Español, aunque cuando le escogí me falló 2 ó 3 veces luego durante la instalación, pero no sé si es que fallaba por el idioma o por el tipo de particionamiento que le escogí con LVM-thin-provisioning… en todo caso cuando instalé en Inglés y sin thin-provisioning me funcionó.

Por defecto te propone escoger instalación mínima, excelente!

Al finalizar de instalar, la consola de texto ya no viene con 80×25  el tamano, sino que viene con otro tipo de letra muy pequeño, me dió bastante dificultad leerle porque dentro de KVM aún más pequeño se veía todo.

Al entrar, lo primero que hice fue tratar de encontrar la IP para entrar inmediatamente por ssh porque el tipo de letra es bieeeen pesado de leer para mi. Así que puse ifconfig y.. pum.. no viene instalado! En serio.. quizá networkmanager tenga otra forma de ver las interfaces, pero todavía no le conozco. Oh sí.. proponen NetworkManager aún para instalaciones via línea de comando!

Bueno, mejor aún, no había red activada así que puse ifup eth0.. pero de todas formas el misterio de la IP persistía no?

yum provides */ifconfig

para averiguar dónde estaba.. me sale el yum conque el sistema no está registrado en la red de redhat.. caramba, es la falta de costumbre, con centos todo es más fácil eh?

así que ejecuté

subscription-manager register

Y usé mi cuenta, dice redhat que no es necesario haber tenido una cuenta, que con

subscription-manager register –autosubscribe

Te iba a autosuscribir de una.

De todas formas el yum ahora me decía que no había ningún canal activo. Yo entro en shock cuando no entiendo esas cosas.. qué es un canal? entrar al sitio de redhat a averiguar? En lo que lo abría tuve a bien editar /etc/yum.repos.d/rhel.repo y cambiar enabled=1 en el primer repo el de redhat.. y ahí sí! al fin así puse usar

yum provides */ifconfig

El paquete es: net-tools, entonces puse

yum install net-tools

Y ya! Al fin ifconfig!! ahi pude averiguar mi ip, 9 minutos. Bueno, tampoco es que andaba de apremio 😉

Veamos algunas características:

[root@localhost ~]# w
11:53:31 up 9 min,  1 user,  load average: 0.01, 0.08, 0.07
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0     11:53    3.00s  0.04s  0.02s w
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Everything release 7.0 Beta (Maipo)

buen consumo de ram:

[root@localhost ~]# free -m
total       used       free     shared    buffers     cached
Mem:           994        429        564          1          1        285
-/+ buffers/cache:        142        851
Swap:         2079          0       2079

Lista de procesos:

[root@localhost ~]# ps axf
PID TTY      STAT   TIME COMMAND
2 ?        S      0:00 [kthreadd]
3 ?        S      0:00  \_ [ksoftirqd/0]
4 ?        S      0:00  \_ [kworker/0:0]
5 ?        S<     0:00  \_ [kworker/0:0H]
6 ?        S      0:00  \_ [kworker/u4:0]
7 ?        S      0:00  \_ [migration/0]
8 ?        S      0:00  \_ [rcu_bh]
9 ?        S      0:00  \_ [rcuob/0]
10 ?        S      0:00  \_ [rcuob/1]
11 ?        S      0:00  \_ [rcu_sched]
12 ?        S      0:00  \_ [rcuos/0]
13 ?        S      0:00  \_ [rcuos/1]
14 ?        S      0:00  \_ [watchdog/0]
15 ?        S      0:00  \_ [watchdog/1]
16 ?        S      0:00  \_ [migration/1]
17 ?        S      0:00  \_ [ksoftirqd/1]
19 ?        S<     0:00  \_ [kworker/1:0H]
20 ?        S<     0:00  \_ [khelper]
21 ?        S      0:00  \_ [kdevtmpfs]
22 ?        S<     0:00  \_ [netns]
23 ?        S<     0:00  \_ [writeback]
24 ?        S<     0:00  \_ [kintegrityd]
25 ?        S<     0:00  \_ [bioset]
26 ?        S<     0:00  \_ [kblockd]
27 ?        S      0:00  \_ [khubd]
28 ?        S<     0:00  \_ [md]
31 ?        S      0:00  \_ [kswapd0]
32 ?        SN     0:00  \_ [ksmd]
33 ?        SN     0:00  \_ [khugepaged]
34 ?        S      0:00  \_ [fsnotify_mark]
35 ?        S<     0:00  \_ [crypto]
44 ?        S<     0:00  \_ [kthrotld]
46 ?        S<     0:00  \_ [kmpath_rdacd]
47 ?        S      0:00  \_ [kworker/1:1]
48 ?        S<     0:00  \_ [kpsmoused]
49 ?        S<     0:00  \_ [deferwq]
50 ?        S      0:00  \_ [kworker/1:2]
55 ?        S      0:00  \_ [kauditd]
214 ?        S      0:00  \_ [kworker/0:2]
215 ?        S      0:00  \_ [kworker/u4:2]
217 ?        S<     0:00  \_ [ata_sff]
220 ?        S      0:00  \_ [scsi_eh_0]
221 ?        S      0:00  \_ [scsi_eh_1]
231 ?        S<     0:00  \_ [ttm_swap]
244 ?        S<     0:00  \_ [kworker/0:1H]
307 ?        S<     0:00  \_ [kdmflush]
308 ?        S<     0:00  \_ [bioset]
310 ?        S<     0:00  \_ [kdmflush]
311 ?        S<     0:00  \_ [bioset]
329 ?        S<     0:00  \_ [xfsalloc]
330 ?        S<     0:00  \_ [xfs_mru_cache]
331 ?        S<     0:00  \_ [xfslogd]
332 ?        S<     0:00  \_ [xfs-data/dm-1]
333 ?        S<     0:00  \_ [xfs-conv/dm-1]
334 ?        S<     0:00  \_ [xfs-cil/dm-1]
335 ?        S      0:00  \_ [xfsaild/dm-1]
339 ?        S<     0:00  \_ [kworker/1:1H]
443 ?        S      0:00  \_ [vballoon]
472 ?        S<     0:00  \_ [hd-audio0]
475 ?        S<     0:00  \_ [xfs-data/vda1]
476 ?        S<     0:00  \_ [xfs-conv/vda1]
477 ?        S<     0:00  \_ [xfs-cil/vda1]
478 ?        S      0:00  \_ [xfsaild/vda1]
9143 ?        S      0:00  \_ [kworker/1:0]
1 ?        Ss     0:01 /usr/lib/systemd/systemd –switched-root –system –d
394 ?        Ss     0:00 /usr/lib/systemd/systemd-journald
406 ?        Ss     0:00 /usr/sbin/lvmetad
429 ?        Ss     0:00 /usr/lib/systemd/systemd-udevd
491 ?        S<sl   0:00 /sbin/auditd -n
508 ?        Ssl    0:01 /usr/bin/python /usr/sbin/firewalld –nofork –nopid
511 ?        Ss     0:00 avahi-daemon: running [linux.local]
535 ?        S      0:00  \_ avahi-daemon: chroot helper
512 ?        Ssl    0:00 /sbin/rsyslogd -n
513 ?        Ss     0:00 /usr/sbin/irqbalance –foreground
515 ?        Ssl    0:00 /usr/bin/python -Es /usr/sbin/tuned -l -P
516 ?        Ss     0:00 /usr/lib/systemd/systemd-logind
518 ?        Ssl    0:00 /bin/dbus-daemon –system –address=systemd: –nofork
523 ?        Ss     0:00 /usr/sbin/crond -n
565 ?        Ss     0:00 /sbin/iprinit –daemon
568 ?        Ss     0:00 /sbin/iprupdate –daemon
588 ?        Ss     0:00 /sbin/iprdump –daemon
736 ?        Ssl    0:00 /usr/sbin/NetworkManager –no-daemon
9052 ?        S      0:00  \_ /sbin/dhclient -d -sf /usr/libexec/nm-dhcp-helper
776 ?        Ssl    0:00 /usr/lib/polkit-1/polkitd –no-debug
827 ?        Ss     0:00 /usr/bin/rhsmcertd
932 ?        Ss     0:00 /usr/sbin/sshd -D
9168 ?        Ss     0:00  \_ sshd: root@pts/0
9172 pts/0    Ss     0:00      \_ -bash
9194 pts/0    R+     0:00          \_ ps axf
1402 ?        Ss     0:00 /usr/libexec/postfix/master -w
1418 ?        S      0:00  \_ pickup -l -t unix -u
1419 ?        S      0:00  \_ qmgr -l -t unix -u
9189 tty1     Ss+    0:00 /sbin/agetty –noclear tty1

networkmanager! me va a dar un ataquito.. tendré que aprenderle a usar en CLI, la herramienta de CLI anterior era horrible, espero la hayan mejorado! Aunque leí en algún lado que podías seguir usando el viejo network

firewalld, es de investigar espero sea fácil, por el sitio de fedora encontré un howto

Usan postfix.. bien! Aunque si deseas, está sendmail en la lista de paquetes, tal y como estaba en CentOS-6, pero leí que en las siguientes versiones (RHEL-8?) posiblemente saquen a sendmail de la lista de paquetes

Estilo Fedora, usan cgroup, así que parece que ahora sí en serio debemos ponernos para esto.

El Filesystem que proponen usar ya no es ext4, dicen que con XFS es mejor el desempeño así que usan xfs de filesystem.

Tienen algo nuevo: LVM-thin-provisioning, quise instalar pero fallaba, como comenté anteriormente no sé si fue el idioma o esto.

ifconfig, nada nuevo, tengo ipv6

[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 172.30.60.146  netmask 255.255.255.0  broadcast 0.0.0.0
inet6 2800:68:a:60:5054:ff:fe7d:69fb  prefixlen 64  scopeid 0x0<global>
inet6 fe80::5054:ff:fe7d:69fb  prefixlen 64  scopeid 0x20<link>
ether 52:54:00:7d:69:fb  txqueuelen 1000  (Ethernet)
RX packets 13314  bytes 13408407 (12.7 MiB)
RX errors 0  dropped 63  overruns 0  frame 0
TX packets 3400  bytes 508908 (496.9 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10<host>
loop  txqueuelen 0  (Local Loopback)
RX packets 64  bytes 5952 (5.8 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 64  bytes 5952 (5.8 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

consumo de disco:

[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   28G  828M   27G   3% /
devtmpfs               491M     0  491M   0% /dev
tmpfs                  498M     0  498M   0% /dev/shm
tmpfs                  498M  1.7M  496M   1% /run
tmpfs                  498M     0  498M   0% /sys/fs/cgroup
/dev/vda1              484M   92M  392M  20% /boot

bueno, 828M está muy bien.

servidor web? httpd-2.4.6, nada de hiawatha, ni nginx, ni lighttpd

php? 5.4.16

Usa systemd, ya no usa chkconfig (no dudo que haga el truco que fedora hace para reconocer los antiguos comandos)

iptables, puerto 22, 546 y 631 abiertos, tanto en ipv6 como en ipv4.

kernel?

uname -rv
3.10.0-54.0.1.el7.x86_64 #1 SMP Tue Nov 26 16:51:22 EST 2013

3.10.0, qué pena que no fue el 3.11 for WorkGroups! Me hubiera divertido durante tantos años!

Qué hago si no hay mysql en CentOS-7 ??? Hace tiempo vengo usando mariadb.. así que mejor que mejor ya RHEL-7 viene con MariaDB!

[root@localhost ~]# yum list mysql*
Loaded plugins: product-id, subscription-manager
This system is registered to Red Hat Subscription Management, but is not receiving updates. You can use subscription-manager to assign subscriptions.
Available Packages
MySQL-python.x86_64                       1.2.3-8.el7                  rhel-beta
mysql-connector-java.noarch               1:5.1.25-2.el7               rhel-beta
mysql-connector-odbc.x86_64               5.2.5-2.el7                  rhel-beta
[root@localhost ~]# yum list maria*
Loaded plugins: product-id, subscription-manager
This system is registered to Red Hat Subscription Management, but is not receiving updates. You can use subscription-manager to assign subscriptions.
Installed Packages
mariadb-libs.x86_64                     1:5.5.33a-3.el7            @anaconda/7.0
Available Packages
mariadb.i686                            1:5.5.33a-3.el7            rhel-beta
mariadb.x86_64                          1:5.5.33a-3.el7            rhel-beta
mariadb-bench.x86_64                    1:5.5.33a-3.el7            rhel-beta
mariadb-devel.i686                      1:5.5.33a-3.el7            rhel-beta
mariadb-devel.x86_64                    1:5.5.33a-3.el7            rhel-beta
mariadb-embedded.i686                   1:5.5.33a-3.el7            rhel-beta
mariadb-embedded.x86_64                 1:5.5.33a-3.el7            rhel-beta
mariadb-embedded-devel.i686             1:5.5.33a-3.el7            rhel-beta
mariadb-embedded-devel.x86_64           1:5.5.33a-3.el7            rhel-beta
mariadb-libs.i686                       1:5.5.33a-3.el7            rhel-beta
mariadb-server.x86_64                   1:5.5.33a-3.el7            rhel-beta
mariadb-test.x86_64                     1:5.5.33a-3.el7            rhel-beta

Eso es todo por el momento sobre RHEL-7 , te imaginarás que en 10 minutos (de los cuales la mayoría los pasé tratando de encontrar el ifconfig) no puedo ver mucho más, pero me pinta bien y fácil, ciertos cambios que son naturales y hay que asumirlos pues parece que es el camino.

Factor de impacto, la opinión de Randy Schekman

Randy Schekman es un científico ganador de un premio Nóbel de medicina en el 2013. Ha escrito un artículo sobre las revistas científicas como “Nature”, “Science” y “Cell” y su método de generar escazes a la hora de publicar y sobre todo, los métodos de medir el impacto de una publicación y cómo esto que llaman “factor de impacto” es algo que está haciendo daño al mundo científico.

Y en cierta forma sí, concuerdo, porque al hablar con personas que dedican su vida a publicar, más que investigar, noto que lo que hablan continuamente es el factor de impacto (las referencias que les han hecho a sus artículos) y las revistas donde les han publicado. Casi no hablan de la investigación en sí, sino del impacto.

Y me digo yo: no es mejor publicar en algún lugar abierto como arXiv por ejemplo? O en una revista donde el trabajo no esté detrás de un pared de pago (paywall) que impida a los demás ver los contenidos exigiéndoles pagos por acceder? No era hora ya de que las publicaciones sean libremente disponibles para el bien común? Creo que deberíamos tener una (o varias) revistas nacionales abiertas, donde puedan ser publicados los artículos de interés, que tengan validez investigativa/científica, revisada por pares, pero que no impongan restricciones artificiales de diverso tipo para que sean seleccionados. Sólo que su contenido sea útil, valedero, creativo, interesante, necesario y que cumpla con estándares básicos.

Bien común, sumak kausay, me parece más importante que medir las publicaciones o autores según el factor de impacto, o el lugar donde se hayan hecho.

Aquí el artículo en Español, vale la pena leerlo:

http://elpais.com/sociedad/2013/12/11/actualidad/1386798478_265291.html

aquí una reflexión del periodista del país

http://sociedad.elpais.com/sociedad/2013/12/11/actualidad/1386797483_412515.html

COIP

Algunos me preguntan qué opino del problemático art 474 del nuevo COIP referente al almacenamiento de cierta información de usuarios por parte de isp y todos los que brindan servicios wifi a terceros. (Hoteles? Universidades? Escuelas? Aeropuertos? Centros comerciales? Cafés de internet?)

Este artículo está muy difuso, abierto, los contenidos son poco claros (ej: tráfico de conexión.. siempre me pregunto qué es precisamente).

No sé a cuántas fuentes consultaron pero por la forma en que se redactó no fue a un grupo muy plural.

Mi respuesta es: esto es impracticable y tiene que ser cambiado. Si alguien con conocimiento de redes e informática leyó este artículo debió darse cuenta de lo peligroso que se vuelven y lo impracticable que es. Debe ser cambiado.

Cambio de indicativo de HC6EP a HC6PE

El día de hoy la SENATEL me confirmó en un oficio que adjunto a este post, que “por una duplicidad en los indicativos” autoriza el cambio de mi distintivo a HC6PE.

Por qué? Ah bueno: Gracias a un error de la SENATEL,me emitieron un indicativo que alguien había utilizado en el pasado, y el actual reglamento (que posiblemente cambien a futuro) indica que los indicativos son de por vida… cómo se enterarán que alguien deja esta vida para retirarle el indicativo? no lo tengo claro.

Pero tengo una razón para estar feliz y créanme que es en serio! Y es que gracias a este error de duplicidad de la SENATEL un colega seguramente está regresando a la radio después de un periodo de inactividad. Esto me hace muy feliz, que gracias a mí, tengamos otro colega más de vuelta a la radio! A la final lo de la radio, aunque muchos no lo vean así, es para unir!

De mi parte, da igual HC6EP que HC6PE que HC6PD que HC6EI… el gusto por la radio ahi sigue presente! A la final he sido CL7PE, CL2PD, CM2PD, CO2PD. Y actualmente también mantengo mi indicativo de Alberta VE6EPE.. venga uno más a la cuenta! Me siento orgulloso ya que he estado en la radio más de 30 años, pues tuve mi primera licencia en 1992.

HC6PE, a su servicio.. 73!

Oficio de la SENATEL:DGGER-2013-1949-OF

Cómo agilizar las actualizaciones de CentOS y Fedora

Si usas CentOS, RHEL o Fedora, hay un plugin de yum muy bueno llamado yum-presto que lo que hace es bajar solamente las porciones de los paquetes rpm que le tocaría actualizar.

Digamos tienes un paquete X-1, y CentOS te indica que ya está la versión X-1.1… normalmente lo que hacen las distribuciones es bajar completamente X-1.1 y actualizar verdad?

Ahora, supongamos que entre X-1 y X-1.1 sólo haya cambiado no sé, digamos 10 bytes de un archivo (es un ejemplo), qué tal que  en vez de bajar TODO X-1.1, se baje simplemente la diferencia que hay entre X-1.1 y X-1

Para esto es yum-presto. yum-presto analiza las diferencias entre las dos versiones: la instalada y la actualizada; y solamente baja lo que cambió, y aplica estos cambios al sistema.

Qué ventaja obtenemos? Que se reduce el tamaño de las actualziaciones, si antes tenías que bajar 300MB por ejemplo.. ahora quizá tengas que bajar los diff, y estos diffs sean solamente el 10% de estos 300MB.. es decir 30MB.

Realiza cualquier cálculo : supón hayan 40MB de actualizaciones, pero en diffs solamente tengas que bajar digamos 8MB..

Ventajas: baja más rápido las actualizaciones. Mucho más. Por tanto ya se acaba la queja de que actualizar es lento.

Desventajas? : hay una y es que para actualizar primero tiene que hacer cierto procesamiento en tu máquina con el delta .. es decir, toma el diff, lo incorpora dentro del paquete anterior y ese es con el que actualiza. Lo que consume un poquito de tiempo de procesador. Tampoco es una cantidad absurda o lenta, pero se demorará un poco. Es decir, cambiamos la velocidad de bajada, por un breve consumo de procesador mientras le utilizamos. Es totalmente aceptable y la experiencia termina siendo positiva en efecto.

Cómo usamos yum-presto? Muy simple, le instalamos:

yum install yum-presto

Y ya, de ahora en adelante, tus actualizaciones verás que se dividen en dos partes:

  1. se bajan los deltas. Son archivos con extensión .drpm
  2. se bajan los que no tenían deltas. Porque algunos tienen tantos cambios que no es rentable tener un delta y mejor bajarlos completo.

Pruébalo:

yum update

y analiza cómo van pasando los delta.

How do I create a hiawatha webserver rpm?

This howto will explain how to create a CentOS-5 and centOS-6 rpm for hiawatha webserver, a security-centric webserver.

Installing mock

I do all my rpm building in a separate and isolated virtual machine.. you probably will want to do this.. install a CentOS-6 x86_64 virtual machine and then install mock:

I installed mock from the EPEL repository:

yum install mock

Installing our anku repositories for mock

Now a “must”:

The creator of hiawatha requires the use of a cmake version newer, not offered, by CentOS-5 nor CentOS-6, therefore I had to build a cmake rpm for a newer version, version 2.8.4 has been uploaded to our CentOS repositories (http://anku.ecualinux.com) we call those repos: anku (anku means flexible in Quechua Language). You have to add a “new” repository to your mock installation.

To do so, please download the following files into: your /etc/mock directory (as root):

wget http://www.ecualinux.com/anku-5-i386.cfg -O /etc/mock/anku-5-i386.cfg
wget http://www.ecualinux.com/anku-6-i386.cfg -O /etc/mock/anku-6-i386.cfg
wget http://www.ecualinux.com/anku-5-x86_64.cfg -O /etc/mock/anku-5-x86_64.cfg
wget http://www.ecualinux.com/anku-6-x86_64.cfg -O /etc/mock/anku-6-x86_64.cfg
wget http://www.ecualinux.com/anku-7-x86_64.cfg -O /etc/mock/anku-7-x86_64.cfg

Doing this is a must!!! Otherwise the compilation will fail with cmake errors.

Actually all the anku-*.cfg’s files are the very same epel-*cfg ones but with a new repository added (the anku one near the end of each file)

Creating a mock user:

Then created a user to work with mock, for this user to be able to work it must be in the “mock” group.

useradd eperez
passwd eperez

I then added eperez to the mock group by editing /etc/group. Check this line at the bottom of your /etc/group file containing my username as part of the mock group:

[eperez@mock ~]$ egrep mock /etc/group
mock:x:492:eperez

Good. Then login as your mock user, in my case eperez, all the steps from now on will be made as user eperez, as my mock user

Download the latest hiawatha from there, for example, the latest hiawatha webserver package as of today is 9.12, lets download it:

wget --no-check-certificate https://www.hiawatha-webserver.org/files/hiawatha-9.12.tar.gz

(ok, versions will continue rolling after a few months or years, allways look for the latest hiawatha*tar.gz in the hiawatha webserver’s site)

Now I must get a working hiawatha.spec file, I simply take advantage of a previous hiawatha SRC.RPM from my repos. I store all of them in here: http://anku.ecualinux.com/6/SRPMS/

I then download the latest src.rpm. In this example I will:

  • Download the most up to date hiawatha src.rpm from my repo: http://anku.ecualinux.com/6/SRPMS/hiawatha-9.8-ecualinux.2.el6.src.rpm as of today
  • Open it (with rpm -Uvh)
  • Copy the newest tar.gz I downloaded previously
  • Slightly modify the resulting hiawatha.spec to look for this new version (9.12 in this example)

Here are the steps:

wget http://anku.ecualinux.com/6/SRPMS/hiawatha-9.8-ecualinux.2.el6.src.rpm
rpm -Uvh hiawatha-9.8-ecualinux.2.el6.src.rpm
mv hiawatha-9.12.tar.gz rpmbuild/SOURCES/
vi rpmbuild/SPECS/hiawatha.spec

Ok, the last line.. this is the spec file for the previous version, 9.8 in this example. You may notice it by looking into the very first lines of hiawatha.spec you will see the version (realver) as 9.8, as Im about to compile version 9.12 I change it to look like this:

%define realver  9.12

Well, well… it is time to create an src.rpm for mock to later compile it for all the CentOS versions (5 and 6 as for the moment). I will create a CentOS-5 src.rpm because CentOS-5 can not easily read CentOS-6’s rpm but the opposite is possible: CentOS-6 can open and work with CentOS-5’s rpms.

mock -r anku-5-i386 --buildsrpm --spec rpmbuild/SPECS/hiawatha.spec --sources rpmbuild/SOURCES/

Good.. after a while I have a resulting hiawatha*src.rpm inside: /var/lib/mock/epel-5-i386/result/, lets move it away from there otherwise it can be deleted the next time we invoke mock for this version and arch:

mv /var/lib/mock/epel-5-i386/result/hiawatha-9.12*.src.rpm .

Now the easiest part of all: let’s recompile this newly obtained hiawatha-9.12*.src.rpm for all current CentOS versions (5 and 6) and architectures (i386 and x86_64):

mock -r anku-6-i386 hiawatha-9.12*.src.rpm
mock -r anku-6-x86_64 hiawatha-9.12*.src.rpm
mock -r anku-5-i386 hiawatha-9.12*.src.rpm
mock -r anku-5-x86_64 hiawatha-9.12*.src.rpm

Here is the trick, anku, our repo, remember it? The files I asked you to download into /etc/mock at the beginning of this post? great!.

The results will be stored in:

/var/lib/mock/anku-6-i386/result/
/var/lib/mock/anku-6-x86_64/result/
/var/lib/mock/anku-5-i386/result/
/var/lib/mock/anku-5-x86_64/result/

That’s it! Don’t forget to move the resulting rpms away from the directories stated above as mock delete their contents the next time you try to compile anything using mock for that version and arch.

Final thoughs

What will I do the next time a new hiawatha version comes of? Easy:

  1. Login as user eperez into this server (it is a virtual server with 10GB of HD)
  2. Download the new hiawatha version, for example some day we will have hiawatha-9.13.tar.gz
  3. Move this new tar.gz file to: rpmbuild/SOURCES/
  4. Edit rpmbuild/SPECS/hiawatha.spec and change the version to 9.13
  5. Create a new src.rpm for centos-5
  6. Recompile this src.rpm for all centos versions and arch.

That’s it.

Member of SKCC#7163T