Mkd (Extracteur de documents)/Maintenance des paquets RPM
Mkd (Extracteur de documents)
Maintenance des paquets RPM
https://fr.wikibooks.org/wiki/Mkd(Extracteur_de_documents)
Introduction
mkd est une commande standard pour les systèmes d'exploitation Unix, Linux.
Il est possible de compiler et installer la commande mkd pour tous les systèmes d'exploitation.
→ Des version ont été compilées pour MS-Windows
Les paquets facilitent l'installation des applications et ils offrent une meilleure sécurité lorsqu'il ont été téléchargés depuis un dépôt. Les auteurs sont connus et disposent de clés de sécurité pour effectuer leur dépôt.
Télécharger les sources sécurisées sur launchpad[1]. Ces sources permettent de créer les paquets DEBIAN, RPM, et la compilation directe.
En 2016 il n'existe pas de dépôt officiel pour RED HAT et Fedora. La mise en paquets RPM est récente, on les trouve en dépôt provisoire sur le site web de l'EELL[2].
Sommaire
: 1. Environnement de construction d'un paquet RPM : 2. Notre exemple de fichier .rpmmacros : 3. Notre exemple de fichier SPEC : 4. Créer le paquet : 5. Signer le paquet : 6. Installer le paquet : 7. Reconstruction à partir des sources : 8. Références
Environnement de construction d'un paquet RPM
- Pour créer un paquet RPM il faut se doter des outils de construction
- Nous nous sommes inspirés de recommandations disponibles sur Internet :Fedora-Fr - Communauté francophone Fedora - Linux[3]
- Il est inutile de répéter ici ce qui est très bien fait sur le site fedora-fr
- Vous devrez créer l'utilisateur builder, puis le répertoire ~/builder/rpmbuild/ contenant les répertoires BUILD, RPMS, SOURCES, SPECS, RPMS.
Notre exemple de fichier .rpmmacros
C'est un exemple de fichier .rpmmacro pour un paquet personnel :
# File .rmpmacros for rpmbuild.
# Used for personal distribution. Do not use this file for fedora building package
%_topdir %(echo $HOME)/rpmbuild
%__arch_install_post \
[ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \
case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \
/usr/lib/rpm/check-buildroot
%_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
&& RPM_BUILD_NCPUS="'/usr/bin/getconf _NPROCESSORS_ONLN'";\\\
if [ "$RPM_BUILD_NCPUS" -gt 16 ]; then echo "-j16"; \\\
elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then echo "-j$RPM_BUILD_NCPUS"; \\\
else echo "-j3"; fi)
%vendor EELL
%Packager Edeulo <edeulo@free.fr>
%dist .fc23
%fedora 23
%_signature gpg
%_gpg_path /home/builder/.gnupg
%_gpg_name JP Louyot
Notre exemple de fichier SPEC
- Avec un éditeur comme gedit, créer un nouveau fichier que vous enregistrerez mkd.spec dans le répertoire ~/builder/rpmbuild/SPECS.
- Surligner le texte ci-dessous, le copier, puis le coller dans le fichier mkd.spec
Name: mkd
Version: 140515
Release: 1%{?dist}
Summary: Create and upgrade all documentations for softwares.
Group: Development/tools
License: EUPL or GNU
URL: http://www.eell.fr/
Source0: mkd_140515.tar.gz
Buildroot: %{_tmppath]}/%{name}-%{version}-{release}-root-%({__id_u) -n)
#Buildarch:
BuildRequires: gettext
#Requires:
%description
- (en) mkd generate documentation for programmers and maintainers of software
- (fr) mkd génère de la documentation pour les programmeurs et les spécialistes de la maintenance de logiciels
%prep
%setup -q
%build
#Update mkd for new arch
make mkd
exit
%install
rm -rf $RPM_BUILD_ROOT
#%make_install
#mkdir -p $RPM_BUILD_ROOT/
# mkd only
#cp -rf usr/ $RPM_BUILD_ROOT/
# add mkddocu
#cp -rf src-mkddocu/usr/ $RPM_BUILD_ROOT/
%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING HISTORY NEWS README
#/usr/bin/*
%post
touch --nocreate %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache -q %{_datadir}/icons/hicolor;
fi
update-mime-database %{_datadir}/mime &> dev/null || :
update-desktop-database & > /dev/null || :
%postun
touch --nocreate %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache -q %{_datadir}/icons/hicolor;
fi
update-mime-database %{_datadir}/mime &> dev/null || :
update-desktop-database & > /dev/null || :
%changelog
* Fri Jan 29 2016 builder
Créer le paquet
- Le fichier mkd.spec en place dans le répertoire SPECS
- Télécharger l'archive mkd_140515.tar.gz[4]
- Placer l'archive dans le répertoire ~builder/rpmbuild/SOURCES/
- Dans un terminal, lancer la commande rpmbuild -ba ~builder/rpmbuild/SPECS/mkd.spec
Les fichiers de reconstruction se trouvent dans le répertoire SRPM
Signer le paquet
rpmsign --addsign paquet.rpm semble obsolète
Installer rpm-sign-4.13.0-0.rc1.7.fc23.x86_64.rpm
Installer le paquet
Se connecter avec le nom d'utilisateur root ( Commande su )
Yum est obsolète dans les nouvelles versions, voir le manuel man yum2dnf et man dnf
dnf install le paquet.rpm que vous avez créé ou importé
En cas de conflit pour un paquet non officiel :
rpm -ivh paquet.rpm --force
Reconstruction à partir des sources
- Télécharger les sources mkd-140515-1.fc23.src.rpm de reconstruction[5]
- rpmbuild --rebuild le paquet src que vous avez téléchargé
- Exemple :rebuild --rebuild mkd-140515-1.fc23.src.rpm