CentOS and yum - Error: rpmdb open failed

Today I had Ansible reporting an error on one of my CentOS machines while performing the usual upgrade procedure. I SSH’d into the host to check what was wrong and run yum clean all && yum update manually just to be greeted with the following error: rpmdb: PANIC: fatal region error detected; run recovery error: db3 error(-30974) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974) error: cannot open Packages database in /var/lib/rpm CRITICAL:yum.main: Error: rpmdb open failed The solution to the issue luckily was fairly simple and quick: …

Posted on

NFS on Fedora

NFS allows to share files and folders over network and is much much faster than samba while using way less resources. To setup a NFS server on Fedora 26 install: $ dnf install nfs-utils Shared directories are listed in the following configuration file: --- # Syntax # <path> <ipaddr>(<option>) /home/user/Public 192.168.0.0/255.255.255.0(ro,sync) More information can be found here: Fedora NFS administration guide. In the above example, the the directory ‘/home/user/Public’ can be accessed by every client in the same LAN with read-only permissions. In case SELinux is active and enforcing rules some further configuration might be required: …

Posted on

AMD Ryzen-info :: Python

AMD Ryzen-info is a small Python script I wrote to monitor the main hardware system information of an AMD Ryzen system running on a recent version of Linux kernel. It relies on dmidecode and lm_sensors to gather the needed information, to get correct voltage and temperature readings it is critical that the most up to date version of the it87 kernel module is installed; Python version 3.5 or higher is also hard requirement. Edit /etc/sysconfig/lm_sensors to make it load it87 modules at boot: …

Posted on

AMD Ryzen on Linux

Finally we have some new hardware worth writing of and also spending money on. I have been using an AMD Ryzen 7 1700X based build for some time now and so far I am really liking it, the CPU is marvelous considering the pricetag and felt like a worthwhile upgrade from the Xeon E3-1241v3 I was using before; it is basically twice the cores clocked at pretty much the same speed. Awesome. There are a couple of points worth spending some words on tho. …

Posted on

Handbrake, compile from source on Fedora 25

Handbrake cannot be installed from default repos nor rpmfusion, to get it on Fedora 25 there are two other options: use negativo17 third party repository; compile from source. The first option is, but that is my opinion, subpar because I don’t trust third party repositories; option two is what is left. Download the source code from git and install some dependencies: $ git clone https://github.com/HandBrake/HandBrake.git $ sudo dnf install dbus-glib-devel gstreamer1-devel gstreamer1-plugins-base-devel intltool libgudev1-devel libnotify-devel webkitgtk3-devel libgudev-devel dbus-glib-devel webkitgtk3-devel gstream-devel libnotify-devel gstreamer1-devel gstreamer1-plugins-base-devel lame-devel opus-devel fribidi-devel libass-devel libtheora-devel x264-devel nasm Like I do with every other program I like to keep as much up to date as possible, I have a small script to take care of compilation, installation and upgrade processes for me. …

Posted on

Gajim and OMEMO on Gentoo Linux

OMEMO is the new-ish state of the art end-to-end encryption XMPP protocol extension, Gajim support it via a plugin but making it work on Gentoo is not straightforward at all. Gajim’s OMEMO plugin requires python-axolotl package to work, since that is not present in Gentoo’s repositories it must be installed from source. Before doing so a couple of dependencies must be installed first: $ emerge -a dev-python/protobuf-python $ chmod o+w /usr/lib64/python3.4/site-packages/protobuf-3.2.0-py3.4.egg/EGG-INFO/namespace_packages.txt $ emerge -a dev-python/pillow dev-python/qrcode The chmod command fix some permission issue that arise when installing packages depending on protobuf-python if Python 3.4 support is enabled. Get and compile python-axolotl: …

Posted on

Monitor hard disk SMART status :: Python

I have been fighting for years with smartd but I really never managed to configure it the way I want. While I certainly am not backblaze, I still have quite a few hard disks I would like to monitor and be able to replace before they actually die. I hacked up a small Python script to query some SMART attributes and send me an email in case something funky is going on; to use it just put in /etc/cron.daily and tell cronie to run it. To work correctly the script also needs smartctl and sendmail. …

Posted on

Monitor hard disk health status with smartd on Linux

This does not really works, read this: https://nagg.eu/monitor-hard-disk-smart-status-in-python/ First of all install smartmontools, it has the same name on pretty much every distro: $ emerge -a1 smartmontools Proceed to edit its configuration file, at the bottom of the file there is a quick explaination of all the available parameters: cat/etc/smartd.conf --- DEVICESCAN -H -R 1 -R 5 -R 7 -R 10 -R 11 -R 196 -R 197 -R 199 -R 200 -m user@domain.tld -n standby,10,q Parameter -H tells smartd to check the result of overall-health self-assesment test which is pretty much useless, -R is used to specify a single SMART attribute, if its value changes a mail is sent to user@domain.tld. To send emails a MTA must be installed, in centos that is sendmail, in gentoo it is not strictly necessary to have a full fledget MTA installed, nullmailer will suffice. If it is not already installed: …

Posted on

Compile LineageOS for Oneplus 3 on Fedora 25

Android community is one big cancerous clusterfuck, it is no wonder that finding a decent guide on how to compile Android from source written in a somewhat comprehensible english is pretty much mission impossible. Cyanogenmod Inc. shutting down their wiki and services overnight surely didn’t help either. Required packages on Fedora 25 are (rpmfusion repo must be previously installed): $ sudo dnf install screen java-1.8.0-openjdk-devel git schedtool ncurses-devel ncurses-libs ncurses-compat-libs ImageMagick-devel libstdc++-devel bison gnupg lzma For some reason the compilation process stores some temporary files in /tmp which, in Fedora 25, is mounted on a tmpfs ramdisk. In case the ramdisk runs out of space for some retarded reason the build process instead of halting will go on like nothing happens and produce borked binaries as output. To keep /tmp mounted on HDD run: …

Posted on

Manually backup/restore Android application's data

Android stores application’s data in /data/data directory, it can be accessed via adb only on a rooted phone. To make a backup copy the correspondent directory: $ adb root $ adb pull /data/data/eu.siacs.conversations Application’s data can also be extracted from a full system backup made with TWRP: $ tar -xvf data.ext4.win000 Restoring the backup is the tricky part since Android uses SELinux and every app has it’s own unix user. Before copying back on the phone the already backupped files reinstall the app from f-droid or whatever, then proceed as follow: …

Posted on