Toolchain Manager not installing all dependencies

I've been trying to install the newest nRF Connect SDK using the Toolchain Manager with the appimage The toolchain and SDK installations seem to be successful however when the opening vscode the sdk is not found. the following is one of the error massage Command failed: git ls-remote --tags --heads https://github.com/nrfconnect/sdk-nrf this is the second error. the second is the following. Error while loading shared libraries: libunistring.so.2: cannot open shared object file: No such file or directory. I have tried to reinstall libunistring but to no success.

  • Hi ,

    I just had the same issue on my Manjaro Linux.

    Your machine is missing the file libunistring.so.2. The following creates a symbolic link from libunistring.so.5.

    sudo ln -s /usr/lib/libunistring.so.5 /usr/lib/libunistring.so.2



    Best regards,
    Ben

  • Not really a proper solution, because different major versions of library can have different API, so pretending they are the same is questionable.

    They (Nordic) seem to supply most of needed libraries in toolchain directory (a'la docker), but missed few:

    bash-5.2$ ldd /home/mk/ncs/toolchains/7795df4459/usr/local/libexec/git-core/git-remote-https
        linux-vdso.so.1 (0x00007ffdc57a8000)
        libcurl-gnutls.so.4 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f433a65d000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f433a643000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f433a63e000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f433a1cc000)
        libnghttp2.so.14 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f433a1a3000)
        libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007f433a61a000)
        librtmp.so.1 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f433a183000)
        libssh.so.4 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libssh.so.4 (0x00007f433a115000)
        libpsl.so.5 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f433a102000)
        libnettle.so.7 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f433a0c8000)
        libgnutls.so.30 => /usr/lib/libgnutls.so.30 (0x00007f4339e00000)
        libgssapi_krb5.so.2 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f433a079000)
        libldap_r-2.4.so.2 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f433a023000)
        liblber-2.4.so.2 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f433a012000)
        libbrotlidec.so.1 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f433a004000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f433a6ef000)
        libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007f4339c46000)
        libhogweed.so.5 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f4339c0c000)
        libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007f4339b66000)
        libcrypto.so.1.1 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f4339800000)
        libunistring.so.2 => not found
        libp11-kit.so.0 => /usr/lib/libp11-kit.so.0 (0x00007f433966a000)
        libbrotlienc.so.1 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libbrotlienc.so.1 (0x00007f4339adb000)
        libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007f4339597000)
        libtasn1.so.6 => /usr/lib/libtasn1.so.6 (0x00007f4339580000)
        libnettle.so.8 => /usr/lib/libnettle.so.8 (0x00007f4339528000)
        libhogweed.so.6 => /usr/lib/libhogweed.so.6 (0x00007f43394df000)
        libkrb5.so.3 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f4339402000)
        libk5crypto.so.3 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f43393d1000)
        libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007f43393cb000)
        libkrb5support.so.0 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f43393bc000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f43393ab000)
        libsasl2.so.2 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f433938e000)
        libgssapi.so.3 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007f4339349000)
        libbrotlicommon.so.1 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f4339326000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f4339321000)
        libffi.so.8 => /usr/lib/libffi.so.8 (0x00007f4339316000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f4339229000)
        libkeyutils.so.1 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f4339220000)
        libheimntlm.so.0 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007f4339214000)
        libkrb5.so.26 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007f4339181000)
        libasn1.so.8 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007f43390db000)
        libhcrypto.so.4 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007f43390a3000)
        libroken.so.18 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007f4339088000)
        libwind.so.0 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007f433905e000)
        libheimbase.so.1 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007f433904c000)
        libhx509.so.5 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007f4338ffe000)
        libsqlite3.so.0 => /home/mk/ncs/toolchains/7795df4459/usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f4338ed5000)
        libcrypt.so.1 => not found

    Missing are libunistring.so.2 and libcrypt.so.1 (fresh Arch linux).

    Few are mapping to system-wide installed libraries.

    What's interesting, they expect different versions of libunistring: 2 & 5 in parallel:

        libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007f4339c46000)
        libunistring.so.2 => not found

    So, when supplying all the tools in toolchain directory, there are few more things to supply and clean.

  • There is a similar issue with python3. When running the west build command I get a missing libpython3.9.so.1.0 error. I don't have python version 3.9 installed so this library is not available. 

    If you are going to package all the tools like this and even bundle the python interpreter, it would be wise to include the required libraries as well.

  • Actually just saw that libpython3.9.so.1.0 is included in the toolchain, but somehow it's not found when running the executable.

  • the root cause is nrf sdk tools install it's own binary version git instead of use the distro package version. I don't understand what's the point of this, the distro version works perfect fine.

    If you need some special compile options for git, at least, build it while install

    Same for pyhton, if you already listed git and python3 as dependency while in the installation steps, why download another version again?

    And telling people change their system library to fix YOUR broken binary distribution is NOT ACCEPTABLE

Related