Instalar anaconda (buscar enlace más reciente en la web oficial)
curl https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh > anaconda_installer.sh
chmod +x anaconda_installer.sh
./anaconda_installer.sh
rm anaconda_instaler.sh
Con esto se descarga el instalador, se le dan permisos de ejecución, se ejecuta y se borra el instalador luego de la instalación. Nota: es necesario darle en 'yes' varias veces durante la instalación.
Seguir las instrucciones oficiales. Nota: asegurarse antes de tener instalado el compilador de C.
sudo apt update && sudo apt install gcc
Al llegar al paso de instalar sumo, usar el script para la version de ubuntu mas reciente (a fecha de 25 nov 2020 el script mas nuevo es para ubuntu 18.04). Una vez instalado, reiniciar la terminal para que se registre la ruta de sumo.
Si al ejecutar sumo --version sale este error:
ggonzalez@POTATOGOD:~$ sumo --version
sumo: error while loading shared libraries: libproj.so.12: cannot open shared object file: No such file or directory
Buscar las dependencias de SUMO con este comando:
ggonzalez@POTATOGOD:~$ ldd ~/sumo_binaries/bin/sumo-gui
linux-vdso.so.1 (0x00007ffcb3da5000)
libxerces-c-3.2.so => /lib/x86_64-linux-gnu/libxerces-c-3.2.so (0x00007fcf62317000)
libFOX-1.6.so.0 => /lib/x86_64-linux-gnu/libFOX-1.6.so.0 (0x00007fcf61f8c000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcf61f69000)
libGLU.so.1 => /lib/x86_64-linux-gnu/libGLU.so.1 (0x00007fcf61ef7000)
libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007fcf61e6f000)
libproj.so.12 => not found
libgdal.so.20 => not found
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fcf61c8c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcf61b3d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcf61b22000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcf61930000)
libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007fcf618a1000)
libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007fcf616b9000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fcf6157c000)
libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fcf61567000)
libXft.so.2 => /lib/x86_64-linux-gnu/libXft.so.2 (0x00007fcf6154e000)
libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007fcf61541000)
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fcf614fa000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fcf61439000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcf61433000)
libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fcf613ae000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fcf61376000)
libtiff.so.5 => /lib/x86_64-linux-gnu/libtiff.so.5 (0x00007fcf612f5000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fcf612d9000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcf634bc000)
libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fcf6121f000)
libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fcf611eb000)
libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fcf611c2000)
libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fcf611a1000)
librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fcf61181000)
libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007fcf61111000)
libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007fcf610fe000)
libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007fcf610c4000)
libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fcf60eee000)
libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fcf60ea1000)
libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fcf60e4b000)
liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fcf60e38000)
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fcf60e2a000)
libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007fcf5f369000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fcf5f33f000)
libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fcf5f135000)
libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fcf5f12b000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fcf5f0fd000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fcf5f0f4000)
libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007fcf5ee8b000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fcf5ede2000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fcf5edb7000)
libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007fcf5eba9000)
libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fcf5ea27000)
libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007fcf5e9ef000)
libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fcf5e96b000)
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fcf5e695000)
libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fcf5e55d000)
libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fcf5e547000)
libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fcf5e46a000)
libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fcf5e439000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fcf5e432000)
libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fcf5e423000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fcf5e405000)
libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fcf5e3e8000)
libgssapi.so.3 => /lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fcf5e3a3000)
libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fcf5e380000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fcf5e37a000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fcf5e372000)
libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fcf5e364000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fcf5e35d000)
libheimntlm.so.0 => /lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fcf5e351000)
libkrb5.so.26 => /lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fcf5e2be000)
libasn1.so.8 => /lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fcf5e217000)
libhcrypto.so.4 => /lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fcf5e1dd000)
libroken.so.18 => /lib/x86_64-linux-gnu/libroken.so.18 (0x00007fcf5e1c4000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fcf5e1aa000)
libwind.so.0 => /lib/x86_64-linux-gnu/libwind.so.0 (0x00007fcf5e180000)
libheimbase.so.1 => /lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fcf5e16e000)
libhx509.so.5 => /lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fcf5e11e000)
libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fcf5dff5000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fcf5dfba000)
Luego buscaremos los archivos faltantes con:
apt-file search <libreria>
(instalar apt-file si hace falta)
Ejecutar una vez por archivo faltante (2 veces).
Mi salida fue:
(base) ggonzalez@POTATOGOD:/usr/lib/x86_64-linux-gnu$ apt-file search libproj.so
libproj-dev: /usr/lib/x86_64-linux-gnu/libproj.so
libproj15: /usr/lib/x86_64-linux-gnu/libproj.so.15
libproj15: /usr/lib/x86_64-linux-gnu/libproj.so.15.3.1
(base) ggonzalez@POTATOGOD:/usr/lib/x86_64-linux-gnu$ apt-file search libgdal.so
grass-core: /usr/lib/grass78/lib/libgdal.so
libgdal-dev: /usr/lib/libgdal.so
libgdal26: /usr/lib/libgdal.so.26
libgdal26: /usr/lib/libgdal.so.26.0.4
libogdi4.1: /usr/lib/ogdi/libgdal.so
Resulta que la versión de SUMO usada por flow no es la última, pero al parecer las dependencias si lo son. Los archivos de arriba corresponden a la librería libproj-dev que es requerida por SUMO. Entonces lo que significa esta salida es que si se tiene la dependencia, pero a una versión más nueva que la requerida por SUMO.
Solución: Intentar crear un softlink hacia la libreria nueva.
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.15 /usr/lib/x86_64-linux-gnu/libproj.so.12
sudo ln -s /usr/lib/libgdal.so.26 /usr/lib/libgdal.so.20
Luego de esto, ya no debería haber ningún error al ejecutar sumo --version
o sumo-gui
.
Correccion: De acuerdo a este post en stackoverflow, es necesario compilar manualmente sumo: Direct install of SUMO from GitHub.