Linux Kernel Header File Location - linux-kernel

I am running a linux OS.
I want to know the locations of the header files.
I have tried the following :-
cd /lib/modules/$(uname -r)
But there are only two .ko files inside it. I expected results which include folders like build(which contains the include folder, which inturn consists of the header files)
I have even tried doing this :-
sudo apt-get install linux-kernel-($uname -r)
Output
E: Unable to locate package linux-kernel-3.8.13-OpenNetworkLinux-e500mc-1.5
E: Couldn't find any package by regex 'linux-kernel-3.8.13-OpenNetworkLinux-e500mc-1.5'

Try this..
sudo apt-get install linux-headers-$(uname -r)
now look in "/lib/modules/$(uname -r)/build"

Related

How to properly install GO with paths and all?

I have installed GO, setup the paths but when i run a file i get this error:
error!! exec: "sqlboiler": executable file not found in $PATH
exec: "sqlboiler": executable file not found in $PATH
exec: "sqlboiler": executable file not found in $PATH
exit status 3
What is going wrong?
The installation instructions are good, https://go.dev/doc/install. However, for me un Ubuntu 20.4 in wsl2, the suggested path for the binaries wasn't enough. Only go and gofmt are added to /usr/local/go/bin.
I did add the below to my .bashrc, since go install puts the binaries in this location on my system.
export PATH="$HOME/go/bin:$PATH"
Note, that the path to the binaries may differ on your system, so you have to adjust it accordingly.
Any binary you install with go install that is added to this path will be available to your shell afterwards.
For example:
$ go install github.com/volatiletech/sqlboiler/v4#latest
$ go install github.com/volatiletech/sqlboiler/v4/drivers/sqlboiler-psql#latest
$ whereis sqlboiler
sqlboiler: /home/blue/go/bin/sqlboiler
Potentially, you also need some database packages to your system. I am not sure on this any more. For example, you could add some Postgres libs if you are using Postgres. You have to see if it works without.
apt-get install postgresql-client-common postgresql-client-12
How to properly install GO with paths and all?
Install Go with the installer (Windows) or archive (extract into /usr/local on Linux/Mac).
When installing from archive, manually add the directory path where the go binary is located (/usr/local/go) to PATH.
Set GOPATH to a directory path wherein to contain bin, pkg and src sub-directories.
Add ${GOPATH}/bin to PATH.
What is going wrong?
The program you are running is trying to run the executable sqlboiler, which cannot be found in any of the directories specified in PATH.

How do I install Mendeley to use Anaconda python

I've freshly installed Ubuntu 18.04 and have decided to try Anaconda. However, when I then try to install Mendeley, I get the following error:
mendeleydesktop depends on python; however:
Package python is not installed.
I assume the issue here is that python is now in ~\anaconda2\bin, instead of \usr\bin. I'm not certain what I should do. As I see it, I have 3 options:
Install a system python into \usr\bin, but this seems sloppy/messy
Put a softlink in \usr\bin along the lines of ln -s python ~\anaconda2\bin\python, but I'm worried that there might be implications to that, which I don't understand
Somehow tell the mendeley.deb file where the python I'm using is, but I don't know how to do this.
Are either 1 or 2 reasonable options? If not how do I implement my 3rd option, or what else should I do?
Empirically found option 2 does not work. dpkg is still looking for the installation of the python package
You can use the method given here to remove the system python dependency in the .deb file; I tried this and mendeley seems to install as normal. Assuming your conda environment is set up correctly, it will work. I had to modify the instructions on that page slightly:
Unpack deb: $ ar x mendeleydesktop_1.19.4-stable_amd64.deb (will create i.e. three files: debian-binary control.tar.gz data.tar.gz)
Unpack control archive: $ tar xzf control.tar.gz (will create: postinst control)
Fix dependencies in control (use a text editor)
Repack control.tar.gz: $ tar c postinst control | gzip -c > control.tar.gz
Repack deb: $ ar rcs mendeleydesktop_1.19.4-stable_amd64_nopythondep.deb debian-binary control.tar.gz data.tar.gz (order important! dpkg wouldn't be able to read the metadata of a package quickly if it had to search for where the data section ended!)

deb/rules: No such file or directory

I was trying to build vmlinux image for my 2.6.32 kernel in ubuntu-10.04 referencing this tutorial. These are the steps I followed.
1. Installed build tools with
sudo apt-get build-dep linux-image-$(uname -r)
2. Downloaded the source using
apt-get source linux-image-$(uname -r)
3. cd'ed to the extracted source directory and run
fakeroot debian/rules clean
but it gives me the error
fakeroot deb/rules clean
/usr/bin/fakeroot: line 176: deb/rules: No such file or directory
My new uncompressed kernel source directory doesn't contains any directory named deb or deb/rules. So what they actually they mean by fakeroot debian/rules clean ? How can I locate the file debian/rules?
Found this question without any solved answer. Please help

how to edit existing debian package in installation cd?

ive been trying to edit a Debian installation CD,
followed tutorial on debian website
https://wiki.debian.org/DebianInstaller/Modify/CD,
successfully extract cd, use genisoimage to recreate iso, try to install debian, no problem.
and then the problem, when i tried to edit one of the package, say i want to change a picture in a package .deb, i used this command:
extract .deb:
mkdir directoryname
cd directoryname
dpkg-deb -x pathtopackage/package_name.deb .
dpkg-deb -e pathtopackage/package_name.deb
building .deb :
dpkg-deb -b . pathtopackage/new_package_name.deb
and replaced the very same package on /pool/main debian cd directory
however after built the iso, it failed to install my edited package,
i've tried to fix md5 sum inside cd, rebuild dist/Release, still no luck.
any advice?
thanks in advance
finally did it.
first mistake
building .deb :
dpkg-deb -b . pathtopackage/new_package_name.deb
correct command:
dpkg-deb -b -Zgzip . pathtopackage/new_package_name.deb
to recreate exact package as original one
and then following the rest tutorial on https://wiki.debian.org/DebianInstaller/Modify/CD,
except for debootstrap error, it can be done by following tutorial from this page
https://bugs.launchpad.net/ubuntu/+source/debootstrap/+bug/1001131
edit my debootstrap.deb, repackage, and voila, done all the works.
apparently my error was because debootstrap error from official debian page doesnt work for me.
hope this information useful for anyone

zeroMQ: cannot open libzmq.so.4

I am trying to install the zeroMQ for my server(redhat 7). Here is what I did:
1) download the zeroMQ and unpack it.
2) navigate to the file where I put the zeroMQ and run the commands below:
./configure
make
make install
Now I can find two head files in /usr/local/include: zmq.h and zmq_utils.h and five files in /usr/local/lib: libzmq.a libzmq.la libzmq.so libzmq.so.4 libzmq.so.4.0.0.
Then I try to code like this:
#include <zmq.h>
...
void * context = zmq_init(1);
But I get this error message: undefined reference to `zmq_init'
I find that the include works well but it cant find 'zmq_init', so maybe it's the problem of lib files. But all of the lib files have been in /usr/local/lib, right?
What should I do?
Problem solved:
I got that error message because the lib files are in the directory: /usr/local/lib
What we need to do is to create a file named local-lib.conf under the directory /etc/ld.so.conf.d/ and write /usr/local/lib in it. The name of the file is not important but its extension must be .conf.
Then, we must navigate to /etc/ld.so.conf.d/ and type this command: sudo ldconfig
I tried the fix provided by #Yves above, but that didn't work out for me so here's another way for Debian/Git installations.
Alternative fix:
I have faced this issue on a Docker container which was occuring due to the libzmq/czmq which was installed by cloning the git repo.
The problem is that the shared libraries when installed using git are located in the /usr/local/lib folder instead of /usr/lib/ where usually, in my case a C/C++ program looks for shared library files.
I fixed it by copying all files from /usr/local/lib folder to/usr/lib/ using the command
$ sudo cp -R /usr/local/lib/* /usr/lib
This was for a RPi/ Ubuntu-16.04 docker, the command or location of the files may vary depending on your OS.

Resources