Giter Club home page Giter Club logo

Comments (4)

CodingMomentum avatar CodingMomentum commented on September 3, 2024 5

@utdream @razzam21:

The Bad News:

This is actually an upstream issue, and affects insomnia >= 2023.4.0, so before the merge. I decided to take a look today, to finally transition across as I'm still running Ubuntu 20.04LTS, and this looks to be related to the @get-insomnia/node-libcurl package bumping their glibc dependency past that which is installed by default in a recent release, as per the stack trace below:

Stack Trace
[app] App threw an error during load
[app] Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/scottco/Documents.local/git-repos/insomnium/node_modules/@getinsomnia/node-libcurl/lib/binding/node_libcurl.node)
[app]     at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1869)
[app]     at Module._extensions..node (node:internal/modules/cjs/loader:1354:18)
[app]     at Object.func [as .node] (node:electron/js2c/asar_bundle:2:1869)
[app]     at Module.load (node:internal/modules/cjs/loader:1124:32)
[app]     at Module._load (node:internal/modules/cjs/loader:965:12)
[app]     at f._load (node:electron/js2c/asar_bundle:2:13377)
[app]     at Module.require (node:internal/modules/cjs/loader:1148:19)
[app]     at require (node:internal/modules/cjs/helpers:110:18)
[app]     at Object.<anonymous> (/home/scottco/Documents.local/git-repos/insomnium/node_modules/@getinsomnia/node-libcurl/dist/Easy.js:5:18)
[app]     at Module._compile (node:internal/modules/cjs/loader:1269:14)
[app] A JavaScript error occurred in the main process
[app] Uncaught Exception:
[app] Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/scottco/Documents.local/git-repos/insomnium/node_modules/@getinsomnia/node-libcurl/lib/binding/node_libcurl.node)
[app]     at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1869)
[app]     at Module._extensions..node (node:internal/modules/cjs/loader:1354:18)
[app]     at Object.func [as .node] (node:electron/js2c/asar_bundle:2:1869)
[app]     at Module.load (node:internal/modules/cjs/loader:1124:32)
[app]     at Module._load (node:internal/modules/cjs/loader:965:12)
[app]     at f._load (node:electron/js2c/asar_bundle:2:13377)
[app]     at Module.require (node:internal/modules/cjs/loader:1148:19)
[app]     at require (node:internal/modules/cjs/helpers:110:18)
[app]     at Object.<anonymous> (/home/scottco/Documents.local/git-repos/insomnium/node_modules/@getinsomnia/node-libcurl/dist/Easy.js:5:18)
[app]     at Module._compile (node:internal/modules/cjs/loader:1269:14)

@archywillhe - You can replicate this in dev, if you have an ubuntu 20.04 machine lying around. Just running npm run dev will throw this error, despite all linting, type-checking and unit testing passing. It seems the tests that were inherited from upstream don't actually open the program and do integration tests at all.

The Good News

It's an easy fix. You can simply force the node modules to build from source, as documented here, to include the correct libraries.

For those following along, the procedure is as follows:

This assumes a clean, fresh install of Ubuntu 20.04 and little to no knowledge of node.js, so should be easy to follow along, and will get you from scratch to packages you can install as an upgrade to the current packages:

  • Open a terminal window, and install the dependencies
    sudo apt update && sudo apt install -y git curl build-essential rpm autoconf make g++ gcc libcurl4-openssl-dev libssl-dev libyaml-dev libreadline-dev python3 python3-pip (may need to come back to this)

  • Clone insomnium into your Downloads directory (this can be anywhere):
    cd ~/Downloads && git clone https://github.com/ArchGPT/insomnium.git && cd insomnium

  • Install node.js. If you already have node installed, and are using a package manager, the require version is 18.18.2, and You can skip to the next bit.
    If you don't have a package manager installed, you can follow the steps below. I use asdf, as I use many other languages, but you can use whatever is comfortable for you if you don't want to use asdf:

    `asdf` install steps To install asdf, and the correct nodejs version, run the following as a **non-root** user, and inside of the insomnium directory you've just created:
    git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
    echo "legacy_version_file = yes" >> $HOME/.asdfrc
    echo '. "$HOME/.asdf/asdf.sh"' >> $HOME/.bashrc
    echo '. "$HOME/.asdf/completions/asdf.bash"' >> $HOME/.bashrc
    source $HOME/.bashrc
    asdf plugin add nodejs
    asdf install
    node -v
    If all went well, `node -v` should output `18.18.2`.
  • Tell npm to build all modules from source: echo "build_from_source=true" >> .npmrc

  • Bump the version, so that apt/dpkg know that it's a different package: npm --workspaces version "0.2.3-hotfix"

  • Install the modules: npm ci

  • Build the releases: npm run app-package --max_old_space_size=6144. This will take a while, so be patient with this bit.
    This will create all of the releases, so you can use the snap or AppImage binaries if you like, But I choose to use deb packages by default.

  • Install the package:
    sudo apt install ./packages/insomnia/dist/Insomnium.Core-0.2.3-hotfix.deb

  • Check that all installed properly: insomnium.

  • Click on Help > About in the title bar, and you should see that the version is now Insomnium 0.2.3-hotfix, and will function as normal, including the desktop icon in the launcher.

  • Profit.

This should fix the issue of it not loading on Ubuntu =< 21.10. It's worth noting, that I'm not a node.js dev, so I'm unaware of the implications of building all packages from source in the main repository, but am happy to submit a PR for this, if you think it would help @archywillhe. Perhaps some integration tests would be worthwile, as well?

from insomnium.

utdream avatar utdream commented on September 3, 2024 1

@CodingMomentum
Awesome. Have family obligations over the next few days due to a US holiday but will check it out shortly. Thank you!

from insomnium.

utdream avatar utdream commented on September 3, 2024

got this error on Ubuntu 20.04 as well. Looks like the version that runs on Ubuntu 20 is glibc 2.31 and not 2.32. As this is a core lib, it's really best not to mess with it on the system level. Might be a way to specify a custom-compiled version to chromium though...

from insomnium.

Chi-Yu avatar Chi-Yu commented on September 3, 2024

This seems to work at first, but once I try to actually execute a request, it throws Unknown option given. First argument must be the option internal id or the option name. You can use the Curl.option constants. at me.

from insomnium.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.