This shows you the differences between two versions of the page.
— |
gestionnaire_paquets_gnu_linux [2021/01/21 21:42] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Gestionnaire paquets GNU/Linux ====== | ||
+ | |||
+ | ====== Généralites ====== | ||
+ | |||
+ | ===== Les logiciels ===== | ||
+ | |||
+ | La question cruciale sur un système Linux est comment on gère l’ajout, la suppression et la mise à jour des logiciels du système. Sous Windows on télécharge le .exe et on clique sur suivant mais pas sous GNU/Linux. | ||
+ | |||
+ | Ce problème se pose toujours. On a trois choix pour installer un logiciel sous Linux. | ||
+ | - Le **gestionnaire de paquets** de la distribution (entièrement automatique). | ||
+ | - Les **paquets RPM ou DEB** obtenues directement sur des sites fournisseur de paquets (semi-automatique). | ||
+ | - Compiler à partir des sources du logiciel (entièrement manuel). | ||
+ | |||
+ | Tableau récapitulatif avec la facilité noté de 1 à 5. | ||
+ | |||
+ | |||
+ | ^ Type | ||
+ | ^ Gestionnaire de paquetage | ||
+ | ^ Paquet RPM ou deb | ||
+ | ^ Compilation des sources | ||
+ | |||
+ | ===== Définition ===== | ||
+ | |||
+ | Un **paquetage** ou paquet une archive comprenant les fichiers informatiques, | ||
+ | |||
+ | Un **dépôt** est un espace disponible sur un serveur d’internet accessible par une URL http ou ftp et qui s’intègre au gestionnaire de paquetage afin d’offrir des paquetages supplémentaires. | ||
+ | Il existe des dépôts officiellement supportés par la distribution et d’autres non-officiels. Les officiels présentent uniquement les paquets qui sont supportés. | ||
+ | |||
+ | Red Hat fournit un dépôt de paquets officiel nommé Red Hat Network qui est un service payant et qui offre un panel de logiciel qui sont complètement intégré à la distribution et énormément testés pour être en parfaite harmonie avec le système. De plus les logiciels fournit sont supportés par Red Hat. | ||
+ | |||
+ | Un **gestionnaire de paquets** est un outil automatisant le processus d' | ||
+ | |||
+ | ===== Conseils ===== | ||
+ | |||
+ | Privilégier dans l’ordre : | ||
+ | - Le gestionnaire de paquets de la distribution | ||
+ | - Ensuite les paquets (rpm ou deb) de sites fournisseurs que vous avez téléchargés manuellement | ||
+ | - Et en dernier lieu, envisager la compilation à partir des sources. | ||
+ | |||
+ | En suivant ces conseils, vous éviterez de vous arracher les cheveux pour installer un logiciel sous Linux. | ||
+ | |||
+ | ===== Convention de nommage des paquets rpm ===== | ||
+ | |||
+ | La convention de nommage des packages rpm est la suivante : **nom-version-release.architecture.rpm** | ||
+ | * nom : représente le nom du package, et est en général le nom du logiciel | ||
+ | |||
+ | Celui-ci peut aussi être décomposé en plusieurs packages. on trouve couramment. | ||
+ | * nom-devel : package de " | ||
+ | * libnom : les bibliothèques du logiciel sont séparées du package principal. | ||
+ | * nom-common : partie du logiciel utilisable pour un serveur ou un client. | ||
+ | * nom-server : partie du logiciel pour un serveur. | ||
+ | * nom-client : partie du logiciel pour un client. | ||
+ | * version : telle qu' | ||
+ | * release : elle est définie par celui qui fabrique le package. | ||
+ | |||
+ | * L' | ||
+ | * ppc : powerpc (mac) | ||
+ | * sparc : stations sun | ||
+ | * alpha : pc avec processeurs alpha | ||
+ | * ... | ||
+ | * i* : processeurs Intel. | ||
+ | * i386 : la base commune (80386). | ||
+ | * i486 : ?. | ||
+ | * i566 : pentium. | ||
+ | * i686 : pentium II, III, IV. | ||
+ | |||
+ | Tous ces packages contiennent des programmes compilés, donc non portables. | ||
+ | - Ils ne sont donc pas portables entre les différents processeurs(Intel, | ||
+ | - Ils dépendent également des librairies utilisées lors de la compilation, | ||
+ | |||
+ | Remarque : a priori, le nom de la distribution et la version n' | ||
+ | |||
+ | il y aussi 2 types d' | ||
+ | * noarch : ces packages contiennent des fichiers de configuration, | ||
+ | * src : ces " | ||
+ | |||
+ | ===== Convention de nommage des paquets deb ===== | ||
+ | |||
+ | Debian utilise une convention de nommage pour les fichiers de paquet : **nompaquet_version-révisionDebian_plateforme.deb** | ||
+ | * nompaquet : nom du paquet. | ||
+ | * version : version originale du logiciel du paquet. | ||
+ | * révisionDebian : numéro de révision du paquet. Ce numéro est donné par le mainteneur du paquet. | ||
+ | * plateforme : la plateforme cible du paquet (i386, amd64, alpha, etc). Si le paquet n'est pas dépendant d'une plateforme, il est noté all. | ||
+ | |||
+ | Quelques exemples. | ||
+ | * gnash_0.7.1-1_amd64.deb | ||
+ | * mozilla-firefox_1.0.4-2sarge7_i386.deb | ||
+ | * bind-doc_8.4.6-1_all.deb | ||
+ | * iptables_1.3.3-2ubuntu4_powerpc.deb | ||
+ | |||
+ | |||
+ | ====== Gestionnaire de paquets Red Hat : Red Hat Network ====== | ||
+ | |||
+ | Red Hat Network est un service payant de la société Red Hat. C’est le service qui permet de mettre à jour les serveurs Linux Red Hat à l’aide du dépôt officiel. | ||
+ | |||
+ | ===== Enregistrement ===== | ||
+ | |||
+ | Pour bénéficier du service, il faut disposer d’un compte et se connecter sur le site suivant. | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Ensuite, dans l’onglet Systèmes, on voit tous les systèmes qui sont enregistrés au service Red Hat Network. | ||
+ | |||
+ | L’enregistrement au service se réalise sur le serveur lui-même. Il faut bien sûr disposer de suffisamment d’accès achetés au préalable pour pouvoir ajouter un serveur supplémentaire. | ||
+ | On a deux choix pour enregistrer : | ||
+ | * Soit on le fait à l’installation. Un menu nous est proposé pour renseigner les identifiants. | ||
+ | * Soit on le fait après l’installation (quand on veut) en se connectant une première fois au service à l’aide de l’icône en haut à droite du bureau GNOME. A ce moment, les informations (login+mot de passe) nous sont demandées et le serveur s’enregistre auprès de RHN. Il suffit de rafraichir la liste des serveurs sur le site Web pour remarquer qu’il est visible dans la liste des systèmes. | ||
+ | |||
+ | ==== Suppression ==== | ||
+ | |||
+ | Cet enregistrement peut être supprimé sur le site Web en cliquant sur le système en question, en cliquant sur le lien " | ||
+ | |||
+ | ==== Réenregistrement ==== | ||
+ | |||
+ | Lorsqu’on a désenregistré un serveur, il n’a plus accès aux mises à jour. Pour de nouveau l’ajouter au service et donc à la liste du site Web, il faut entrer la commande suivante en root. | ||
+ | < | ||
+ | rhn_register | ||
+ | </ | ||
+ | Cette commande est lançable en commande ou en environnement graphique. Elle relance l’assistant qui demande le login et le mot de passe pour accèder au compte RHN. | ||
+ | |||
+ | ===== Les kernels ===== | ||
+ | |||
+ | Une particularité est appliquée pour le kernel Linux. Il est possible de la mettre à jour via l’utilitaire mais cette manipulation est à réaliser uniquement hors production. Il faut adopter la politique suivante : | ||
+ | * Lors du déploiement d’une machine, faire **toutes les mises à jour y compris celles des kernels (opération manuelle sur le serveur)**. | ||
+ | * Mettre à jour **tous les paquetages y compris les kernels** juste avant l’installation des applications métiers que le serveur hébergera **(opération manuelle sur le serveur)**. | ||
+ | * **Ne plus mettre à jour les kernels** à partir du moment où le serveur est en production. (Attention, j’entends par production aussi les serveurs de tests) **(opération hebdomadaire à réaliser via l’outil Web)**. | ||
+ | |||
+ | Les mises à jour kernels ne sont faisable que manuellement en se connectant sur le serveur (en graphique ou en commande). Toutes les autres mises à jour sont faisables via l’outil Web Red Hat Network. | ||
+ | |||
+ | ==== Pourquoi cette particularité concernant les kernels ? ==== | ||
+ | |||
+ | Les kernels sont des paquetages particuliers. Ils représentent la partie principale du système d’exploitation. Certains outils souvent externes comme des logiciels de gestion de multi-cheminement fibre channel ou des outils VMware comme les VMware Tools, n’acceptent pas les changements de kernels. Il faut donc les faire au début une bonne fois pour toute et ensuite appliquer ces logiciels et ne plus changer de versions. On peut aussi reconfigurer à chaque fois l’outil pour le nouveau kernel. Ce n’est pas une tâche hyper compliquée non plus, c’est un choix. | ||
+ | |||
+ | ==== Solution ==== | ||
+ | |||
+ | Red Hat connaît bien le problème et propose la solution de positionner le kernel comme un paquetage ignoré par défaut. | ||
+ | * Sous Red Hat 4, il faut configurer cela avec l' | ||
+ | pkgSkipList=kernel*; | ||
+ | </ | ||
+ | |||
+ | * Sous Red Hat 5, il faut configurer le fichier ''/ | ||
+ | exclude=kernel* | ||
+ | </ | ||
+ | |||
+ | Pour faire la mise à jour d’un kernel, il faut donc faire la mise à jour **manuellement** sur le serveur en cochant les paquetages kernel explicitement **" | ||
+ | **C’est très pratique. Ceci signifie que nous pouvons gérer la totalité des mises à jours de tous les serveurs Linux Red Hat avec une seule interface Web sans risque !** | ||
+ | |||
+ | Dans tout les cas ne **JAMAIS faire les mises à jour kernel sur des SERVEURS EN PRODUCTION**, | ||
+ | |||
+ | Si vous avez mis à jour le kernel, **pas de panique**. Les kernels Red Hat sont stable. Après avoir installé le nouveau kernel, ne pas rebooter la machine et aller dans le fichier ''/ | ||
+ | |||
+ | ===== Conseil ===== | ||
+ | |||
+ | Lors de la création du système, je conseil de faire les mises à jour à la main comme ca on peut faire celle du kernel et pour la gestion régulière en production (au moins une fois par semaine) il est très intéressant d’utiliser l’outil Web. | ||
+ | |||
+ | |||
+ | ====== Utilisation du gestionnaire de paquet Red Hat ====== | ||
+ | |||
+ | ===== En commande ===== | ||
+ | |||
+ | ==== Red Hat 4 (up2date) ==== | ||
+ | |||
+ | Installer un paquet. | ||
+ | < | ||
+ | up2date -i nompaquet | ||
+ | </ | ||
+ | |||
+ | Lister si le paquet nompaquet est disponible à l’installation dans le gestionnaire de paquet. | ||
+ | < | ||
+ | up2date -l nompaquet | ||
+ | </ | ||
+ | |||
+ | Les commandes qui suivent dépendent de la directive '' | ||
+ | Skip list par défaut dans le fichier. | ||
+ | < | ||
+ | pkgSkipList=kernel*;; | ||
+ | </ | ||
+ | |||
+ | Mettre à jour. | ||
+ | < | ||
+ | up2date -u | ||
+ | </ | ||
+ | La commande ne va pas mettre à jour les paquetages ajoutés dans la liste des paquetages à ignorer (donc les kernels ne s’installeront pas). | ||
+ | < | ||
+ | up2date -fu | ||
+ | </ | ||
+ | La commande va tout installer y compris les paquetages de la liste des paquetages à ignorer (donc les kernels s’installeront). | ||
+ | |||
+ | ==== Red Hat 5 ou 6 (yum) ==== | ||
+ | |||
+ | Installer un paquet. | ||
+ | < | ||
+ | yum install nompaquet | ||
+ | </ | ||
+ | |||
+ | Supprimer un paquet. | ||
+ | < | ||
+ | yum remove nompaquet | ||
+ | </ | ||
+ | |||
+ | Lister si le paquet nompaquet est disponible à l' | ||
+ | < | ||
+ | yum list nompaquet | ||
+ | </ | ||
+ | |||
+ | Liste des repositories disponibles | ||
+ | < | ||
+ | yum repolist | ||
+ | </ | ||
+ | |||
+ | Rechercher un paquet disponible | ||
+ | < | ||
+ | yum search smb | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | yum info nmap | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | yum list | ||
+ | </ | ||
+ | |||
+ | Usage des groupes de paquets | ||
+ | < | ||
+ | yum groups list | ||
+ | yum groups info | ||
+ | yum groups install " | ||
+ | yum groups install " | ||
+ | </ | ||
+ | |||
+ | Revenir à un état précédent par rapport à l' | ||
+ | < | ||
+ | yum history | ||
+ | yum history undo < | ||
+ | </ | ||
+ | |||
+ | Les commandes qui suivent dépendent des paramètres entrés dans ''/ | ||
+ | Le fichier ''/ | ||
+ | |||
+ | Mettre à jour le système sauf les kernels. | ||
+ | < | ||
+ | yum update --exclude=kernel* | ||
+ | </ | ||
+ | |||
+ | Si pour une raison ou une autre, vous avez à positionné plusieurs paquets en exclusion pour une mise à jour, voici un exemple avec openldap et les kernels. | ||
+ | < | ||
+ | yum update --exclude=openldap, | ||
+ | </ | ||
+ | Le séparateur est la virgule. | ||
+ | |||
+ | Pour installer toutes les mises à jour y compris les derniers kernel (sauf si exclusion dans '' | ||
+ | < | ||
+ | yum update | ||
+ | </ | ||
+ | |||
+ | Mettre tout le système à jour sans tenir compte des éventuelles exclusions du fichier ''/ | ||
+ | < | ||
+ | yum update --disableexcludes=all | ||
+ | </ | ||
+ | |||
+ | Pour lister les mises à jour de sécurité disponibles en retournant un code d’erreur exploitable dans un script si des mises à jour sont disponibles. | ||
+ | < | ||
+ | yum --security check-update | ||
+ | </ | ||
+ | |||
+ | Appliquer les mises à jour de sécurité en désactivant celles des kernels. | ||
+ | < | ||
+ | yum --exclude=kernel* --security update | ||
+ | </ | ||
+ | |||
+ | Avec les kernels. | ||
+ | < | ||
+ | yum --security update | ||
+ | </ | ||
+ | |||
+ | Mise à jour de sécurité automatique avec confirmation automatique (idéal pour un script). | ||
+ | < | ||
+ | yum --exclude=kernel* --security -y update | ||
+ | </ | ||
+ | |||
+ | Appliquer une mise à jour relevant d’un bug particulier declare dans le bugzilla. Exemple ici avec les buges 123, 456 et 789. | ||
+ | < | ||
+ | yum --bz 123 --bz 456 --bz 789 --security update | ||
+ | </ | ||
+ | |||
+ | Recherche un paquet qui fournit une commande particulière (ici la commande spawn). | ||
+ | < | ||
+ | yum whatprovides */spawn | ||
+ | </ | ||
+ | |||
+ | Recherche un paquet qui fournit une commande particulière (ici la commande ftptop). | ||
+ | < | ||
+ | yum provides ftptop | ||
+ | </ | ||
+ | |||
+ | Produire la liste des dépendances et quel paquet fournit ces dépendances pour le paquet spécifié en paramètre. | ||
+ | < | ||
+ | yum deplist expect | ||
+ | </ | ||
+ | |||
+ | ===== En graphique sous GNOME ===== | ||
+ | |||
+ | Il faut lancer l' | ||
+ | |||
+ | ===== Mise à jour via le site Web RHN ===== | ||
+ | |||
+ | Ce site Web permet de mettre à jour les systèmes enregistrés sur Red Hat Network (RHN). On a accès à la liste de tous les serveurs présents, ceux qui ont besoin de mise à jour et ceux qui sont déjà à jour. Pour faire les mises à jour réellement, | ||
+ | |||
+ | Ce qu'il faut retenir c'est que lorsque sur tous les systèmes est mis en place une exclusion de paquet (ex : le kernel), celle-ci sera appliquée. Si on coche dans les mises à jour ce paquet exclus, il ne sera pas traité. | ||
+ | |||
+ | ====== Dépôts RHEL supplémentaires ====== | ||
+ | |||
+ | Le problème qu’on rencontre assez souvent est que le logiciel que nous voulons installer n’est pas présent dans le dépôt RHN lorsqu’on fait un '' | ||
+ | |||
+ | On a donc deux solutions pour pallier ce problème. Soit ajouter un nouveau dépôt compatible avec la Red Hat même s’il n’est pas officiel, soit installer les RPM à partir de paquets téléchargés (cf. partie suivante). | ||
+ | |||
+ | ===== EPEL ===== | ||
+ | |||
+ | Un dépôt nommé EPEL (Extra Package for Enterprise Linux) sponsorisé par Fedora (et donc Red Hat) est un dépôt qui a pour volonté d’ajouter un grand nombre de paquets de qualités de manière compatible à une Red Hat Enterprise Linux et même CentOS. | ||
+ | L’installation du dépôt EPEL est très simple, il suffit d’installer le paquet. | ||
+ | < | ||
+ | rpm -Uvh epel-release-5-3.noarch.rpm | ||
+ | </ | ||
+ | |||
+ | Ajouter sur le proxy de la structure les URL suivantes dans la liste blanche. | ||
+ | < | ||
+ | rpmfind | ||
+ | fedora-epel | ||
+ | epel | ||
+ | ircam.fr | ||
+ | </ | ||
+ | |||
+ | Pour avoir les autorisations de passer le proxy sans authentification, | ||
+ | |||
+ | Le proxy doit correctement être configuré dans ''/ | ||
+ | |||
+ | Ensuite, il est possible lorsqu' | ||
+ | |||
+ | Par contre, il est très important d' | ||
+ | Il faut tout de même être prudent, un système de paquet cassé peut devenir dramatique. | ||
+ | |||
+ | Connaître si un paquet installé provient du dépôt EPEL. | ||
+ | < | ||
+ | rpm -qp foo-0.1-5.el5.i386.rpm --qf ' | ||
+ | foo-0.1-5.el5 Fedora Project | ||
+ | </ | ||
+ | < | ||
+ | rpm -qp foo-0.1-5.el5.i386.rpm --qf ' | ||
+ | foo-0.1-5.el5 Extras Packages for Enterprise Linux | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | rpm -qp foo-0.1-5.el5.i386.rpm --qf ' | ||
+ | foo-0.1-5.el5 883f030500468e3e4e119cc036217521f611025863009f5fe424c6fe4bc81a57f45722e465e71381dda2f6009f7c08e1743794b5b9a5a4cd149081092801a5d935 | ||
+ | </ | ||
+ | |||
+ | ===== Server HA Clustering ===== | ||
+ | |||
+ | Voici un depot créé par OpenSuse qui fournit les derniers paquets d’heartbeat. | ||
+ | L’URL d’accès au dépôt est la suivante : http:// | ||
+ | |||
+ | Pour installer le dépôt, il faut positionner le fichier http:// | ||
+ | Ensuite, on peut installer classiquement avec un '' | ||
+ | |||
+ | ====== Utilisation du gestionnaire de paquet Debian ====== | ||
+ | |||
+ | ===== En commande ===== | ||
+ | |||
+ | apt-get est l' | ||
+ | |||
+ | < | ||
+ | aptitude clean apt-get clean nettoyer complètement le dépôt local des fichiers de paquets récupérés | ||
+ | aptitude autoclean apt-get autoclean nettoyer le dépôt local des fichiers des paquets périmés | ||
+ | aptitude show toto apt-cache show < | ||
+ | aptitude search < | ||
+ | aptitude why < | ||
+ | aptitude why-not < | ||
+ | </ | ||
+ | |||
+ | Mettre à jour les méta-données. | ||
+ | < | ||
+ | aptitude update | ||
+ | </ | ||
+ | |||
+ | Installer un paquet. | ||
+ | < | ||
+ | aptitude install nompaquet | ||
+ | </ | ||
+ | |||
+ | Supprimer un paquet en gardant les fichiers de configuration. | ||
+ | < | ||
+ | aptitude remove nompaquet | ||
+ | </ | ||
+ | |||
+ | Supprimer un paquet complètement en ne gardant aucun fichier de configuration. | ||
+ | < | ||
+ | aptitude purge nompaquet | ||
+ | </ | ||
+ | |||
+ | Lister si le paquet nompaquet est disponible à l’installation dans le gestionnaire de paquet et dire si il est déjà installé. | ||
+ | < | ||
+ | aptitude search nompaquet | ||
+ | </ | ||
+ | |||
+ | Afficher des informations détaillées concernant le paquet nompaquet. | ||
+ | < | ||
+ | aptitude show nompaquet | ||
+ | </ | ||
+ | |||
+ | Mettre à jour le système. Installe les versions candidates des paquets installés sans supprimer aucun autre paquet. | ||
+ | < | ||
+ | aptitude safe-upgrade | ||
+ | </ | ||
+ | |||
+ | Mettre le système complètement à jour avec les dernières versions disponibles y compris si cela nécessite des désinstallations d' | ||
+ | < | ||
+ | aptitude full-upgrade | ||
+ | </ | ||
+ | |||
+ | Option '' | ||
+ | < | ||
+ | aptitude -V full-upgrade | ||
+ | </ | ||
+ | |||
+ | Tester une mise à jour du système pour étudier l' | ||
+ | < | ||
+ | aptitude safe-upgrade -s | ||
+ | </ | ||
+ | |||
+ | Empêcher un paquet de se mettre à jour par un safe-upgrade ou un full-upgrade. Utile pour les kernels par exemple. | ||
+ | < | ||
+ | aptitude hold nompaquet | ||
+ | aptitude unhold nompaquet | ||
+ | </ | ||
+ | |||
+ | Nettoyer complètement le dépôt local des fichiers de paquets récupérés. | ||
+ | < | ||
+ | aptitude clean | ||
+ | </ | ||
+ | |||
+ | Nettoyer le dépôt local des fichiers des paquets périmés | ||
+ | < | ||
+ | aptitude autoclean | ||
+ | </ | ||
+ | |||
+ | ====== Installation à partir de paquets téléchargés ====== | ||
+ | |||
+ | ===== Paquets rpm ===== | ||
+ | |||
+ | Sites fournisseurs d’rpm. | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | |||
+ | Pas mal de paquets sont récupérés sur le site de dag wieers, rpm.pbone et rpmfind qui fonctionnent depuis des années et font de très bons paquets. | ||
+ | |||
+ | A partir d'un de ces sites on choisit la distribution, | ||
+ | |||
+ | ===== Commandes rpm ===== | ||
+ | |||
+ | Installer un rpm téléchargé. | ||
+ | < | ||
+ | rpm -ivh nompaquet.rpm | ||
+ | </ | ||
+ | |||
+ | Il faut savoir que lorsqu’un fichier rpm veut être téléchargé, | ||
+ | < | ||
+ | yum install nompaquet.rpm | ||
+ | </ | ||
+ | |||
+ | Mettre à jour un paquet existant sinon installer le nouveau paquet. | ||
+ | < | ||
+ | rpm -Uvh nompaquet.rpm | ||
+ | </ | ||
+ | |||
+ | Pour installer un paquet de force sans vérification aucune (à utiliser lorsqu' | ||
+ | < | ||
+ | rpm -ivh --nodeps --force paquet.rpm | ||
+ | </ | ||
+ | |||
+ | Supprimer un paquet. | ||
+ | < | ||
+ | rpm -e nompaquet.rpm | ||
+ | </ | ||
+ | |||
+ | De la même manière que pour l’installation, | ||
+ | < | ||
+ | yum remove nompaquet | ||
+ | </ | ||
+ | |||
+ | Connaître la liste totale des paquets triés. | ||
+ | < | ||
+ | rpm -qa | sort | ||
+ | </ | ||
+ | |||
+ | Chercher un paquet d’un certain nom. | ||
+ | < | ||
+ | rpm -qa | grep nom_a_rechercher | ||
+ | </ | ||
+ | |||
+ | Vous êtes en face d’un fichier de configuration par exemple et vous voulez savoir à quel paquet il appartient. Exemple avec ''/ | ||
+ | < | ||
+ | rpm -qf / | ||
+ | </ | ||
+ | |||
+ | Liste des paquets installés avec description sous forme de colonnes. | ||
+ | < | ||
+ | rpm -qa --qf ' | ||
+ | </ | ||
+ | |||
+ | Lister les noms de paquets sous la même forme que les rpm habituels. | ||
+ | < | ||
+ | rpm -qa --qf " | ||
+ | </ | ||
+ | |||
+ | Idem avec un descriptif des paquets. | ||
+ | < | ||
+ | rpm -qa --qf " | ||
+ | </ | ||
+ | |||
+ | Afficher toutes les query possibles en queryformat (ex : %{NAME}). | ||
+ | < | ||
+ | rpm --querytags | ||
+ | </ | ||
+ | |||
+ | Renvoie quel paquet rpm a installé un certain fichier : permet ainsi de déterminer le nom du paquet ayant installé tel programme ou telle librairie. | ||
+ | < | ||
+ | rpm -q --whatprovides / | ||
+ | </ | ||
+ | |||
+ | Liste des paquets qui nécessitent logrotate. | ||
+ | < | ||
+ | rpm -q --whatrequires logrotate | ||
+ | </ | ||
+ | |||
+ | Liste des dépendances du paquet samba déjà installé. | ||
+ | < | ||
+ | rpm -q --requires samba | ||
+ | </ | ||
+ | |||
+ | Lister les fichiers d’un paquet rpm. | ||
+ | < | ||
+ | rpm -ql nom_paquet | ||
+ | </ | ||
+ | |||
+ | Lister uniquement les fichiers de configurations d’un paquet rpm. | ||
+ | < | ||
+ | rpm -qlc nom_paquet | ||
+ | </ | ||
+ | |||
+ | Connaître le paquet d’un fichier. | ||
+ | < | ||
+ | rpm -qf / | ||
+ | </ | ||
+ | |||
+ | Connaître le contenu d’un rpm. | ||
+ | < | ||
+ | rpm -pql package.rpm | ||
+ | </ | ||
+ | |||
+ | Connaître les derniers paquets installés. | ||
+ | < | ||
+ | rpm -qa --last | ||
+ | </ | ||
+ | |||
+ | Vérifier les fichiers d'un paquet installés. La vérification d'un paquetage compare les informations sur les fichiers installés dans le paquetage avec les informations sur les fichiers obtenues à partir des méta-données du paquetage original conservées dans la base de données rpm. Entre autres choses, la vérification compare la taille, la somme MD5, les permissions, | ||
+ | < | ||
+ | rpm -V nom_paquet | ||
+ | </ | ||
+ | |||
+ | Sur cette commande, un résultat n'est affiché que lorsqu' | ||
+ | |||
+ | ===== Paquets deb ===== | ||
+ | |||
+ | Site fournisseur de deb : http:// | ||
+ | |||
+ | ===== Commandes dpkg ===== | ||
+ | |||
+ | Installer un paquet. | ||
+ | < | ||
+ | dpkg -i nompaquet.deb | ||
+ | </ | ||
+ | |||
+ | Lister les paquets du système. | ||
+ | < | ||
+ | dpkg -l | ||
+ | </ | ||
+ | |||
+ | Lister les fichiers d'un paquet déjà installé. | ||
+ | < | ||
+ | dpkg -L nom_paquet | ||
+ | </ | ||
+ | |||
+ | Lister les fichiers que fournit un paquet .deb. | ||
+ | < | ||
+ | dpkg-deb -c nom_paquet.deb | ||
+ | </ | ||
+ | |||
+ | |||
+ | Retrouver le nom d'un paquet à partir d'un fichier. | ||
+ | < | ||
+ | dpkg -S nom_fichier | ||
+ | dpkg -S < | ||
+ | </ | ||
+ | |||
+ | |||
+ | Lister/ | ||
+ | < | ||
+ | dpkg -C | ||
+ | </ | ||
+ | |||
+ | Supprimer un paquet. | ||
+ | < | ||
+ | dpkg -e nompaquet.deb | ||
+ | </ | ||
+ | |||
+ | Supprimer un paquet complètement avec tout les fichiers de configurations (P=purge). | ||
+ | < | ||
+ | dpkg -P nompaquet.deb | ||
+ | </ | ||
+ | |||
+ | Rechercher la présence d'un fichier dans les paquets installés. | ||
+ | < | ||
+ | dpkg-query -S ssh2.ini | ||
+ | </ | ||
+ | |||
+ | Liste des derniers paquets installés. | ||
+ | < | ||
+ | grep " install " / | ||
+ | ls -rtl / | ||
+ | vi / | ||
+ | </ | ||
+ | |||
+ | Liste des derniers paquets mis à jour. | ||
+ | < | ||
+ | grep " upgrade " / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Création d'un repository yum ====== | ||
+ | |||
+ | Un repository est un dossier local ou distant qui contient une liste de rpm avec toutes les dépendances requises organisées de manière cohérente. L’idée est de pouvoir utiliser le gestionnaire de paquets yum présent sous Red Hat qui permet notamment d’installer des paquets avec les dépandences de manière automatique. Ce paragraphe explique comment utiliser ou mettre en place le repository de manière local sur la machine à installer. | ||
+ | |||
+ | Pour recréer ce repository, suivre les informations qui suivent. | ||
+ | |||
+ | ===== Installer createrepo ===== | ||
+ | |||
+ | Installer le paquet createrepo-0.4.11-3.el5 fournit dans le DVD Red Hat qui a pour fonction | ||
+ | < | ||
+ | rpm –ivh createrepo-0.4.11-3.el5.noarch.rpm | ||
+ | </ | ||
+ | |||
+ | ===== Récupérer les paquets supplémentaires du repository ===== | ||
+ | |||
+ | Récupérer tous les rpm du DVD officiel et les ajouter dans le dépôt. Le dossier choisi pour être le repository yum est / | ||
+ | Nous devons monter la version de PHP, MySQL et PHP-pear. | ||
+ | Supprimer les anciennes versions de paquets php-*, et mysql-* présent dans le DVD officiel pour ne pas entrer en conflit avec les nouveaux que nous allons ajouter. | ||
+ | |||
+ | Sur une machine qui dispose d’un accès internet, il faut récupérer sur un dépôt d’Internet les paquets PHP récents (version 5.3.3-1) et MySQL de manière cohérente. | ||
+ | Le dépôt utilisé pour les paquets PHP est celui de Remi Collet (http:// | ||
+ | |||
+ | Configurer les dépôts remi et EPEL sur la machine qui dispose d’Internet. | ||
+ | < | ||
+ | wget http:// | ||
+ | wget http:// | ||
+ | rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm | ||
+ | yum clean all //vider toutes les informations des dépôts. | ||
+ | yum update //mettre à jour les dépôts de la machine. | ||
+ | </ | ||
+ | |||
+ | Nos dépôts sont installés pour récupérer les paquets que nous souhaitons. L’outil qui permet de télécharger les paquets d’un dépôt avec les dépendances associées est yumdownloader. | ||
+ | Yumdownloader sert à télécharger des paquets et leurs dépendances mais sans rien installer et qu’on veut pouvoir copier facilement sur un autre ordinateur avec exactement la même liste de paquets que sur notre ordinateur. | ||
+ | Il a été utilisé pour récupérer les paquets PHP et PHP-pear. | ||
+ | Yumdownloader est un outil présent dans le paquet yum-utils qui est déjà présent dans le DVD Red Hat officiel. | ||
+ | |||
+ | < | ||
+ | rpm -ivh yum-utils-1.1.16-13.el5.noarch.rpm | ||
+ | </ | ||
+ | |||
+ | Récupérer les paquets PHP et PHP-pear en même temps. | ||
+ | < | ||
+ | yumdownloader --resolv php-* | ||
+ | </ | ||
+ | |||
+ | Cette commande récupère à la racine d’où est lancée la commande tous les paquets et dépendances requises pour tous les paquets PHP. | ||
+ | |||
+ | Pour MySQL, les paquets ont été récupérés de l’excellent site http:// | ||
+ | |||
+ | La totalité des rpms qu’on vient de récupérer avec yumdownloader comme décrit ci-dessus sont à regrouper dans un dossier par exemple php_mysql_php-pear. Ces rpms constituent, | ||
+ | |||
+ | Copier les paquets récupérés dans le dépôt qui ne contient que les paquets officiels pour le moment. | ||
+ | < | ||
+ | cp / | ||
+ | </ | ||
+ | |||
+ | Il est aussi possible de présenter directement le contenu de l'iso officielle. | ||
+ | < | ||
+ | mount -o loop / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Créer le repository ===== | ||
+ | |||
+ | Positionner/ | ||
+ | < | ||
+ | cd / | ||
+ | chmod 444 * | ||
+ | </ | ||
+ | |||
+ | Créer le repository yum. | ||
+ | < | ||
+ | createrepo / | ||
+ | </ | ||
+ | |||
+ | Cette commande créé un dossier / | ||
+ | |||
+ | Si un paquet est de nouveau ajouté ou supprimé du dépôt, il faut supprimer le dossier repodata et relancer la commande de création du dépôt. | ||
+ | |||
+ | ===== Configurer yum ===== | ||
+ | |||
+ | Il ne reste qu’à configurer yum pour prendre en compte notre dépôt local. | ||
+ | < | ||
+ | vi / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [localrepo] | ||
+ | name=OS $release – MyLocalRepo | ||
+ | baseurl=file:/// | ||
+ | enabled=1 | ||
+ | gpgcheck=0 | ||
+ | </ | ||
+ | |||
+ | ===== Tester le fonctionnement du repository ===== | ||
+ | |||
+ | < | ||
+ | yum clean all //vider les informations stockées par yum. | ||
+ | yum list “php*” | ||
+ | yum list httpd | ||
+ | </ | ||
+ | Ces deux commandes doivent renvoyer une liste de paquets. | ||
+ | |||
+ | Le repository yum local est maintenant créé. Il va nous servir pour automatiser l’installation des rpm pré-requis pour l’atelier installation et la gestion de configuration. | ||
+ | |||
+ | ====== Configurer un repository yum pour utiliser le DVD officiel Red Hat ou CentOS ====== | ||
+ | |||
+ | Editer un fichier de depôt yum. | ||
+ | < | ||
+ | vi / | ||
+ | </ | ||
+ | |||
+ | Ajouter les instructions suivantes. Le mediaid est un chiffre aléatoire ici et ca ne pose pas de problème. | ||
+ | < | ||
+ | [dvd] | ||
+ | mediaid=1170972069.396645* | ||
+ | name=DVD for RHEL5 | ||
+ | baseurl=file:/// | ||
+ | enabled=1 | ||
+ | gpgcheck=0 | ||
+ | </ | ||
+ | |||
+ | On peut utiliser les paquets du DVD officiel pour installer des paquets. | ||
+ | < | ||
+ | yum update | ||
+ | |||
+ | yum list, yum install... | ||
+ | </ | ||
+ | |||
+ | ===== Appliquer mise à jour d'un repo local ===== | ||
+ | |||
+ | < | ||
+ | reposync -n -p /tools/ | ||
+ | </ | ||
+ | Cette commande permet sur un serveur accédant à Internet de mettre à jour un repo local avec les dernières versions des paquets. | ||
+ | Permet de pouvoir créer un repo local à la base de la toute dernière version des paquets et non de celle en date du DVD officiel. | ||
+ | |||
+ | ====== Subscription Red Hat Developer ====== | ||
+ | |||
+ | Il est possible d' | ||
+ | |||
+ | Après enregistrement, | ||
+ | < | ||
+ | subscription-manager release --set=8.2 | ||
+ | </ | ||
+ | |||
+ | Passer à la 8.4, demandera de seter la valeur à 8.4 et de faire un classique dnf update ensuite. | ||
+ | |||
+ | ====== Troobleshoots ====== | ||
+ | |||
+ | ===== rpmdb: Lock table is out of available locker entries ===== | ||
+ | |||
+ | Si up2date ou yum ou une commande rpm envoi une erreur Python qui dit '' | ||
+ | |||
+ | Les erreurs. | ||
+ | < | ||
+ | rpmdb: Lock table is out of available locker entries | ||
+ | error: db4 error(22) from db-> | ||
+ | error: cannot open Packages index using db3 - Cannot allocate memory (12) | ||
+ | error: cannot open Packages database in / | ||
+ | </ | ||
+ | |||
+ | Ces erreurs empêchent de faire une quelconque interrogation sur la liste des paquets, aucun ajout, modification ou suppression n’est possible. Les commandes de mise à jour yum ne fonctionne plus non plus. | ||
+ | |||
+ | Faire une sauvegarde de / | ||
+ | < | ||
+ | tar cvzf / | ||
+ | </ | ||
+ | |||
+ | Supprimer la base de données Berkley databases utilise par rpm. | ||
+ | < | ||
+ | rm / | ||
+ | </ | ||
+ | |||
+ | Reconstruire la base de données rpm depuis 0 (prend un peu de temps). | ||
+ | < | ||
+ | rpm --rebuilddb | ||
+ | </ | ||
+ | |||
+ | Vérifier que la liste des rpm est accessible pour s’assurer que la base fonctionne bien. | ||
+ | < | ||
+ | rpm -qa | sort | ||
+ | </ | ||
+ | |||
+ | Vérifier que les fichiers __db00* ont été recréés. | ||
+ | < | ||
+ | ls -l / | ||
+ | </ | ||
+ | |||
+ | ==== Pourquoi ceci arrive ? ==== | ||
+ | |||
+ | Quand rpm accède à sa base de données fichier Berkley database, il créé un fichier de verrou temporaire sur les tables dans lequel il cherche. Si on interrompt l’opération avec Ctrl+C souvent, ce message peut arriver car les verrous ne sont jamais supprimés. | ||