this post was submitted on 29 Jun 2023
3 points (100.0% liked)

Linux Questions

5 readers
1 users here now

A place to ask Linux-related questions, post advice and suggestions, etc. Any questions pertaining to Linux from novice to greybeard level are welcome. ---- ### Asking Questions: Please provide enough info to for people to actually help you. While there are some things that are generally the same, there is no one "Linux" - every distro has some things they do different and you'll get better answers if you provide some info. And remember the people here are helping you purely out of their own good will - so be nice! If you are encountering a problem, please include: 1. Which distro you are using 2. A brief summary of the problem 3. Any steps you have attempted 4. Relevant details such as hardware specs (see below), application versions, etc. ---- ### Capturing System Specs In almost all cases, posting output from inxi -Fmz - either as in a code block, as a linked file, or as a screenshot - will be appreciated. Some distros may pre-install inxi but on others (such as Fedora), you may need to install it yourself. But we understand that there will be times when you are unable to provide this info (such as with boot problems). The output from inxi info should be safe (especially with the -z option)... But in general,**YOU SHOULD ALWAYS REVIEW OUTPUT AND REMOVE ANY PRIVATE DATA BEFORE POSTING ONLINE** (e.g. replace "Your Name" with `` or something similar - this helps in preventing doxxing, identity theft, and similar issues). - Some common graphical screenshot apps:gnome-screenshot, ksnip, shutter, and flameshot . There are also terminal-based ones like maim and scrot.

founded 1 year ago
 

Hello. I was wondering which command would allow me to know factually check which graphic library an application uses?

For instance, which UI library does telegram or firefox use? strace wouldn't work for that purpose as it deals with system calls, right? What about ltrace which works for library calls? I was able to find some gtk strings in the output of ltrace, but mostly strncmp(), strchr(), strlen(), memchr(), and one setenv(GTK_IM_MODULE, "gtk-im-context- simple"). Is that enough to conclude the process uses gtk?

It's a little verbose, so I wondered what about lsof to show open files. lsof -p <pid> shows me that the pid opens up libgtk-3.0.so... That seems conclusive enough, right? There wouldn't be any reason to open that libgtk-3.0.so shared object if it didn't use gtk?

Seems like lsof is better for getting this information rather than ltrace, right?

In the specific case of firefox, lsof does show that firefox uses libgtk-3.0.so as well as something called libmozgtk.so so I guess they don't fully use gtk, but their own thing as well?

In summary, what's the best and most reliable command to figure out which graphic library (QT, GTK, something else) an application uses? lsof?

Thanks

top 1 comments
sorted by: hot top controversial new old
[–] ShaunaTheDead@kbin.social 1 points 1 year ago

It's not exactly bulletproof but running any program from the command line will throw an error if there's a missing dependency. Then it should be as simple as installing the dependencies through your package manager.