source: trunk/formation-rpms/usage.tex @ 247

Last change on this file since 247 was 247, checked in by nanardon, 15 years ago
  • more slide, add admin part
  • Property svn:keywords set to Id
File size: 6.2 KB
Line 
1\section{Présentation de rpms}
2
3\frame{
4\frametitle{Historique}
5\vfill
6\begin{block}{Origine}
7Originellement: \textit{Redhat Package Manager}
8
9\href{http://rpm.org/}{http://rpm.org/}
10\end{block}
11\vfill
12\begin{block}{Le fork}
132005: Patatra: fork de Jeff Johnson: \textit{RPM Package Manager}
14\href{http://rpm5.org/}{http://rpm5.org/}
15
16Il y a donc deux rpms respectivement en version 4.6.0 et 4.5.2. (au \today{})
17\end{block}
18\vfill
19}
20
21\frame{
22\frametitle{Roles de rpms}
23\begin{block}{Gestion des logiciels installés}
24    \begin{itemize}
25    \item installation
26    \item désinstallation
27    \item mise à jour
28    \end{itemize}
29\end{block}
30
31\begin{block}{Controle de l'état du système}
32    \begin{itemize}
33    \item Intégrité du système
34    \item Repérage des fichiers modifiés
35    \end{itemize}
36\end{block}
37}
38
39\frame{
40\frametitle{Rpm ?}
41\begin{block}{Le terme rpm désigne}
42\begin{itemize}
43\item un logiciel
44\item une série de commandes
45\item une format de fichier
46\end{itemize}
47\end{block}
48}
49
50\section{Utilisation}
51
52\subsection{Fonctionnement}
53
54\begin{frame}[fragile]
55\frametitle{Information de base d'un rpm}
56\begin{block}{Version d'un rpm}
57\begin{itemize}
58\item le nom: deux rpm de même nom se remplacent
59\item la version: identifie la version du logiciel
60\item la release: la version du rpm pour la version de ce logiciel
61\item l'epoch: permet de forcer l'ordre entre deux versions
62\end{itemize}
63\end{block}
64\pause
65\vfill
66\begin{block}{l'Architecture}
67\begin{itemize}
68\item assure que le logiciel fonctionne sur la machine
69\item \verb+noarch+ indique que le rpm fonctionne "partout"
70\item ont des priorités (i586 est mieux que i386)
71\end{itemize}
72\end{block}
73\pause
74\vfill
75\begin{exampleblock}{}
76foo-2.1-1.i586 mets à jour foo-2.0-1.i586
77\end{exampleblock}
78\end{frame}
79
80\begin{frame}[fragile]
81\frametitle{Dépendances}
82\vfill
83\begin{block}{}
84\begin{itemize}
85\item Contraintes au niveau de l'installation (ou de la construction) des rpms.
86\item Elles s'expriment en terme de mot clef avec éventuellement
87une version (\verb+<=> VERSION+).
88\end{itemize}
89\end{block}
90\pause
91\vfill
92\begin{block}{Les type de dépendances}
93{\scriptsize
94\begin{tabular}{|c|l|l|}
95\hline
96Type&Installation&Construction\\
97\hline
98\hline
99Provides&Fourni&N/A\\
100\hline
101\hline
102Requires&A besoin de&A besoin de\\
103\hline
104Conflicts&Ne peut pas être installer avec&Ne peut être construit avec\\
105\hline
106Obsoletes&Remplace (discrètement)&N/A\\
107\hline
108Trigger&Déclancher une action si \ldots est installé&N/A\\
109\hline
110\end{tabular}
111}
112\end{block}
113\pause
114\vfill
115\begin{alertblock}{Relations:}
116Toutes les contraintes s'appliquent sur les \verb+provides+ dans
117\verb+obsoletes+ qui s'appliquent sur le nom du rpm.
118\end{alertblock}
119\vfill
120\end{frame}
121
122\begin{frame}[fragile]
123\frametitle{Les fichiers}
124\begin{block}{Les règles}
125\begin{itemize}
126\item on installe pas deux fois un fichier (sauf si contenu identique)
127\item rpm créer les répertoires parents si necessaire
128\item rpm restaure les propriétaires, permissions et dates
129\end{itemize}
130\end{block}
131\vfill
132\pause
133\begin{block}{Les type de fichiers}
134\begin{itemize}
135\item documentation (avec locale)
136\pause
137\item configuration (noreplace):
138\pause
139\begin{itemize}
140\item pas de modification: remplacement
141\item \verb+.rpmnew+ nouveau fichier, originale non touché
142\item \verb+.rpmsave+ sauvgarde du fichier remplacé
143\end{itemize}
144\end{itemize}
145\end{block}
146\end{frame}
147
148\subsection{Les .rpm}
149
150\frame{
151\frametitle{Contenu d'un fichier rpm}
152\begin{block}{le Lead}
153Quasi inutilisé désormais
154\end{block}
155\begin{block}{Le Header}
156Contient la description du fichier rpm, sous de tags
157\end{block}
158\begin{block}{L'Archive CPIO}
159Les fichiers à installer sous format d'un cpio généralement compréssés
160\end{block}
161}
162
163\frame{
164\frametitle{Le Header}
165\begin{block}{Format}
166\begin{itemize}
167\item à ce jour, format binaire
168\item liste de Tags
169\end{itemize}
170\end{block}
171\vfill
172\begin{block}{Les tags}
173\begin{itemize}
174\item chaque tag a un nom
175\item plusieurs type: numérique, chaine, binaire
176\item valeurs multiple possible pour certains
177\end{itemize}
178\end{block}
179\vfill
180\begin{exampleblock}{Exemple de tag}
181\begin{tabular}{|c|l|}
182\hline
183NAME&Nom du rpms\\
184\hline
185PACKAGER&Celui qui a fait le rpm\\
186\hline
187
188\end{tabular}
189\end{exampleblock}
190}
191
192\begin{frame}[fragile]
193\frametitle{Convention de nommage}
194\begin{exampleblock}{}
195\alert<2>{vlc}-\alert<3>{1.0.3}-\alert<4>{2mdv2010.1}.\alert<5>{x86\_64}.rpm
196\alert<2>{\%\{NAME\}}-\alert<3>{\%\{VERSION\}}-\alert<4>{\%\{RELEASE\}}.\alert<5>{\%\{ARCH\}}.rpm
197\end{exampleblock}
198\vfill
199\pause
200\begin{block}{}
201\begin{itemize}
202\item le nom (NAME)
203\pause
204\item la version
205\pause
206\item la release
207\pause
208\item l'arch
209    \begin{itemize}
210    \item \verb+src+: un rpm source
211    \item \ldots: un rpm binaire
212    \end{itemize}
213\end{itemize}
214\end{block}
215\end{frame}
216
217\subsection{Le programme}
218
219\frame{
220\frametitle{Les logiciels}
221\vfill
222\begin{center}
223\begin{tabular}{|c|l|}
224\hline
225Binaire&Fonction\\
226\hline
227\hline
228rpm&Frontend aux modules rpm\\
229\hline
230rpmi&Installation (rpm -i/U)\\
231\hline
232rpmu&Installation (rpm -i/U)\\
233\hline
234rpme&Désinstallation (rpm -e)\\
235\hline
236rpmquery&Interrogation (rpm -q)\\
237\hline
238rpmbuild&Construction de rpm\\
239\hline
240rpmdb&Action sur la rpm db\\
241\hline
242\end{tabular}
243\end{center}
244\vfill
245\vfill
246}
247
248\begin{frame}[fragile]
249\frametitle{Les librairies}
250\vfill
251Située dans \verb+/usr/lib(64)+
252\vfill
253% \begin{center}
254\begin{tabular}{|c|l|}
255\hline
256Librairies&Rôle\\
257\hline
258\hline
259librpm&Lecture des fichiers rpm\\
260&Résolution des dépendances\\
261\hline
262librpmbuild&Construction de rpm\\
263\hline
264librpmdb&Accès à la rpm db\\
265\hline
266librpmio&Abstraction générique des entrées/sorties\\
267&Evaluation des macros\\
268\hline
269\end{tabular}
270% \end{center}
271\vfill
272\vfill
273\end{frame}
274
275\subsection{Configuration}
276
277\begin{frame}[fragile]
278\frametitle{La configuration}
279\vfill
280Toute la configuration se fait via des macros,
281système de variable à évaluation tardive.
282\vfill
283\begin{itemize}
284\item /usr/lib/rpm/macros (système)
285\item ~/.rpmmacros (utilisateur)
286\end{itemize}
287\vfill
288{\scriptsize
289\begin{verbatim}
290%__dbi_htconfig_current     %{__dbi_htconfig}
291%__dbi_htconfig_rebuild     %{__dbi_htconfig} %{__dbi_rebuild}
292
293%_dbi_htconfig      \
294  %{?_rpmdb_rebuild:%{__dbi_htconfig_rebuild}}\
295  %{!?_rpmdb_rebuild:%{__dbi_htconfig_current}}\
296%{nil}
297\end{verbatim}
298}
299\vfill
300\vfill
301\end{frame}
302
303
Note: See TracBrowser for help on using the repository browser.