janhq / jan

Jan is an open source alternative to ChatGPT that runs 100% offline on your computer. Multiple engine support (llama.cpp, TensorRT-LLM)
https://jan.ai/
GNU Affero General Public License v3.0
20.81k stars 1.19k forks source link

bug: Jan uses Symbols unavailable to standard ubuntu 20.04 g++. #2832

Open AspenEyers opened 2 months ago

AspenEyers commented 2 months ago

Describe the bug

Jan uses GLIBCXX_3.4.30 which is a symbol that doesn't exist for standard packages on ubuntu 20.04 libstdc++.so.6.

An extract from the error logs:

jan-data-folder/extensions/@janhq/inference-nitro-extension/dist/bin/linux-cuda-12-0/nitro: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by jan-data-folder/extensions/@janhq/inference-nitro-extension/dist/bin/linux-cuda-12-0/nitro)

https://github.com/janhq/jan/issues/1732 appears to suggest that the solution is to upgrade to a later version of libstdc++.so.6, which Is a solution I'm not particularly happy with, considering it's a reasonably core package that will make anything I build incompatible with most ubuntu 20.04 systems.

Is there any chance you can compile without these symbols?

Steps to reproduce Steps to reproduce the behavior:

  1. Go to https://jan.ai/
  2. Click on download AppImage 3 . I downloaded Mistral Instruct 7B Q4
  3. write any instruction and check the error logs when it fails.

Similarly I tried the deb package: https://github.com/janhq/jan/releases/download/v0.4.12/jan-linux-x86_64-0.4.12.AppImage

/home/aspen/jan/extensions/@janhq/inference-nitro-extension/dist/bin/linux-cuda-12-0/nitro: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/aspen/jan/extensions/@janhq/inference-nitro-extension/dist/bin/linux-cuda-12-0/nitro)
/home/aspen/jan/extensions/@janhq/inference-nitro-extension/dist/bin/linux-cuda-12-0/nitro: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /home/aspen/jan/extensions/@janhq/inference-nitro-extension/dist/bin/linux-cuda-12-0/nitro)

Environment details

the-vindicar commented 1 month ago

This bug is critical, as it prevents the use of core functionality. Additionally, upgrading libc requires root privileges, and if you lack them, convincing sysop to perform the upgrade is not easy for reasons stated in the post. Is there a version of Jan that can be run on Ubuntu 20.04 without modifications?