Linux : lister les paquets installés

package-managers

Il peut être intéressant de pouvoir lister les paquets installés sur notre distribution linux.
Par exemple pour en connaitre la version, vérifier si besoin de l’installer.
Nous allons voir comment les lister sur différentes distributions.

Debian

Avec l’outil dpkg

 dpkg --list

On peut utiliser aussi l’outil apt

 apt list --installed

Centos/Redhat

Avec les distribution à base de rpm on utilise yum

yum list installed

Archlinux

Sur Arch, c’est l’utilitaire pacman qui nous permet de gérer nos paquets

 pacman -Q

rpmdb: Lock table is out of available locker entries

rpm-lock

Cette semaine, j’ai recu un mail de cron de l’un de mes serveurs.

Subject: Cron <root@SERVERNAME>
run-parts /etc/cron.weekly
/etc/cron.weekly/makewhatis.cron:
rpmdb: Lock table is out of available locker entries
rpmdb: Unknown locker ID: b4a0
error: db4 error(22) from db->close: Invalid argument
error: cannot open Pubkeys index using db3 - Cannot allocate memory (12)
..

Il y avait au moins plus de 100 erreurs dans ce mail… Après une petite recherche sur google, je me suis rendu compte que le problème datait d’au moins 6 mois.

Voici la méthode pour réparer :

# tar cvzf rpmdb-backup.tar.gz /var/lib/rpm
# rm /var/lib/rpm/__db.00*
# rpm --rebuilddb
# rpm -qa | sort # pour vérifier que tout fonctionne

Après tout ca, je voulais vérifier que la tache cron fonctionnait.

# sh /etc/cron.weekly/makewhatis.cron

Voilà !

Linux raid : mismatch_cnt is not 0 on /dev/md

Linux raid mismatch_cnt

Sur centos / RHEL :

le cron weekly lance ceci :

run-parts /etc/cron.weekly

ce qui produit de temps en temps l’erreur suivante :

/etc/cron.weekly/99-raid-check:
WARNING: mismatch_cnt is not 0 on /dev/md2

Cela provient du fait qu’il y a des blocs non synchronisés.
Pour le réparer il faut lancer en root :

echo repair >/sys/block/mdX/md/sync_action

attendre que sync_action revienne à idle puis

echo check >/sys/block/mdX/md/sync_action

Le prochain cron ne généra plus d’erreurs.

Viurtualisation chez ovh avec kvm

Il peut être intéressant et économique de monter des machines virtuelles sur un serveur. Le réseau ovh étant un peu particulier voici la procédure pour monter des vm rapidement.

  • Installation des paquets nécessaires
# yum install kvm python-virtinst libvirt.x86_64 virt-top kernel
  • Modification du grub.conf

On y ajoute le nouveau kernel

# cat /boot/grub/grub.conf
default=0
timeout=5

title linux centos6_64_kvm
 kernel /boot/vmlinuz-2.6.32-279.11.1.el6.x86_64 root=/dev/md1 ro
 initrd /boot/initramfs-2.6.32-279.11.1.el6.x86_64.img
 root (hd0,0)
title linux centos6_64
 kernel /boot/bzImage-3.2.13-xxxx-grs-ipv6-64 root=/dev/md1 ro
 root (hd0,0)
  • Ajout du repot epel
# rpm -Uvh http://mir01.syntis.net/epel/6/x86_64/epel-release-6-8.noarch.rpm
  • Redemarrage sur le nouveau noyau
# reboot
  • Démarrage des services kvm
# service libvirtd start
# chkconfig --level 345 ksm on
# chkconfig --level 345 ksmtuned on
  • Configuration réseau
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE=eth0
 BRIDGE=br0
 ONBOOT=yes
# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
 TYPE=Bridge
 BOOTPROTO=static
 IPADDR=MYIPADRESS
 NETMASK=255.255.255.0
 ONBOOT=yes
 GATEWAY=MYGATEWAY
  • Création d’une machine virtuelle
# /usr/bin/qemu-img create -f qcow2 -o preallocation=metadata /home/vm/myimage.img 50G
# virt-install --name=mymachine --ram=4096 --vcpus=1 --os-variant=rhel6 --disk=path=/home/vm/myimage.img --network=bridge=br0,type=virtio,mac=[MACOVH] --location=ftp://mir1.ovh.net/ftp.centos.org/6.5/os/x86_64 --accelerate -x "console=ttyS0"

Lors de l’installation, au moment du paramétrage réseau, il faut mettre ces informations :

ip : IP FAILOVER  / 32 
gateway : MONKVMSERVEUR mais avec 254 à la fin (la même gateway que notre kvm serveur)
nameserver : 213.186.33.99
  • Après l’installation

Sur ma Centos, j’ai besoin de paramétrer la route par défaut

# cat /etc/sysconfig/network-scripts/route-eth0
 KVMSERVER .254 dev eth0
 default via KVMSERVER .254 dev eth0

Have Fun !!

Sudo sans mot de passe

Juste une petite astuce qui peut s’avérer bien pratique si vous avez souvent à taper votre mot de passe pour le sudo.

Grâce à ceci vous n’aurez plus à rentrer de mot de passe.

root~# sudoedit /etc/sudoers

Ajoutez ensuite ceci :

monuser ALL = NOPASSWD: ALL

Remplacer juste l’utilisateur monuser par le votre.
Enregistrez puis quittez !

Petite précision car ceci ne respecte aucune norme de sécurité … Si vous devez le faire sur des serveurs il faut choisir un programme :

monuser ALL = NOPASSWD: /usr/bin/shutdown  par ex

Si vous souhaitez en savoir plus sur la commande sudo :

sudo sur wikipedia