Q: E: Error reading the CPU table in ubuntu - ubuntu-17.04

I can not update or upgrade my computer by terminal.
Show the error message E: Error reading the CPU table.
how can I fix it ?

In my case some file system corruption caused files in the directory /usr/share/dpkg/ and the file /usr/share/dpkg/cputable wasn't found
to be deleted, concurrent access during some other operation?
rsync / copying ( in my case rsync'ing ) from a known good installation appears to have fixed this particular problem
possible alternative boot from a livecd and mount the target disk and copy
The command strace apt update showed the location of the missing file

In My case I have faced with corrupted dpkg installation and at the end it ended up with “E: Error reading the CPU table” even I enter sudo apt-get update
Step to fix it.
1) Create tempory location for dpkg and download relavent .deb file
sudo mkdir /tmp/dpkg then
cd tmp/dpkg
2) Downlod .deb file with relavent .deb file in http://archive.ubuntu.com/ubuntu/pool/main/d/dpkg/
sudo wget http://archive.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg_1.19.0.5ubuntu5.1_amd64.deb
3) Manually go to that downloaded directory and extract the .deb file(GDebi installation might not work as well)
Navigate to <Your_Extracted_Folder>/usr/share/dpkg and now you can
see the set of files with cputable file. We need to copy these files
to /usr/share/dpkg
4) Check /usr/share/ having dpkg folder if not create it with
sudo mkdir /usr/share/dpkg
5) cd <Your_Extracted_Folder>/usr/share/dpkg
6) sudo cp * /usr/share/dpkg
Now you can see all the files and it will fix the “E: Error reading the CPU table”

Check if you have (unintentionally) "overwritten" your /usr/share directory with a file..
ls -l /usr/
-rwxr-xr-x 1 root root 1254 Feb 4 19:08 share*
drwxr-xr-x 193 root root 4096 Dec 10 09:09 share~/
I solved it by moving the file share* to share_bak and then renaming the directory share~ (to share). Problem solved!

Related

Cannot create temporary file - mkstemp: No such file or directory

In centos when installing package yum install <package>
it didn't work & throws the error as Cannot create temporary file - mkstemp: No such file or directory
May be you could have deleted your /tmp directory
mkdir -p /tmp/mkstempc resolves the problem.
I had a similar issue.
Discovered that my environment variable TMP was set to ~/tmp . As root, dnf didn't like that. so I
$ unset TMP
Then (CentOS stream 8)
'dnf install <package>'
worked fine.
For more background, a similar question was asked, but no specific resolution:
https://serverfault.com/questions/1030768/linux-error-creating-temporary-file-var-tmp

Composer Akeneo installation Could not open input file composer.phar

