vala-lang / vala-lint

Check code-style of Vala code files
GNU General Public License v2.0
96 stars 15 forks source link

Help: Getting "error while loading shared libraries" #178

Open vendillah opened 1 year ago

vendillah commented 1 year ago

I'm not sure how to install the linter. I just needed a linter for vscode, and it took a while even to figure out the linter was not part of the vscode extension. Here's what I've done so far.

After some digging in this repository, and trying to install it using meson, I found that it should be installed through Docker. (This was not clear, to me, from the README.)

Since vala-lint is intended to be always up-to-date, the recommended usage is the docker image. See the README section for more info https://github.com/elementary/vala-lint#docker-and-continuous-integration

Originally posted by @codygarver in https://github.com/vala-lang/vala-lint/issues/72#issuecomment-493998598

I don't have docker installed, but I do have podman and it should be able to handle the basic docker commands and files. I ran:

$ podman run -v "$PWD":/app valalang/lint:latest
✔ docker.io/valalang/lint:latest
Trying to pull docker.io/valalang/lint:latest...
Getting image source signatures
Copying blob 3a95c2455638 done  
Copying blob 4f4fb700ef54 done  
Copying blob ba7a43259d3b done  
Copying blob 110fdb712cf2 done  
Copying config 151b36207c done  
Writing manifest to image destination
Storing signatures
No mistakes found

At first, I though "No mistakes found" referred to the installation. However, everytime I try to run the image/container from Podman Desktop, it just ends quickly. I'm starting to believe this is supposed to be used as the command itself. So, being a complete noob on podman or docker, I just created a symbolic link to the io.elementary.vala-lint (after digging around in ~/.local/share/containers/overlay):

$ ln -s /home/vendillah/.local/share/containers/storage/overlay/<a-very-big-hash>/diff/usr/bin/io.elementary.vala-lint io.elementary.vala-lint

Now, regardless of what directory I try to run it from, even in the .../diff/usr/bin directory running with ./io.elementary.vala-lint, it always produces the following output:

$ io.elementary.vala-lint 
io.elementary.vala-lint: error while loading shared libraries: libvala-linter-1.0.so.1.0.0: cannot open shared object file: No such file or directory

I'm guessing now (or hoping) that "No mistakes found" is the output of the linter that has not received any files and I'm wondering how it can be executed. More specifically, I want it to work with vscode, so it should be part of my $PATH variable. Thanks in advance.