\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{dim. avril 6 19:03:25 CEST 2014}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={paco},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Gestionnaire de paquet lors de l'installation depuis le code source},
CreationDate={D:20140406190325},
ModDate={D:20140406190325},
Keywords={package manager}
}}
\begin{document}
 
\begin{center}
{\Huge paco }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Gestionnaire de paquet lors de l'installation depuis le code source}
 
\vspace{10mm}
 
\hspace{1mm}  En installant un paquet, paco peut être utilisé en mode log (avec l'option -l) pour envelopper la commande d'installation (ex: "make install"), et logger les fichiers créés. par défaut, les log sont dans le répertoire /var/log/paco. Une fois un paquet installé et loggé, paco peut être utilisé en mode liste, qui est de défaut, pour afficher les informations du paquet. Il y'a également des options pour supprimer des paquet, requêter de propriétaire des fichiers, ou maintenir la base de paquets.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Options générales }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -a, --all]{Applique l'action spécifiée à tous les paquets loggés. ne fonctionne pas avec l'option -r}
\item[\hspace{1mm} -L, --logdir=DIR]{Répertoire pour les logs (défaut: /var/log/paco)}
\item[\hspace{1mm} -v, --verbose]{mode verbeux, -vv affiche également des messages de débuggage}
\end{description}
 
\vspace{1cm}{\huge Options de maintenance de base }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -u, --update]{Synchronise le log du paquet avec le status courant du système de fichier, calculant la taille des fichiers loggés et en vérifiant ceux qui sont manquants. détecte ceux qui sont compressés.}
\item[\hspace{1mm} -U, --unlog]{Supprime le log du paquet de la base}
\end{description}
 
\vspace{1cm}{\huge Options générales de liste }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -b, --block-size=SIZE]{Utilise des block de la taille spécifiée.}
\item[\hspace{1mm} -k, --kilobytes]{idem à --block-size=1k ou --block-size=1024}
\item[\hspace{1mm} --sort=WORD]{trie la liste par: \textbf{name}, \textbf{size}, \textbf{date}, \textbf{files}, \textbf{missing-files} ou \textbf{missing-size}}
\item[\hspace{1mm} -r, --reverse]{inverse l'ordre de trie}
\item[\hspace{1mm} -t, --total]{Affiche les totaux à la fin de la liste}
\end{description}
 
\vspace{1cm}{\huge Options générales de paquet }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -1, --one-column]{Liste un paquet par ligne}
\item[\hspace{1mm} -F]{Affiche le nombre de fichiers installés}
\item[\hspace{1mm} -M]{Affiche la nombre de fichiers manquants}
\item[\hspace{1mm} -C]{Affiche le nombre de fichier partagés (installés et manquants)}
\item[\hspace{1mm} -d, --date]{Affiche la date d'installation (-dd affiche l'heure également)}
\item[\hspace{1mm} -s, --size]{Affiche la taille de chaque paquet installé}
\item[\hspace{1mm} -n, --missing-size]{Affiche la taille manquante de chaque paquet installé (taille originale - taille courante)}
\end{description}
 
