Installing QT on -- ubuntu linux -- few questions - linux

I have installed QT5.1 on my host linux platform.
Now i am getting an error while opening Qt creator from dashboard :---
qt creator linux cannot overwrite file /home qt version xml
This link suggest how to get rid of this error, I followed it & above error is resolved :--
https://askubuntu.com/questions/253785/cannot-overwrite-file-home-baadshah-config-qtproject-qtcreator-toolchains-xml
.config folder contains :---
dinesh#ubuntu:~/.config$ ls
dconf goa-1.0 QtProject update-notifier
gnome-disk-utility ibus QtProject.conf user-dirs.dirs
gnome-session nautilus Trolltech.conf user-dirs.locale
My PATH variable is :---
dinesh#ubuntu:~/.config$ $PATH
bash: /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: No such file or directory
qt creator executable, is here :---
dinesh#ubuntu:~/.config/QtProject$ ls -l
total 16
drwxr-xr-x 5 dinesh dinesh 4096 Nov 19 21:48 qtcreator
-rw-r--r-- 1 dinesh dinesh 3072 Nov 18 02:56 QtCreator.db
-rw-r--r-- 1 dinesh dinesh 5739 Nov 19 21:53 QtCreator.ini
Which command is not able to locate qt creator executable :---
dinesh#ubuntu:~/.config/QtProject$ which qtcreator
dinesh#ubuntu:~/.config/QtProject$
I have installed QT in /opt/Qt5.1.1 folder :--
dinesh#ubuntu:/opt/Qt5.1.1$ ls
5.1.1 Licenses MaintenanceTool.ini README.txt
components.xml MaintenanceTool network.xml Tools
InstallationLog.txt MaintenanceTool.dat qt-project.org.html
Now I have few questions :---
1> In $PATH enviromental variable we have not mentioned the location of QTcreator then how dashboard is able to open QTcreator ?
2> Also what exactly is the difference between these two folders , ~/.config & /opt/Qt5.1.1 ?
3> How can i make my QT project to compile against library QT4.8.5 ? Do i have to make some changes in ~/.config ?
4> If i install QT4.8.5 does it install seprate QTcreator for itself ?
Please suggest so that i come to know how everything works in synchronization with each other ?

Related

Only some binaries are visible in pycharm python venv

I check for the existence of installed tools via shutil.which()
Both tools are installed via apt get install ffmpeg mediainfo and their binaries are located in /usr/bin with the same file flags and ownership in the host system:
lala#lala:/usr/bin$ ls -la ff*
-rwxr-xr-x 1 root root 301544 May 19 2022 ffmpeg
-rwxr-xr-x 1 root root 22920 Feb 14 2022 ffmpegthumbnailer
-rwxr-xr-x 1 root root 149984 May 19 2022 ffplay
-rwxr-xr-x 1 root root 178832 May 19 2022 ffprobe
lala#lala:/usr/bin$ ls -la media*
-rwxr-xr-x 1 root root 47352 Apr 3 2022 mediainfo
-rwxr-xr-x 1 root root 374000 Apr 3 2022 mediainfo-gui
BUT within the virtual environment only one of them is available. The other one simply doe not exist
sh-5.1$ /usr/bin/ffmpeg
ffmpeg version 5.0.2 Copyright (c) 2000-2022 the FFmpeg developers
[... more ...]
sh-5.1$ /usr/bin/mediainfo
sh: /usr/bin/mediainfo: No such file or directory
So what could be the reason, why one binary is available and the other one is not.
Edit: this happens only in the termial / execution environment within pycharm
It turns out that Pycharm installed by flatpak has its own "environment" where one of the binaries was installed - the other one was not.

Kernel debugging - vmlinux-gdb.py fails to run on gdb

I'm trying to remotely-debug a Linux's kernel.
I've created a VM (using VMware) and connected to it from my PC using gdb, and everything works fine.
The problem is that gdb fails to load vmlinux-gdb.py script. I've tried to add it using the source command on gdb, and got the following error:
Traceback (most recent call last):
File "~/workspace/kernels/default-kernel/scripts/gdb/vmlinux-gdb.py", line 28, in <module>
ImportError: No module named 'linux'
The directory tree:
drwxr-xr-x 2 iofek iofek 4096 Mar 22 19:59 linux
-rwxr-xr-x 1 iofek iofek 577 Mar 22 19:43 Makefile
-rwxrwxr-x 1 iofek iofek 0 Mar 22 19:43 modules.order
-rwxr-xr-x 1 iofek iofek 759 Mar 22 20:00 vmlinux-gdb.py
Now I can't understand why the module fails to find the linux directory.
I've updated the PYTHONPATH, as well as added the path using sys.path.append.
Additionaly, all files under linux has the right permissions.
Any ideas?
Short answer
Never use ...linux.../scripts/gdb/vmlinux-gdb.py.Use the file vmlinux-gdb.py that is in the root directory of your kernel build output, alongside your vmlinux file.
If this file does not exist, you need to:
Activate CONFIG_GDB_SCRIPTS in your kernel configuration
Long tutorial
First make sure the gdb-scripts will be created during the kernel build:
make menuconfig
Enable CONFIG_GDB_SCRIPTS
make
Then find out if your kernel build is using a separate build output folder and then follow ONE (xor) of the following chapters:
Either: Building in-place without a build binary dir
If you compile your kernel with .o and .ko files cluttered inside the source (which is e.g. the way Ubuntu recommends it on wiki.ubuntu.com) you can cd into the source root folder, let's for example assume you built in the folder ~/gdbenv, start gdb from there and then loading should be possible out-of-the-box:
cd ~/gdbenv
gdb ./vmlinux
(gdb) add-auto-load-safe-path ~/gdbenv
(gdb) source ~/gdbenv/vmlinux-gdb.py
Or: When your way of building a kernel outputs binaries in a separate build dir
Which is done e.g. in a Yocto build, where all binaries end up in a different folder, not mixed with the source folder. In such environments you need to grab everything together in one environment (vmlinux, gdb-scripts and optionally the kernel sources).
tar -xf ~/Downloads/linux-blabla.tgz -C ~/gdbenv (optional)
cp .../build/vmlinux-gdb.py ~/gdbenv
mkdir ~/gdbenv/scripts
cp -r .../build/scripts/gdb ~/gdbenv/scripts
cp .../build/vmlinux ~/gdbenv
Then procede like in the preceeding chapter (cd ~/gdbenv, gdb ./vmlinux ...)
For latest kernel, you need build gdb scripts:
<root of kernel source>: make scripts_gdb
After making, a symlink of vmlinux-gdb.py is created at the root of kernel source. Then:
<root of kernel source>: gdb vmlinux
<gdb cmd>: add-auto-load-safe-path root-of-kernel-source
<gdb cmd:> source vmlinux-gdb.py

