===== RPM ===== ==== Installer / supprimer ==== === Installation === Pour installaller un package: rpm -ivh .rpm Pour installer un package et toutes les dépendances: rpm -ivh --aid .rpm Pour installer un package en igonrant les dépendances: rpm -ivh --nodeps .rpm Forcer la réinstallation d'un package en changeant le path d'installation: rpm -ivh --force --root /mnt/sysimage .rpm === Mise à jour === Pour mettre à jour ou installer un package rpm -Uvh .rpm Pour mettre à jour un package (la mise à jour ne se fera pas si le package n'a jamais été installé) rpm -Fvh .rpm === Suppression === Pour supprimer un package: rpm -e ==== Requètes RPM ==== === lister les packages installés === rpm -qa rpm -qa --queryformat=%{NAME}\\n === Lister les packages installés en les affichant au format fichier rpm === rpm -qa --queryformat '%{name}-%{version}-%{Release}.%{arch}.rpm\n' Note :!: : Pour connaître les tags disponibles pour la requête, lancer la commande : **''rpm --querytags''** === Pour connaitre le package source d'un binaire ou fichier === rpm -qf /bin/sleep === Pour obtenir une description d'un package === non installé rpm -qip apmd-3.0.2-24.i386.rpm intallé rpm -qi apmd === Pour lister les fichiers d'un package qui seront installés === non installé rpm -qlp apmd-3.0.2-24.i386.rpm intallé rpm -ql apmd Astuce :!: : Pour lister tous les fichiers contenus dans les RPM du CDRom Linux cd /mnt/cdrom for RPM in $(find ./RedHat/RPMS -name "*.rpm");do echo "######## $RPM ########";rpm -qlp $RPM;done Lorsqu'il manque une librairie sur le système cela permet d'identifier rapidement dans quel package on peut la trouver et ainsi installer le bon RPM. === Pour lister les fichiers nécessaires à l'installation du rpm === rpm -qp --requires apmd-3.0.2-24.i386.rpm ==== Vérification RPM ==== Cette fonctionnalité comparera les modifications des fichiers installé par RPM sur le système à la base RPM. Toute les contradictions seront rapportées. === Vérification de fichier RPM === Pour vérifier le fichier zip RPM installé en comparaison avec la base de données de RPM rpm -V zip Pour vérifier tous les RPM installés en comparaison avec la base de données de RPM rpm -Va Pour vérifier le package zip installé en comparaison avec le fichier zip du package rpm -Vp zip-2.3-.i386.rpm === Vérification de signature RPM signé par RedHat === Importer la clé publique: rpm --import /mnt/cdrom/RPM-GPG-KEY Pour vérifier la signature: rpm --checksig ==== Extraction d'un RPM sans installation ==== rpm2cpio apmd-3.0.2-24.i386.rpm | cpio -idvm ==== Création d'un RPM ==== Ici nous allons créer un rpm pour installer l'outil **''apt''**. Cette methode n'est pas la methode la plus conventionnelle. Installer le package **''rpm-build''** rpm -ivh rpm-build.x.x.x.rpm Il faut extraire les sources dans **''/usr/src/BUILD''** cd /usr/src/BUILD tar -xjf /root/apt-0.5.15lorg3.2.tar.bz2 Il faut créer un fichier **''/usr/src/SPECS/apt.spec''**. Dans le lequel il faut surtout veiller à: * Péciser le BuildRoot: **''BuildRoot: /var/tmp/%{name}-buildroot''** * De faire créer le répertoire: **''/var/tmp/%{name}-buildroot''** dans la partie **''%prep''** * A lancer ''**./configure**'' en précisant de faire l'installation dans ''**/var/tmp/%{name}-buildroot**'' * Peéciser les commandes de compilation et d'installation dans **''%build''** et **''%install''** * De présiser la liste de fichier à copier dans l'archive RPM partie **''%files''** FIXME Summary: Debian's Advanced Packaging Tool with RPM support Name: apt Version: 0.5.15 Release: 7.RHEL4 Copyright: GPL Group: System Environment/Base Source: apt-0.5.15lorg3.2.tar.bz2 BuildRoot: /var/tmp/%{name}-buildroot %description A port of Debian's apt tools for RPM based distributions. It provides the apt-get utility that provides a simpler, safer way to install and upgrade packages. APT features complete installation ordering, multiple source capability and several other unique features. %prep mkdir -p /var/tmp/%{name}-buildroot cd apt-0.5.15lorg3.2 ./configure --prefix=/var/tmp/%{name}-buildroot %build cd apt-0.5.15lorg3.2 make clean make %install cd apt-0.5.15lorg3.2 make install %files /share/locale/es_ES/LC_MESSAGES/apt.mo /share/locale/pt_BR/LC_MESSAGES/apt.mo /share/locale/de_DE/LC_MESSAGES/apt.mo /share/locale/ja/LC_MESSAGES/apt.mo /share/locale/ru/LC_MESSAGES/apt.mo /share/locale/it_IT/LC_MESSAGES/apt.mo /bin/genbasedir /bin/apt-cache /bin/gensrclist /bin/countpkglist /bin/apt-config /bin/apt-cdrom /bin/genpkglist /bin/apt-get /include/apt-pkg/rpmversion.h /include/apt-pkg/rpmindexfile.h /include/apt-pkg/versionmatch.h /include/apt-pkg/rpmpm.h /include/apt-pkg/sptr.h /include/apt-pkg/clean.h /include/apt-pkg/rpmhandler.h /include/apt-pkg/acquire-method.h /include/apt-pkg/rpmrecords.h /include/apt-pkg/policy.h /include/apt-pkg/luaiface.h /include/apt-pkg/strutl.h /include/apt-pkg/packagemanager.h /include/apt-pkg/sha1.h /include/apt-pkg/hashes.h /include/apt-pkg/pkgcachegen.h /include/apt-pkg/pkgrecords.h /include/apt-pkg/rpmlistparser.h /include/apt-pkg/cdromutl.h /include/apt-pkg/tagfile.h /include/apt-pkg/acquire-item.h /include/apt-pkg/md5.h /include/apt-pkg/mmap.h /include/apt-pkg/version.h /include/apt-pkg/repomd.h /include/apt-pkg/acquire.h /include/apt-pkg/pkgsystem.h /include/apt-pkg/srcrecords.h /include/apt-pkg/cacheiterators.h /include/apt-pkg/repository.h /include/apt-pkg/rpmshowprogress.h /include/apt-pkg/acquire-worker.h /include/apt-pkg/pkgcache.h /include/apt-pkg/fileutl.h /include/apt-pkg/cmndline.h /include/apt-pkg/error.h /include/apt-pkg/progress.h /include/apt-pkg/configuration.h /include/apt-pkg/indexfile.h /include/apt-pkg/cachefile.h /include/apt-pkg/algorithms.h /include/apt-pkg/orderlist.h /include/apt-pkg/crc-16.h /include/apt-pkg/init.h /include/apt-pkg/rpmmisc.h /include/apt-pkg/depcache.h /include/apt-pkg/rpmsystem.h /include/apt-pkg/rpmsrcrecords.h /include/apt-pkg/sourcelist.h /include/apt-pkg/rpmpackagedata.h /lib/libapt-pkg.a /lib/libapt-pkg-libc6.3-6.so.2.0.0 /lib/libapt-pkg.la /lib/apt/methods/gpg /lib/apt/methods/cdrom /lib/apt/methods/http /lib/apt/methods/gzip /lib/apt/methods/rsh /lib/apt/methods/file /lib/apt/methods/bzip2 /lib/apt/methods/copy /lib/apt/methods/ftp /lib/apt/methods/ssh /lib/libapt-pkg.so /lib/libapt-pkg-libc6.3-6.so.2 Lancer la création du RPM rpmbuild -bb /usr/src/SPECS/apt.spec Si l'on veux juste copier des fichiers en installant un RPM mettre par exemble une commande ''echo no prep'' dans les partie ''%prep'', ''%build'', ''%install'' et mettre la liste de fichiers à mettre dans le RPM dans la partie ''%files''. Pour lancer la création en étant indépendant de l'architecture faire : rpmbuild -bb --target=noarch /usr/src/SPECS/my.spec