I am trying to install a PIM named Akeneo. The system requirements are all checked:
https://docs.akeneo.com/2.3/install_pim/manual/system_requirements/system_requirements.html
I am on Apache2 / Ubuntu 16.04
My /var/www/ directory all belongs to www-data:www-data ( ran chown -R www-data:www-data to install )
Error message from server : “Could not open input file: composer.phar”
Googled about it , got many results, and looked on the forums on stakoverflow, found answers from 2010 to 2018. I think I have maybe found out that the problem could be linked with the file "composer.phar", the way symlinks work on apache2, and composer installed globally or "inside individual project(s)".
Following 2 tutorials, I had to install composer to continue the install for that PIM.
My server says:
Composer (version 1.10.10) successfully installed to:
/usr/local/bin/composer
If I navigate to cd ~ and run ls I see there is "composer.phar" and "composer-setup.php" here.
I am confused because the Akeno tutorial says:
After extracting the file, change into the Akeneo directory and run
the commands below:
cd /var/www/html/akeneo/pim-community-standard
sudo php -d memory_limit=3G ../composer.phar install --optimize-autoloader --prefer-dist
sudo php bin/console cache:clear --no-warmup --env=prod
...
I don't understand the composer.phar install part . There are no composer.phar file inside any directories : not in /var/www/html/akeneo/ and not in /var/www/html/akeneo/pim-community-standard
Was it supposed to generate a composer.phar file there ? Should it find composer.phar one level above ( ../composer.phar ) ? I doubled checked the Akeneo PIM files , and the original .rar archive has no composer.phar file. Or, is it something to do with a symlink that accesses the global "composer.phar" which was with the global install ? Regarding symlinks, there are some in the "vendor" fodler of the PIM, and runing ls -l -a gives :
lrwxrwxrwx 1 www-data www-data 28 Feb 5 2020 doctrine -> ../doctrine/orm/bin/doctrine
lrwxrwxrwx 1 www-data www-data 34 Feb 5 2020 doctrine-dbal -> ../doctrine/dbal/bin/doctrine-dbal
lrwxrwxrwx 1 www-data www-data 46 Feb 5 2020 doctrine-migrations -> ../doctrine/migrations/bin/doctrine-migrations
lrwxrwxrwx 1 www-data www-data 56 Feb 5 2020 requirements-checker -> ../symfony/requirements-checker/bin/requirements-checker
lrwxrwxrwx 1 www-data www-data 51 Feb 5 2020 var-dump-server -> ../symfony/var-dumper/Resources/bin/var-dump-server
There is a composer.json and composer.lock file inside /var/www/html/akeneo/pim-community-standard . So confused because the turorial says to be inside pim-community-standard directory and run this : php -d memory_limit=3G ../composer.phar install --optimize-autoloader --prefer-dist
I hope I can resume the install without breaking anything. Some posts give the solution of updating composer, or installing composer-phar, inside the project. I am honestly totally lost.
( I don't know if I should bring that up, but is docker needed (not talked about in tutorial - but I see a folder with "docker" in it and I know that composer and docker can work together sometimes )
I moved the composer.phar file into the app directory. Now the install advanced. It's not a technical issue a misconfiguration or anything like that.
It's a lack of information about Composer on the Akeneo site but it's probably assumed that users should have knowledge about Composer allready.
Solution for me : moving the "composer.phar" file (from 'home' for me ) to the /var/www/project/ (.. the correct level directory).
So for my case it was a global / local install issue , which is still unclear, and I will have to look deeper how to properly install composer. Not sure if my current setup will not cause any issue later since it's like I installed it globally at first then moved only one file.
Also, command "composer" is not returning anything. I do have the composer file in /usr/bin/ though. This is very strange.

How to install Apache on OmniOS

I am attempting to install Apache on OmniOS. I followed the instructions here: option 2 https://wiki.openindiana.org/oi/3.+Installing+software+and+package+management
Ran the command:
echo $PATH results in /opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/sbin:/sbin
curl https://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2016Q4-x86_64.tar.gz | gtar -zxpf - -C /
pkgin -y update
pkgin -y install apache-2.4.6 resulted in the messages Calculating dependencies...done and then nothing to do
I can not find the apache service or configuration directory as they are described here: https://docs.joyent.com/public-cloud/instances/infrastructure/images/smartos/apache
/opt/local/etc/httpd The configuration directory for Apache
svcs pkgsrc/apache Checking service for Apache
Server Info:
uname -v results in omnios-r151026-d9b45886bd
Running x86
Also running SunONE webserver
Though incomplete, my commands did make a change. My Perl scripts can no longer find DBI.
Why does the Apache install say there is nothing to do? What am I missing?
UPDATE
Ran which apache2 resulted in no apache2
Ran pkgin list to list all installed packages. Only apache
reference is apache-maven-3.5.4
Ran find . -name '*apache*' in the following directories:
\etc nothing
\opt found:
vim, el, and elc files in SUNWspro
org-apache-tools-ant-module files and folder in netbeans/3.5V11/modules/patches
apache folder in SUNWwbsvr/plugins/java/samples/webapps/jstl/src/org which contains java files
vim, tag, el and elc files in sfw --- also an apache folder in sfw which contains readme/bash type files for apache/php and one so file
apache-maven-3.5.4 files/folders in local
org-apache-xml-resolver* files in sunstudio12.1
'\usr' found:
2 vims in share/vim/vim80/syntax
apache-fcgi.conf in lib/python2.7/vendor-packages/cherrypy/scaffold
'\var' nothing
As far as I can tell, the binaries have not been installed
I tried running pkgin -y install apache-2 and it worked. It installed apache-2.4.3. Perhaps apache-2.4.6 does not exist in the repository.
This mean apache is already installed on the Linux system. To run below command which will tell the location of the system binary.
which apache2
for the configuration folder look for below directory:
/etc/apache2

File conflict error during rpm install

I have two rpms xinstrument.rpm and xlog.rpm.
First the xinstrument.rpm should be installed followed by the xlog.rpm.
Both these rpms create and copy data into /opt/xinstrument-control/ directory.
But problem is when we install the second rpm xlog.rpm then we get conflict errors
Preparing... ################################# [100%]
file /opt/xinstrument-control from install of xlog_x86_64 conflicts with file from package xinstrument.x86_64
.
.
.
.
xinstrument.rpm when installed gives the following permission to the xinstrument-control directory
# ls -l /opt/
total 0
drwxr-xr-x 1 root users 38 May 24 14:34 xinstrument-control
while xlog.rpm when installed gives the following permission to the xinstrument-control directory
# ls -l /opt/
total 16
drwxr-xr-x 6 root sys 4096 May 16 05:43 xinstrument-control
Seeing the permissions and ownership of the directory is there any problem in it which is leading to conflict?
What else might be the cause of the conflict and how to resolve it?
Only one can own that directory. Don't have both include it in their %files stanza.

how to read shadow file in linux using python script

file = open('/etc/shadow', 'r')
print(file)
getting error like this
file = open('/etc/shadow', 'r')
IOError: [Errno 13] Permission denied: '/etc/shadow'
On most systems /etc/shadow is owned by root with rw permissions.
$ ls -la /etc/shadow
-rw------- 1 root root 692 Jun 10 19:24 /etc/shadow
You need to either:
Change the permissons (don't do this it is not safe)
but you could this by running 'chmod o+r /etc/shadow' as root. This will give the 'other' users read rights to
Run your program as root. Either by
a. Starting it as root
su -c 'python myPython.py' //you will be asked to provide the root password.
b. Starting it with sudo [1]
sudo python myPython.py this all depends on you sudo configuration but is your best bet other then just starting python as root.
Also an example to call sudo from within python[5].
c. Set setuid bit on the program [2]
This will most likely not work as Python is an interpreted language and most modern Unix systems will disallow (exception being Perl) setuid on interpreted programs as opposed to compiled/binaries.
chown root programName # Set owner to be root
chmod +s programName # This gives the program itself the right to run as root.
Regardless of whom starts it.
[1]http://en.wikipedia.org/wiki/Sudo
[2]http://en.wikipedia.org/wiki/Setuid
[3]Open a file as superuser in python
[4]Setuid bit on python script : Linux vs Solaris
[5]Using sudo with Python script
The problem is not with the source code or python. But with not having the correct file system rights to the '/etc/shadow' file.
In python 3 you can do:
import spwd
spwd.getspnam('username')
More information about the spwd module can be found here: https://docs.python.org/3/library/spwd.html#module-spwd