Skip to content

Instantly share code, notes, and snippets.

@gggiovanny
Last active November 27, 2020 00:33
Show Gist options
  • Save gggiovanny/9a43a39872ba2d6f2117a59a004bcb9e to your computer and use it in GitHub Desktop.
Save gggiovanny/9a43a39872ba2d6f2117a59a004bcb9e to your computer and use it in GitHub Desktop.
Pasos para instalar Flow en Ubuntu 20.04

Pasos para instalar Flow en Ubuntu 20.04

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.

Problemas ejecutando 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment