Why some binaries are duplicated in the Linux filesystem? - linux

Good Morning,
There are some commands that are both in /bin and in /usr/bin in our Yocto filesystem.
Is that normal? I don't think it's a mistake we made in building our Yocto filesystem because I see the same thing in my regular Debian Buster distribution (see below). But what is the purpose of that duplication?
Here is an example of what I'm talking about:
root#debian:~# ls -l /bin/zip* /usr/bin/zip*
-rwxr-xr-x 1 root root 213136 Aug 16 2015 /bin/zip
-rwxr-xr-x 1 root root 90432 Aug 16 2015 /bin/zipcloak
-rwxr-xr-x 1 root root 48497 Jul 21 2020 /bin/zipdetails
-rwxr-xr-x 1 root root 2953 Jan 10 16:12 /bin/zipgrep
-rwxr-xr-x 2 root root 183136 Jan 10 16:12 /bin/zipinfo
-rwxr-xr-x 1 root root 86048 Aug 16 2015 /bin/zipnote
-rwxr-xr-x 1 root root 86048 Aug 16 2015 /bin/zipsplit
-rwxr-xr-x 1 root root 213136 Aug 16 2015 /usr/bin/zip
-rwxr-xr-x 1 root root 90432 Aug 16 2015 /usr/bin/zipcloak
-rwxr-xr-x 1 root root 48497 Jul 21 2020 /usr/bin/zipdetails
-rwxr-xr-x 1 root root 2953 Jan 10 16:12 /usr/bin/zipgrep
-rwxr-xr-x 2 root root 183136 Jan 10 16:12 /usr/bin/zipinfo
-rwxr-xr-x 1 root root 86048 Aug 16 2015 /usr/bin/zipnote
-rwxr-xr-x 1 root root 86048 Aug 16 2015 /usr/bin/zipsplit
Thanks for your reading.

some of those binary does some special functions and purpose other than the main program.
just take a look at the grep program
original 'grep'
extended ones are - egrep, bgrep, pgrep, fgrep.
they all do the same thing but gives the user more flexibility and ease of usage

Related

How Does The Visual Studio Code Integrated Terminal Work in Linux?

I am running Visual Studio Code Version 1.19.3 on Linux Mint 18.3. When I try to execute binaries that I can clearly see and run in my external terminal, they cannot be found. When I 'ls' /usr/bin from the integrated terminal, many files are missing and others are different versions.
External bash /usr/bin ls snippet:
-rwxr-xr-x 1 root root 10392 Jan 30 2016 pgmtolispm
-rwxr-xr-x 1 root root 17048 Jan 30 2016 pgmtopbm
-rwxr-xr-x 1 root root 10392 Jan 30 2016 pgmtoppm
-rwxr-xr-x 1 root root 27280 Nov 21 2016 pgrep
lrwxrwxrwx 1 root root 22 Jan 15 21:29 phar -> /etc/alternatives/phar
lrwxrwxrwx 1 root root 12 Aug 9 10:43 phar7.0 -> phar.phar7.0
lrwxrwxrwx 1 root root 27 Jan 15 21:29 phar.phar -> /etc/alternatives/phar.phar
-rwxr-xr-x 1 root root 14826 Aug 9 10:42 phar.phar7.0
lrwxrwxrwx 1 root root 21 Jan 15 21:29 php -> /etc/alternatives/php
-rwxr-xr-x 1 root root 4430896 Aug 9 10:43 php7.0
-rwxr-xr-x 1 root root 6264 Jan 30 2016 pi1toppm
-rwxr-xr-x 1 root root 10384 Jan 30 2016 pi3topbm
-rwxr-xr-x 1 root root 200736 Jan 29 2016 pic
Integrated terminal /usr/bin ls snippet:
-rwxr-xr-x 3 nfsnobody nfsnobody 45393 Dec 31 1969 perlthanks
-rwxr-xr-x 2 nfsnobody nfsnobody 14408 Dec 31 1969 pfbtops
-rwxr-xr-x 2 nfsnobody nfsnobody 38896 Dec 31 1969 pg
-rwxr-xr-x 3 nfsnobody nfsnobody 26680 Dec 31 1969 pgrep
-rwxr-xr-x 2 nfsnobody nfsnobody 200696 Dec 31 1969 pic
Is VSC creating some kind of virtual filesystem for the terminal that has its own /usr/bin, but still attaches my working folder in the right path? I am lost and it is preventing me from being able to use the Google debugger and PHP Intellisense, just to name a couple of things.

npm erased Plesk 12 on Ubuntu 16.04

My issue is pretty simple to explain and I guess hard to solve: I commited the stupidity of installing npm on a cloud based server with Ubuntu 16.04 with Plesk 12.
After reading this article I realized it was too late and after trying to connect to my Plesk GUI got an 403 error.
Also if I execute plesk on the CLI, it shows:
user#server:~$ plesk repair
plesk: command not found
So, I erased Plesk... All my hosted sites on Plesk are reachable with their databases in their URLs or by SSH.
The hosting provider told me there is no way to restore Plesk without losing everything unless I made a backup, but I didn't. Maybe there is an alternative... Do you know it?
Edit: Content of /var/lib/psa/dumps:
user#server:/var/lib/psa/dumps$ ls -lrta
total 5708
drwxr-xr-x 3 root root 4096 ene 4 2017 ..
-rw------- 1 root root 206315 ene 4 2017 mysql.preupgrade.12.0.18-12.0.18.20170104-173632.dump.gz
-rw------- 1 root root 3417 ene 4 2017 mysql.preupgrade.apsc.12.0.18-12.0.18.20170104-173633.dump.gz
-rw------- 1 root root 208481 ene 4 2017 mysql.preupgrade.12.0.18-12.5.30.20170104-174155.dump.gz
-rw------- 1 root root 3002 ene 4 2017 mysql.preupgrade.apsc.12.0.18-12.5.30.20170104-174156.dump.gz
-rw------- 1 root root 220725 ene 23 2017 mysql.preupgrade.12.5.30-12.5.30.20170123-062554.dump.gz
-rw------- 1 root root 3002 ene 23 2017 mysql.preupgrade.apsc.12.5.30-12.5.30.20170123-062556.dump.gz
-rw------- 1 root root 236736 feb 8 06:27 mysql.preupgrade.12.5.30-12.5.30.20170208-062713.dump.gz
-rw------- 1 root root 3003 feb 8 06:27 mysql.preupgrade.apsc.12.5.30-12.5.30.20170208-062715.dump.gz
-rw------- 1 root root 262580 feb 24 06:26 mysql.preupgrade.12.5.30-12.5.30.20170224-062621.dump.gz
-rw------- 1 root root 4603 feb 24 06:26 mysql.preupgrade.apsc.12.5.30-12.5.30.20170224-062623.dump.gz
-rw------- 1 root root 258785 mar 22 06:26 mysql.preupgrade.12.5.30-12.5.30.20170322-062626.dump.gz
-rw------- 1 root root 4898 mar 22 06:26 mysql.preupgrade.apsc.12.5.30-12.5.30.20170322-062627.dump.gz
-rw------- 1 root root 251339 abr 17 06:25 mysql.preupgrade.12.5.30-12.5.30.20170417-062540.dump.gz
-rw------- 1 root root 4899 abr 17 06:25 mysql.preupgrade.apsc.12.5.30-12.5.30.20170417-062543.dump.gz
-rw------- 1 root root 244219 may 16 06:25 mysql.preupgrade.12.5.30-12.5.30.20170516-062533.dump.gz
-rw------- 1 root root 4373 may 16 06:25 mysql.preupgrade.apsc.12.5.30-12.5.30.20170516-062535.dump.gz
-rw------- 1 root root 248044 jun 1 06:25 mysql.preupgrade.12.5.30-12.5.30.20170601-062529.dump.gz
-rw------- 1 root root 4381 jun 1 06:25 mysql.preupgrade.apsc.12.5.30-12.5.30.20170601-062530.dump.gz
-rw------- 1 root root 273341 jul 17 06:25 mysql.preupgrade.12.5.30-12.5.30.20170717-062542.dump.gz
-rw------- 1 root root 4379 jul 17 06:25 mysql.preupgrade.apsc.12.5.30-12.5.30.20170717-062544.dump.gz
-rw------- 1 root root 367277 jul 20 06:26 mysql.daily.dump.8.gz
-rw------- 1 root root 367218 jul 21 06:25 mysql.daily.dump.7.gz
-rw------- 1 root root 368954 jul 22 06:25 mysql.daily.dump.6.gz
-rw------- 1 root root 369279 jul 23 06:25 mysql.daily.dump.5.gz
-rw------- 1 root root 368767 jul 24 06:25 mysql.daily.dump.4.gz
-rw------- 1 root root 369629 jul 25 06:26 mysql.daily.dump.3.gz
-rw------- 1 root root 370169 jul 26 06:25 mysql.daily.dump.2.gz
-rw------- 1 root root 368027 jul 27 06:25 mysql.daily.dump.1.gz
-rw------- 1 root root 368128 jul 28 06:26 mysql.daily.dump.0.gz
drwxr-xr-x 2 psaadm psaadm 4096 jul 29 01:32 .
-rw------- 1 root root 20 jul 29 01:32 mysql.plesk.core.prerm.12.5.30.20170729-013250.dump.gz
First of all, I recommend to change the hosting provider, as their answer is incorrect and it seems, that they don't have much experience with Plesk, nor do they seem to have much knowledge about Plesk.
Second, your statements are a bit unclear, as you state:
although I made a backup
and directly afterwards you stated:
and I didn't
Could you pls. clarify WHAT you did and what you forgot to do?
Third, pls. have a look at => "/var/lib/psa/dumps" and inform us about the possible content.
Fourth, if you have dumps located at "/var/lib/psa/dumps", you will always have the choice to re-install Plesk and to re-import the latest "psa", "mysql" and "horde" - databases from your dumps. How to restore a Plesk database dump is explained at:
=> https://support.plesk.com/hc/en-us/articles/213904125
If you have further Plesk related questions, I recommend a new thread at the official Plesk Community Forum ( => https://talk.plesk.com ) , where experienced Plesk users will help you with Plesk - related questions/issues/errors/problems! ;-)

Reading package lists... Error! on EC2

I am running Ubuntu 14.04.1 LTS on a t1.micro on ec2. Just a moment ago I logged in, ran sudo apt-get update and got Reading package lists... Error!
I also realized that I no longer can install packages using sudo apt-get install.
Any idea what went wrong here? And how to fix it?
I have tried the answer suggested in this thread https://unix.stackexchange.com/questions/139441/reading-package-lists-error but that did not fix the problem. What makes things a little annoying also is the lack of error logs (or the fact I do not know where to look). For example the sudo apt-get install just fails and I do not know how to run it in verbose mode or where to look to find the specific reason why it is failing...
Here is the content of /var/lib/apt/lists
total 105476
drwxr-xr-x 3 root root 4096 Mar 15 23:05 .
drwxr-xr-x 6 root root 4096 Mar 9 05:58 ..
-rw-r----- 1 root root 0 Mar 15 20:02 lock
drwxr-xr-x 2 root root 4096 Mar 15 23:05 partial
-rw-r--r-- 1 root root 822 Mar 15 19:23 pkg.jenkins-ci.org_debian_binary_Packages
-rw-r--r-- 1 root root 2046 Mar 15 19:23 pkg.jenkins-ci.org_debian_binary_Release
-rw-r--r-- 1 root root 181 Mar 15 19:23 pkg.jenkins-ci.org_debian_binary_Release.gpg
-rw-r--r-- 1 root root 19466 Mar 13 10:29 ppa.launchpad.net_webupd8team_java_ubuntu_dists_trusty_main_binary-amd64_Packages
-rw-r--r-- 1 root root 6192 Mar 13 10:29 ppa.launchpad.net_webupd8team_java_ubuntu_dists_trusty_main_i18n_Translation-en
-rw-r--r-- 1 root root 15111 Mar 13 10:29 ppa.launchpad.net_webupd8team_java_ubuntu_dists_trusty_Release
-rw-r--r-- 1 root root 316 Mar 13 10:29 ppa.launchpad.net_webupd8team_java_ubuntu_dists_trusty_Release.gpg
-rw-r--r-- 1 root root 1410166 Mar 12 21:35 security.ubuntu.com_ubuntu_dists_trusty-security_main_binary-amd64_Packages
-rw-r--r-- 1 root root 1140580 Mar 11 00:34 security.ubuntu.com_ubuntu_dists_trusty-security_main_i18n_Translation-en
-rw-r--r-- 1 root root 349379 Mar 12 21:40 security.ubuntu.com_ubuntu_dists_trusty-security_main_source_Sources
-rw-r--r-- 1 root root 61968 Mar 12 21:40 security.ubuntu.com_ubuntu_dists_trusty-security_Release
-rw-r--r-- 1 root root 933 Mar 12 21:40 security.ubuntu.com_ubuntu_dists_trusty-security_Release.gpg
-rw-r--r-- 1 root root 542657 Mar 12 21:35 security.ubuntu.com_ubuntu_dists_trusty-security_universe_binary-amd64_Packages
-rw-r--r-- 1 root root 250304 Mar 11 00:34 security.ubuntu.com_ubuntu_dists_trusty-security_universe_i18n_Translation-en
-rw-r--r-- 1 root root 72494 Mar 12 21:40 security.ubuntu.com_ubuntu_dists_trusty-security_universe_source_Sources
-rw-r--r-- 1 root root 8234934 May 8 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-amd64_Packages
-rw-r--r-- 1 root root 4149211 Apr 15 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-en
-rw-r--r-- 1 root root 5000095 May 8 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_main_source_Sources
-rw-r--r-- 1 root root 58512 May 8 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_Release
-rw-r--r-- 1 root root 933 May 8 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_Release.gpg
-rw-r--r-- 1 root root 31726252 May 8 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_universe_binary-amd64_Packages
-rw-r--r-- 1 root root 18635427 May 8 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_universe_i18n_Translation-en
-rw-r--r-- 1 root root 27857155 May 8 2014 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty_universe_source_Sources
-rw-r--r-- 1 root root 2881415 Mar 15 22:58 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_main_binary-amd64_Packages
-rw-r--r-- 1 root root 1784682 Mar 12 18:07 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_main_i18n_Translation-en
-rw-r--r-- 1 root root 938350 Mar 15 22:58 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_main_source_Sources
-rw-r--r-- 1 root root 61966 Mar 15 22:58 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_Release
-rw-r--r-- 1 root root 933 Mar 15 22:58 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_Release.gpg
-rw-r--r-- 1 root root 1538422 Mar 15 22:58 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_universe_binary-amd64_Packages
-rw-r--r-- 1 root root 669587 Mar 12 18:27 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_universe_i18n_Translation-en
-rw-r--r-- 1 root root 510829 Mar 15 22:58 us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_universe_source_Sources
and a little snippet from /var/lib/dpkg/status
Package: node-normalize-package-data
Status: install ok installed
Priority: extra
Section: web
Installed-Size: 58
Maintainer: Ubuntu Developers <ubuntu-devel-discuss#lists.ubuntu.com>
Architecture: all
Version: 0.2.2-1
Depends: nodejs, node-github-url-from-git, node-semver (>= 2)
Description: Normalizes package metadata - Node.js module
This module is used by node-read-package-json to normalize data it
reads from a package.json file typically found in Node.js modules,
but in principle it could come from any source.
.
Node.js is an event-based server-side javascript engine.
Original-Maintainer: Debian Javascript Maintainers <pkg-javascript-devel#lists.alioth.debian.org>
Homepage: https://github.com/meryn/normalize-package-data
A restart of the instance fixed the issue. Why this worked, I cannot explain!
You can try out the below commands to fix the issue
sudo rmdir /var/lib/dpkg/status
sudo touch /var/lib/dpkg/status
sudo apt-get update
The first command will remove the empty directory, second will create the new directory and the last command will populate the lists files.
Also, Restart your EC2 instance to make the above changes effective.

Searching shared libraries in Linux

please explain me why on x86_64 Scientific Linux no file under /etc/ld.so.conf.d contains the directory /usr/lib64?
The list of directories to be searched by program loader is stored in the file /etc/ld.so.conf. On my distributive, this file stores this row: include ld.so.conf.d/.conf*
And the above directory consists of:
[root#dev_host build]$ ls -la /etc/ld.so.conf.d
total 36
drwxr-xr-x. 2 root root 4096 Aug 29 23:13 .
drwxr-xr-x. 103 root root 12288 Sep 18 03:41 ..
-rw-r--r--. 1 root root 17 Mar 20 2012 atlas-x86_64.conf
-r--r--r--. 1 root root 324 May 7 23:40 kernel-2.6.32-431.17.1.el6.x86_64.conf
-r--r--r--. 1 root root 324 Nov 22 2013 kernel-2.6.32-431.el6.x86_64.conf
-rw-r--r--. 1 root root 17 Feb 12 2014 mysql-x86_64.conf
lrwxrwxrwx 1 root root 31 Aug 11 14:46 postgresql-pgdg-libs.conf -> /etc/alternatives/pgsql-ld-conf
-rw-r--r--. 1 root root 22 Sep 7 2011 qt-x86_64.conf
I examined all these files - there is no /usr/lib64. Why? Is it stored in /etc/ld.so.cache?

Size of kernel built is much much larger than the built-in one

I got latest kernel source from kernel.org(using git), and followed the steps as described in this page to build the kernel. The kernel boots successfully, however, I have no idea what was done incorrectly in the configuration process that initrd.img-3.16.0 is so much larger than the build in one(initrd.img-3.13.0-32-generic)
I copied the configuration file .config from /boot/ and used "yes '' | make oldconfig" for the kernel configuration.
the file size total 191M
-rw-r--r-- 1 root root 1.2M Jul 14 21:29 abi-3.13.0-32-generic
-rw-r--r-- 1 root root 162K Jul 14 21:29 config-3.13.0-32-generic
-rw-r--r-- 1 root root 167K Aug 4 19:48 config-3.16.0
-rw-r--r-- 1 root root 20M Jul 28 15:14 initrd.img-3.13.0-32-generic
-rw-r--r-- 1 root root 151M Aug 4 19:48 initrd.img-3.16.0
-rw-r--r-- 1 root root 173K Mar 12 05:31 memtest86+.bin
-rw-r--r-- 1 root root 174K Mar 12 05:31 memtest86+.elf
-rw-r--r-- 1 root root 175K Mar 12 05:31 memtest86+_multiboot.bin
-rw------- 1 root root 3.3M Jul 14 21:29 System.map-3.13.0-32-generic
-rw-r--r-- 1 root root 3.4M Aug 4 19:48 System.map-3.16.0
-rw------- 1 root root 5.6M Jul 14 21:29 vmlinuz-3.13.0-32-generic
-rw-r--r-- 1 root root 5.7M Aug 4 19:48 vmlinuz-3.16.0
Thanks!
William
follow below steps to obtain the right kernel configuration
Copy /boot/.config to the kernel source code directory
make menuconfig
Exit and save configuration
make
and then continue with the other options for install
Note : Since you are using make oldconfig, this would enable many of the options not related to the platform but related to the CPU architecture.
This steps should help you solve this issue

Resources