miércoles, 22 de febrero de 2012

OpenDAP en OpenSUSE x86_64 y ML 2010b

Me ha costado un tiempo pero ya he conseguido instalar el susodicho.

Todo está en este hilo.

Lo primero es tener libdap.A fecha de hoy (febrero de 2012) OpenSUSE trae la versión libdap3-3.11.1-3.21.x86_64 en su repo de obs://build.opensuse.org/home:ocefpaf.

Segundo, bajarse una versión más moelna de loaddap que la que ponen en la güé. Por ejemplo https://groups.google.com/a/opendap.org/group/support/attach/0236469b87ea7b0c/loaddap-3.7.1.tar.gz?part=2. Ésta es la madre del cordero. Por lo visto es un problema en el conf/matlabver.m4 file, por el regex que no le vale. Hay por ahí un apaño:

trunk/ml-structs/conf/matlabver.m4

r21622r23058
7676fi])
7777case $ax_cv_matlab_version in
78 @<:@1-9@:>@.@<:@0-9@:>@ | @<:@1-9@:>@@<:@0-9@:>@.@<:@0-9@:>@)
78 @<:@1-9@:>@.@<:@0-9@:>@ | @<:@1-9@:>@@<:@0-9@:>@.@<:@0-9@:>@ | @<:@1-9@:>@.@<:@0-9@:>@@<:@0-9@:>@| @<:@1-9@:>@@<:@0-9@:>@.@<:@0-9@:>@@<:@0-9@:>@)
7979 MATLAB_VERSION=$ax_cv_matlab_version
8080 MATLAB_MAJOR=`echo $MATLAB_VERSION | sed -e 's/^\(@<:@0-9@:>@*\)\.@<:@0-9@:>@*.*/\1/'`

que debería valer. Pero porsiascaso nos bajamos la 3.7.1, si es que está accesible.

Luego:

./configure --with-matlab=/usr/local/matlab2011a --prefix=/usr/local/loaddap-3.7.1

Se queja de algo del compilador, que es una versión más reciente de la que matlab entiende. No problem

Si quieres hacer el make check (necesitamos DejaGNU) allá tú, pero los tests están rotos hace tiempo-

Siguiente: Se va a quejar de que /usr/local/loaddap-3.7.1/bin/writedap: /usr/local/matlab2011a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/local/loaddap-3.7.1/bin/writedap)

Para ello:
sudo mv /usr/local/matlab2011a/sys/os/glnxa64/libstdc++.so.6 /usr/local/matlab2011a/sys/os/glnxa64/libstdc++.so.6.original

y

sudo ln -s /usr/lib64/libstdc++.so.6.0.16 /usr/local/matlab2011a/sys/os/glnxa64/libstdc++.so.6

Luego en matlab:

addpath /usr/local/loaddap-3.7.1/bin

Que es por cierto donde se ha instalado.

Y listo Calixto. Se puede ver que funciona haciendo esto:

x = loaddap('-A', 'http://test.opendap.org/opendap/data/nc/coads_climatology.nc');

Buena suerte!







No hay comentarios: