Pour installaller un package:
rpm -ivh <package>.rpm
Pour installer un package et toutes les dépendances:
rpm -ivh --aid <package>.rpm
Pour installer un package en igonrant les dépendances:
rpm -ivh --nodeps <package>.rpm
Forcer la réinstallation d'un package en changeant le path d'installation:
rpm -ivh --force --root /mnt/sysimage <package>.rpm
Pour mettre à jour ou installer un package
rpm -Uvh <package>.rpm
Pour mettre à jour un package (la mise à jour ne se fera pas si le package n'a jamais été installé)
rpm -Fvh <package>.rpm
Pour supprimer un package:
rpm -e <package>
rpm -qa rpm -qa --queryformat=%{NAME}\\n
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
rpm -qf /bin/sleep
non installé
rpm -qip apmd-3.0.2-24.i386.rpm
intallé
rpm -qi apmd
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.
rpm -qp --requires apmd-3.0.2-24.i386.rpm
Cette fonctionnalité comparera les modifications des fichiers installé par RPM sur le système à la base RPM. Toute les contradictions seront rapportées.
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
Importer la clé publique:
rpm --import /mnt/cdrom/RPM-GPG-KEY
Pour vérifier la signature:
rpm --checksig <package>
rpm2cpio apmd-3.0.2-24.i386.rpm | cpio -idvm
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 à:
BuildRoot: /var/tmp/%{name}-buildroot
/var/tmp/%{name}-buildroot
dans la partie %prep
./configure
en précisant de faire l'installation dans /var/tmp/%{name}-buildroot
%build
et %install
%files
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