\vspace{1cm}{\huge -Options de liste de fichiers }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -f, --files]{Liste les fichiers actuellement installés}
\item[\hspace{1mm} -m, --missing-files]{Liste les fichiers manquants (fichiers supprimés après l'installation)}
\item[\hspace{1mm} -c, --shared]{Avec -f et/ou -m, liste seulement les fichier partagés (ceux également loggés par d'autres paquets)}
\item[\hspace{1mm} -N, --non-shared]{Avec -f et/ou -m, liste seulement les fichier non-partagés (ceux non loggés par d'autres paquets)}
\item[\hspace{1mm} -w, --who-shares]{Avec -c, affiche les noms des paquets qui partagent chaque fichier}
\item[\hspace{1mm} -y, --symlinks]{Affiche le contenu des fichiers symboliques}
\item[\hspace{1mm} -s, --size]{Affiche la taille de chaque fichier}
\item[\hspace{1mm} -z, --no-package-name]{N'affiche pas le nom du paquet.}
\end{description}
 
\vspace{1cm}{\huge Options d'information }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -i, --info]{Affiche des informations sur le paquet}
\item[\hspace{1mm} -o, --configure-options]{Affiche les options de configure}
\item[\hspace{1mm} -q, --query, --owner]{Requête les paquets qui possèdent un ou plusieurs fichiers}
\end{description}
 
\vspace{1cm}{\huge Options de log }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -l, --log]{active le mode log. Si une commande shell est donnée en argument, l'exécute de la monitore, log les fichiers créés, sinon la liste des fichiers est lue depuis l'entrée standard.}
\item[\hspace{1mm} -p, --package=PKG]{Spécifie le nom du paquet à logger, qui doit commencer par un caractère alpha-numéric.}
\item[\hspace{1mm} -D, --dirname]{Utilise le nom du répertoire courant comme nom du paquet à logger}
\item[\hspace{1mm} -E, --exclude=PATH1:PATH2:...]{Liste de chemins à ignorer durant le log. Défaut: \textbf{/dev:/tmp:/usr/src:/media:/selinux:/sys:/usr/share/info/dir}}
\item[\hspace{1mm} -I, --include=PATH1:PATH2:...]{Liste de chemins à scanner durant le log. Défaut: /}
\item[\hspace{1mm} --ignore-errors]{Ne quitte pas si la commande d'install échoue.}
\item[\hspace{1mm} --log-missing]{Log également les fichiers manquants}
\item[\hspace{1mm} -+, --append]{Avec -p ou -D, si le paquet est déjà loggé, ajoute la liste des fichiers à son log}
\end{description}
 
\vspace{1cm}{\huge Options de suppression }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -r, --remove]{Supprime un paquet, laissant les fichiers partagés et demande confirmation. Les fichiers compressés ont également supprimés. \textbf{-rr}, le paquet est supprimé de la base.}
\item[\hspace{1mm} -B, --batch]{Ne demande pas confirmation lors de la suppression}
\item[\hspace{1mm} -e, --skip=PATH1:PATH2:...]{Ne supprime pas les fichiers dans ces chemins}
\item[\hspace{1mm} --remove-shared]{Supprime également les fichiers partagés}
\end{description}
 
\vspace{1cm}{\huge Correspondance de chemins }
 
\
 
\hspace{1mm}  Les options -I, -E, et -e accèptent une liste de chemins, chacun peut contenir des caractères d'expansion (\textbf{*},\textbf{?} et \textbf{[..]}]. Les fichiers sont matchés avec chacun de ces paths, suivant l'expansion standard de shell, mais avec l'exception suivante: Si un chemin ne contient wildcard, et est un repertoire, il matche tout fichier dans ce repertoire.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} logger l'installation du paquet foo-1.0, qui est installé avec make -C src install. Utiliser des guillemets pour empêcher l'interprétation de -C \\
\hspace{1mm} \textbf{paco -lp foo-1.0 "make -C src install"} \\
\hspace{1mm} Utilser les guillemets simples si la commande contient déjà des guillemets doubles \\
\hspace{1mm} \textbf{paco -lp foo-1.0 'echo "hello world" > /var/log/foo.log'} \\
\hspace{1mm} L'argument de fin d'option peut être utilisé dans le même but \\
\hspace{1mm} \textbf{paco -lp foo-1.0 -- make -C src install} \\
\hspace{1mm} Alternativement, on peut utiliser le répertoire courant comme nom de paquet \\
\hspace{1mm} \textbf{paco -lD "make install \&\& make install.man"} \\
\hspace{1mm} Si on a oublié d'installer un fichier, il peut être ajouté \\
\hspace{1mm} \textbf{paco -lp+ foo-1.0 "install foo /bin/foo"} \\
\hspace{1mm} Noter que -+ ne permet pas de supprimer un fichier dans le log \\
\hspace{1mm} \textbf{paco -lp+ foo-1.0 "rm /bin/foo"} \\
\hspace{1mm} Ne supprime pas le fichier du log \\
\hspace{1mm} \textbf{Pour éviter ce problème il est parfois utile de joindre des commandes d'install composés en une seule commande. Par exemple, pour un paquet qui installe /bin/foo, mais on veut qu'il s'install dans /usr/bin/foo:} \\
\hspace{1mm} paco -lp foo-1.0 make install \\
\hspace{1mm} paco -lp+ foo-1.0 "mv /bin/foo /usr/bin/foo" \\
\hspace{1mm} \textbf{Les 2 fichiers sont marqués dans les logs. /usr/bin/foo est marqué installé et /bin/foo est marqué manquant. les 2 commandes peuvent être spécifié sur une seule ligne, celà marque /foo/bar même s'il est manquant.} \\
\hspace{1mm} echo /foo/bar | paco --log-missing -lp foo \\
\hspace{1mm} \textbf{Pour supprimer toutes les versions du paquet foo, en laissant les fichiers dans /etc et /root:} \\
\hspace{1mm} paco -r --batch -e /etc:/root foo \\
\hspace{1mm} \textbf{Pour supprimer le paquet foo-3.3, en laissant les fichiers dans /var/log et les fichiers *.conf} \\
\hspace{1mm} paco -r -e '/var/log:*.conf' foo-3.3 \\
\hspace{1mm} \textbf{On a installé le paquet bubble-1.9 en préfix /opt/bubble-1.9, mais on n'a pas loggé l'installation. Cela peut être fait avec} \\
\hspace{1mm} find /opt/bubble-1.9 | paco -lp bubble-1.9 \\
 
\vspace{1cm}{\huge fichiers }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} /etc/pacorc]{fichier de configuration de paco}
\item[\hspace{1mm} /var/log/paco]{répertoire par défaut pour les logs}
\end{description}
\end{flushleft}
\end{document}
