Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
informatique:linux:rpm [2007/09/21 15:33] 127.0.0.1 édition externe |
informatique:linux:rpm [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 25: | Ligne 25: | ||
Pour supprimer un package: | Pour supprimer un package: | ||
rpm -e <package> | rpm -e <package> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
==== Requètes RPM ==== | ==== Requètes RPM ==== | ||
Ligne 30: | Ligne 36: | ||
rpm -qa | rpm -qa | ||
rpm -qa --queryformat=%{NAME}\\n | 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 === | === Pour connaitre le package source d'un binaire ou fichier === | ||
Ligne 48: | Ligne 60: | ||
rpm -ql apmd | 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 ==== | ==== Vérification RPM ==== | ||
Ligne 69: | Ligne 88: | ||
Pour vérifier la signature: | Pour vérifier la signature: | ||
rpm --checksig <package> | rpm --checksig <package> | ||
+ | |||
==== Extraction d'un RPM sans installation ==== | ==== Extraction d'un RPM sans installation ==== | ||
rpm2cpio apmd-3.0.2-24.i386.rpm | cpio -idvm | 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 |