On trouve plusieurs outils pour gérer les packages, ci-dessous les commandes utilisées avec les paramètres les plus courants :
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 gère la base de données des paquets disponibles.
apt-cache search kernel
apt-cache search --names-only kernel
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>
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 -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
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.
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 -)