Table des matières

Debian

On trouve plusieurs outils pour gérer les packages, ci-dessous les commandes utilisées avec les paramètres les plus courants :

apt-get

apt-get update
apt-cache search kernel
apt-get install <nom_du_package>
apt-get install --reinstall <nom_du_package>

apt-get remove <nom_du_package>

apt-get remove --purge <nom_du_package>
apt-get -u upgrade test (-s pour simuler et -u pour afficher la liste des paquets qui seront mis à jour) 

apt-cache

apt-cache gère la base de données des paquets disponibles.

apt-cache search kernel
apt-cache search --names-only kernel

dpkg

dpkg gère les paquets installés et présents physiquement sur le disques.

dpkg -l
dpkg -l kernel
dpkg -l|grep kernel
dpkg -L toto

:!: Parfois le nom complet est tronqué. On peut utiliser :

COLUMNS=142 dpkg -l | grep kernel
dpkg-reconfigure <nom_du_package>

Red Hat

yum

yum permet d'installer, de lister les packages installés et d'interroger le(s) dépot(s).

yum list xorg*
yum search xorg*
yum install gcc.i386
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory

On peut déterminer avec yum quel(s) package(s) fournisse(nt) le(s) fichier(s) en question :

root@serv9001979:~# yum provides \*/gnu/stubs-64.h
glibc-devel-2.5-49.x86_64 : Object files for development using standard C libraries.
Repo        : EL5_U5-x86_64
Matched from:
Filename    : /usr/include/gnu/stubs-64.h



glibc-devel-2.5-49.el5_5.7.x86_64 : Object files for development using standard C libraries.
Repo        : RHEL5.5-updates
Matched from:
Filename    : /usr/include/gnu/stubs-64.h

On détermine le bon kernel avec uname -r et on installe le package correspondant.

rpm

rpm -qa <nom_du_package>
rpm -ql <nom_du_package>
rpm -qlp <nom_du_package>

rpm2cpio zsh-html-4.2.0-4.EL.4.5.x86_64.rpm | cpio –extract –make-directories

Troubleshooting

This package requires ...

On peut obtenir cette erreur lors de l'installation d'un rpm :

root@server1110636:/tmp# rpm -Uvh EMCpower.LINUX-5.0.0-157.rhel.x86_64.rpm
Preparing...                ########################################### [100%]
This package requires RedHat RHEL4.
error: %pre(EMCpower.LINUX-5.0.0-157.x86_64) scriptlet failed, exit status 1
error:   install: %pre scriptlet failed (2), skipping EMCpower.LINUX-5.0.0-157

Pourtant tout est OK, on est bien en RHEL4, les pré-requis sont OK, etc. Utiliser rpm –noscripts n'apportera rien dans ce cas. Par contre on peut lister les scripts de pré-install qui sont effectués pour voir où la vérification est incorrecte.

rpm -q --scripts -p EMCpower.LINUX-5.0.0-157.rhel.x86_64.rpm > test

On cherche la fonction qui gêne :

root@server1110636:/tmp# grep check_vendor_rev -A 5 test
check_vendor_rev()
{
version=`sed -n 's/^.*release \([0-9][0-9]*\).*/\1/p' /etc/issue`
test "$1" = "$version"
}

--
check_vendor_rev $EXPECTED_OS_REV
if [ $? != 0 ]; then
        pre_error 'This package requires $VENDOR_NAME $VENDOR_OS_NAME.'
       cleanup_error_exit
fi

Le fichier /etc/issue est parsé pour checker si on a bien “release X” dans le fichier. Or ce n'est pas forcément le cas. Il suffit de rajouter la ligne suivante :

Welcome to Red Hat Enterprise Linux AS release 4 (Nahant Update 5)

qui est aussi normalement présente dans le fichier /etc/motd. Il suffit de rajouter cette ligne dans le fichier /etc/issue. Ensuite on relance l'install :

root@parcl1110636:/tmp# rpm -ivh EMCpower.LINUX-5.0.0-157.rhel.x86_64.rpm
Preparing...                ########################################### [100%]
   1:EMCpower.LINUX         ########################################### [100%]
All trademarks used herein are the property of their respective owners.
NOTE:License registration is not required to manage the CLARiiON AX series array.

unrecognized db option: "db3" ignored

Il faut réinstaller le package rpm sauf que la commande rpm ne marche plus. On récupère le package rpm de la version RedHat quivabien puis :

mkdir -p /tmp/toto
cd /tmp/toto
rpm2cpio rpm-XXX.rpm | cpio -dim
find . -type d -exec chmod 755 {} \;
tar cf - ./usr ./etc | (cd /; tar xvf -)