What's the difference between libjpeg.so.8 and libjpeg.so.62

There are always jpeg decoder libraries pre-installed on Linux like:
/usr/lib/x86_64-linux-gnu/libjpeg.so
/usr/lib/x86_64-linux-gnu/libjpeg.so.62
/usr/lib/x86_64-linux-gnu/libjpeg.so.62.0.0
/usr/lib/x86_64-linux-gnu/libjpeg.so.8
/usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
What is the difference between the so library? Does libjpeg.so.62 build from libjpeg-turbo?
Firstly, if you run:
ls -l /usr/lib/x86_64-linux-gnu/*jpeg*
you will see that most of the files are just symlinks to the one with the full version, so programs can link against the latest one by specifying an unversioned library in the knowledge that it will point to the latest version:
lrwxrwxrwx 1 root root 17 Oct 20 2016 libjpeg.so -> libjpeg.so.62.2.0
lrwxrwxrwx 1 root root 17 Oct 20 2016 libjpeg.so.62 -> libjpeg.so.62.2.0
-rw-r--r-- 1 root root 436224 Oct 20 2016 libjpeg.so.62.2.0
Secondly, unfortunately I don't have the same files as you else I would help further, but in general, you can find which package a given file comes from like this:
dpkg -S someFile
So, on my system, I can see that libjpeg.a for example, comes from package libjpeg62-turbo-dev
dpkg -S libjpeg.a
libjpeg62-turbo-dev:amd64: /usr/lib/x86_64-linux-gnu/libjpeg.a

How to install upgrade to new version of awstats Linux / UNIX *.tar.gz tarball files

I currently have awstats 7.0 which is from 2010. I would like to update to current stable relase, which is awstats 7.3
I tried
tar zxf awstats-7.3.tar.gz
cd awstats-7.3
ls -al
drwxr-xr-x 5 puter puter 4096 Jan 29 2014 .
drwxr-xr-x 4 puter puter 4096 Jan 24 23:53 ..
drwxr-xr-x 4 puter puter 4096 Jan 29 2014 docs
-rw-r--r-- 1 puter puter 7020 Jan 29 2014 README.TXT
drwxr-xr-x 5 puter puter 4096 Nov 4 2013 tools
drwxr-xr-x 7 puter puter 4096 Nov 4 2013 wwwroot
./configure
bash: ./configure: No such file or directory
make
make: No targets specified and no makefile found. Stop.
make install
make: *** No rule to make target `install'. Stop.
???
please, advise. Thank you.
I also followed this link
http://www.awstats.org/docs/awstats_upgrade.html
however, I dont really know where to distribute the files on the system.
lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.5 (wheezy)
Release: 7.5
Codename: wheezy
If the first command you try to run (./configure) fails (No such file or directory), then probably you should stop right there. The rest of the commands won't work any better.
Did you read the README.TXT file?
Awstats doesn't seem to be a program that needs to be compiled, and it doesn't have a configure script (obviously since you showed the list of files and there isn't one there). I googled for "awstats install" and found this page where it says:
After downloading and extracting the AWStats package, you should run the awstats_configure.pl script to do several setup actions. You will find it in the AWStats tools directory
and you clearly have a tools directory, so I would start with that.

CMake can't find QtCore

My project uses cmake which tried to look for QT4 which is installed:
root#netqa1:~# which qmake
/usr/bin/qmake
root#netqa1:~# ls -l /usr/lib/i386-linux-gnu/libQtCore.so*
lrwxrwxrwx 1 root root 18 Feb 6 2013 /usr/lib/i386-linux-gnu/libQtCore.so -> libQtCore.so.4.8.1
lrwxrwxrwx 1 root root 18 Feb 6 2013 /usr/lib/i386-linux-gnu/libQtCore.so.4 -> libQtCore.so.4.8.1
lrwxrwxrwx 1 root root 18 Feb 6 2013 /usr/lib/i386-linux-gnu/libQtCore.so.4.8 -> libQtCore.so.4.8.1
-rw-r--r-- 1 root root 2998336 Feb 6 2013 /usr/lib/i386-linux-gnu/libQtCore.so.4.8.1
Still I continue to get this error from cmake:
Warning: QT_QMAKE_EXECUTABLE reported QT_INSTALL_LIBS as /usr/lib/i386-linux-gnu
Warning: But QtCore couldn't be found. Qt must NOT be installed correctly, or it wasn't found for cross compiling.
Any pointers will be really helpful
You have probably not installed QT4 dev packets. On Ubuntu this is something like libqt4-dev.
The suffix "dev" stands for development packet.
Adding this option to cmake works for me in Kubuntu 18.04 :
-DQT_QMAKE_EXECUTABLE=qmake-qt4
Original discussion here.

Resources