Master 1 ère année Sécurité des Systèmes Informatique 1 Commande tar (Tape Archive) Lobjectif de cette commande consiste à créer un fichier darchives Initialement, lutilisation était principalement pour archiver sur bande magnétique peut regrouper toute une arborescence de fichiers répertoires, fichiers, liens symboliques Possibilité de conserver les méta-données : propriétaire, groupe, date et heure, etc… Il faut prendre garde à se placer dans le répertoire pour archiver et restaurer larchive Lobjectif de cette commande consiste à créer un fichier darchives Initialement, lutilisation était principalement pour archiver sur bande magnétique peut regrouper toute une arborescence de fichiers répertoires, fichiers, liens symboliques Possibilité de conserver les méta-données : propriétaire, groupe, date et heure, etc… Il faut prendre garde à se placer dans le répertoire pour archiver et restaurer larchive
Master 1 ère année Sécurité des Systèmes Informatique 2 Commande tar Création darchives Option c Par exemple les répertoires /root/admintools/etc et /root/admintools/usr et leurs fichiers sont archivés à laide des commandes cd /root/admintools/ tar cf /tmp/admintools.tar etc usr On dit aussi lensemble des fichiers sont pliés dans larchive tar ou bien tarer ou détarer les fichiers Option c Par exemple les répertoires /root/admintools/etc et /root/admintools/usr et leurs fichiers sont archivés à laide des commandes cd /root/admintools/ tar cf /tmp/admintools.tar etc usr On dit aussi lensemble des fichiers sont pliés dans larchive tar ou bien tarer ou détarer les fichiers
Master 1 ère année Sécurité des Systèmes Informatique 3 Commande tar Extraction darchives Option x pour extraire ou détarer Par exemple cd /tmp tar xf /tmp/admintools.tar Option x pour extraire ou détarer Par exemple cd /tmp tar xf /tmp/admintools.tar
Master 1 ère année Sécurité des Systèmes Informatique 4 Commande tar Visualisation du contenu Option t (table of contents) Par exemple # tar tf /tmp/admintools.tar etc/ etc/rc.d/ etc/rc.d/init.d/ etc/rc.d/init.d/mrtgd usr/ usr/share/ usr/share/mrtg/ usr/share/mrtg/sample.cfg usr/share/mrtg/README usr/share/mrtg/mrtg.gif usr/bin/ usr/bin/mrtg-mem.sh usr/bin/mrtg-net.sh usr/bin/mrtg-checkdisk.sh usr/bin/mrtg-loadavg.sh usr/bin/mrtg-ping.sh Option t (table of contents) Par exemple # tar tf /tmp/admintools.tar etc/ etc/rc.d/ etc/rc.d/init.d/ etc/rc.d/init.d/mrtgd usr/ usr/share/ usr/share/mrtg/ usr/share/mrtg/sample.cfg usr/share/mrtg/README usr/share/mrtg/mrtg.gif usr/bin/ usr/bin/mrtg-mem.sh usr/bin/mrtg-net.sh usr/bin/mrtg-checkdisk.sh usr/bin/mrtg-loadavg.sh usr/bin/mrtg-ping.sh
Master 1 ère année Sécurité des Systèmes Informatique 5 Commande tar Archivage et compression Options z (compression avec gzip) # tar zcf /tmp/admin.tar.gz etc usr # ps -ef … root :36 pts/1 00:00:00 tar zcf /tmp/admin.tar.gz etc usr root :36 pts/1 00:00:03 gzip … Options j (compression avec bzip2) # tar jcf /tmp/admin.tar.bz2 etc usr # ps -ef … root :37 pts/1 00:00:00 tar jcf /tmp/admin.tar.bz2 etc usr root :37 pts/1 00:00:03 bzip2 … Options z (compression avec gzip) # tar zcf /tmp/admin.tar.gz etc usr # ps -ef … root :36 pts/1 00:00:00 tar zcf /tmp/admin.tar.gz etc usr root :36 pts/1 00:00:03 gzip … Options j (compression avec bzip2) # tar jcf /tmp/admin.tar.bz2 etc usr # ps -ef … root :37 pts/1 00:00:00 tar jcf /tmp/admin.tar.bz2 etc usr root :37 pts/1 00:00:03 bzip2 …
Master 1 ère année Sécurité des Systèmes Informatique 6 Commande tar Archivage et compression Options Z (compression avec compress) # tar Zcf /tmp/admin.tar.Z etc usr # ps -ef … root :38 pts/1 00:00:00 tar Zcf /tmp/admin.tar.Z etc usr root :38 pts/1 00:00:03 compress … # ls -l /tmp/admi* -rw-r--r-- 1 root root nov 5 16:36 /tmp/admin.tar -rw-r--r-- 1 root root 7064 nov 5 16:37 /tmp/admin.tar.bz2 -rw-r--r-- 1 root root 7133 nov 5 16:36 /tmp/admin.tar.gz -rw-r--r-- 1 root root nov 5 16:38 /tmp/admin.tar.Z … Options Z (compression avec compress) # tar Zcf /tmp/admin.tar.Z etc usr # ps -ef … root :38 pts/1 00:00:00 tar Zcf /tmp/admin.tar.Z etc usr root :38 pts/1 00:00:03 compress … # ls -l /tmp/admi* -rw-r--r-- 1 root root nov 5 16:36 /tmp/admin.tar -rw-r--r-- 1 root root 7064 nov 5 16:37 /tmp/admin.tar.bz2 -rw-r--r-- 1 root root 7133 nov 5 16:36 /tmp/admin.tar.gz -rw-r--r-- 1 root root nov 5 16:38 /tmp/admin.tar.Z …
Master 1 ère année Sécurité des Systèmes Informatique 7 Commande tar Options les plus utilent Les commandes les plus utilisées sont # tar zcvf /tmp/admin.tgz etc usr # tar ztf /tmp/admin.tgz # tar zxvf /tmp/admin.tgz En français, on utilise les verbes plier et compresser Les commandes les plus utilisées sont # tar zcvf /tmp/admin.tgz etc usr # tar ztf /tmp/admin.tgz # tar zxvf /tmp/admin.tgz En français, on utilise les verbes plier et compresser
Master 1 ère année Sécurité des Systèmes Informatique 8 Commande tar Précautions à prendre Si vous oubliez de mentionner le nom du fichier archive, le premier fichier de votre liste de fichiers à sauvegarder sera écrasé Si vous restaurez une archive en tant que root, le propriétaire et le groupe des fichiers restaurés seront identiques à ceux enregistrés dans larchive Attention à restaurer dans le bon répertoire. Déplier dans un mauvais répertoire peut avoir des conséquences désastreuses Si vous oubliez de mentionner le nom du fichier archive, le premier fichier de votre liste de fichiers à sauvegarder sera écrasé Si vous restaurez une archive en tant que root, le propriétaire et le groupe des fichiers restaurés seront identiques à ceux enregistrés dans larchive Attention à restaurer dans le bon répertoire. Déplier dans un mauvais répertoire peut avoir des conséquences désastreuses
Master 1 ère année Sécurité des Systèmes Informatique 9 Paquetages RPM (Red hat Package Manager) RPM est un système de gestion de configuration Il permet dinstaller et désinstaller facilement des logiciels Une base de données gère les logiciels installés Utilise un format de fichier particulier propre à Red Hat Les RPM sont utilisés dans les distributions Red Hat (Fedora Core et Enterprise Linux) Mandrake, Mandriva CentOS SuSE RPM est un système de gestion de configuration Il permet dinstaller et désinstaller facilement des logiciels Une base de données gère les logiciels installés Utilise un format de fichier particulier propre à Red Hat Les RPM sont utilisés dans les distributions Red Hat (Fedora Core et Enterprise Linux) Mandrake, Mandriva CentOS SuSE Quest-ce quun RPM?
Master 1 ère année Sécurité des Systèmes Informatique 10 Paquetages RPM Les paquetages facilitent ladministration des logiciels Installation Mise à jour Désinstallation Gestion des conflits Gestion des dépendances Les paquetages facilitent ladministration des logiciels Installation Mise à jour Désinstallation Gestion des conflits Gestion des dépendances Rôle
Master 1 ère année Sécurité des Systèmes Informatique 11 Paquetages RPM Quels sont tous les paquetages installés? # rpm –qa Est-ce que le paquetage est installé? # rpm –q admin Obtenir des informations dun paquetage? # rpm –qi admin Quels sont les fichiers appartenant à ce paquetage? # rpm –ql admin Quels sont tous les paquetages installés? # rpm –qa Est-ce que le paquetage est installé? # rpm –q admin Obtenir des informations dun paquetage? # rpm –qi admin Quels sont les fichiers appartenant à ce paquetage? # rpm –ql admin Interroger la base de données
Master 1 ère année Sécurité des Systèmes Informatique 12 Paquetages RPM A quel paquetage appartient ce fichier? # rpm -qf /bin/gzip gzip # rpm -qf /usr/bin/bzip2 bzip # rpm -qf /usr/bin/compress ncompress A quel paquetage appartient ce fichier? # rpm -qf /bin/gzip gzip # rpm -qf /usr/bin/bzip2 bzip # rpm -qf /usr/bin/compress ncompress Interroger la base de données
Master 1 ère année Sécurité des Systèmes Informatique 13 Paquetages RPM Installation dun nouveau paquetage rpm –ivh.rpm Mise à jour rpm –Uvh.rpm Suppression rpm –e Installation dun nouveau paquetage rpm –ivh.rpm Mise à jour rpm –Uvh.rpm Suppression rpm –e Installer
Master 1 ère année Sécurité des Systèmes Informatique 14 Paquetages RPM Le nom dun paquetage est de la forme Par exemple vlc-0.8.6c-1.el4.rf.i386.rpm Le nom dun paquetage est de la forme Par exemple vlc-0.8.6c-1.el4.rf.i386.rpm Nomenclature
Master 1 ère année Sécurité des Systèmes Informatique 15 Fabrication dun RPM Cette documentation explique l'enchaînement des opérations à effectuer permettant de fabriquer un paquetage RPM (Redhat Package Management). Le nom du paquetage est en minuscules. Nous partons d'un fichier tar.gz contenant l'arborescence des fichiers qui composent le paquetage. Par exemple, admin-0.1.tar.gz \ | ---- > admin i386.rpm |-- > admin.spec----/ Cette documentation explique l'enchaînement des opérations à effectuer permettant de fabriquer un paquetage RPM (Redhat Package Management). Le nom du paquetage est en minuscules. Nous partons d'un fichier tar.gz contenant l'arborescence des fichiers qui composent le paquetage. Par exemple, admin-0.1.tar.gz \ | ---- > admin i386.rpm |-- > admin.spec----/ Fabrication à laide de lutilitaire autospec
Master 1 ère année Sécurité des Systèmes Informatique 16 Fabrication dun RPM Attention ! Le nom du répertoire doit être composée de nom- version, où version ne doit pas comporter de caractères mkdir ~/admin-1.0 cd ~/admin-1.0 Remarque : le fichier tar.gz contient toute l'arborescence, répertoires absolus inclus. cd admin-1.0/ tar zcf /usr/src/redhat/SOURCES/admin-1.0-bin.tar.gz etc/ usr/ tar ztf /usr/src/redhat/SOURCES/admin-1.0-bin.tar.gz | autospec -b > /usr/src/redhat/SPECS/admin.spec Attention ! Le nom du répertoire doit être composée de nom- version, où version ne doit pas comporter de caractères mkdir ~/admin-1.0 cd ~/admin-1.0 Remarque : le fichier tar.gz contient toute l'arborescence, répertoires absolus inclus. cd admin-1.0/ tar zcf /usr/src/redhat/SOURCES/admin-1.0-bin.tar.gz etc/ usr/ tar ztf /usr/src/redhat/SOURCES/admin-1.0-bin.tar.gz | autospec -b > /usr/src/redhat/SPECS/admin.spec Fabrication à laide de lutilitaire autospec
Master 1 ère année Sécurité des Systèmes Informatique 17 Fabrication dun RPM Partie non interactive, où il faut renseigner au moins les champs obligatoires Group et Licence vi /usr/src/redhat/SPECS/admin.spec Fabrication du paquetage rpmbuild -bb /usr/src/redhat/SPECS/admin.spec Partie non interactive, où il faut renseigner au moins les champs obligatoires Group et Licence vi /usr/src/redhat/SPECS/admin.spec Fabrication du paquetage rpmbuild -bb /usr/src/redhat/SPECS/admin.spec Fabrication à laide de lutilitaire autospec
Master 1 ère année Sécurité des Systèmes Informatique 18 Fabrication dun RPM rpm –qpi /usr/src/redhat/RPMS/i386/admin i386.rpm Name : admin Relocations: (not relocatable) Version : 1.0 Vendor: (none) Release : 1 Build Date: lun 05 nov :40:35 CET Install Date: (not installed) Build Host: localhost.localdomain Group : System Environment/Daemons Source RPM: admin src.rpm Size : License: freeware Signature : (none) Summary : admin Description : admin version 1.0 Remarque: il faut ajouter loption p pour interroger un paquetage non installé. rpm –qpi /usr/src/redhat/RPMS/i386/admin i386.rpm Name : admin Relocations: (not relocatable) Version : 1.0 Vendor: (none) Release : 1 Build Date: lun 05 nov :40:35 CET Install Date: (not installed) Build Host: localhost.localdomain Group : System Environment/Daemons Source RPM: admin src.rpm Size : License: freeware Signature : (none) Summary : admin Description : admin version 1.0 Remarque: il faut ajouter loption p pour interroger un paquetage non installé. Interrogation
Master 1 ère année Sécurité des Systèmes Informatique 19 Fabrication dun RPM rpm -qpl /usr/src/redhat/RPMS/i386/admin i386.rpm /etc /etc/rc.d /etc/rc.d/init.d /etc/rc.d/init.d/mrtgd /usr /usr/bin /usr/bin/mrtg-checkdisk.sh /usr/bin/mrtg-loadavg.sh /usr/bin/mrtg-mem.sh /usr/bin/mrtg-net.sh /usr/bin/mrtg-ping.sh /usr/share /usr/share/mrtg /usr/share/mrtg/README /usr/share/mrtg/mrtg.gif /usr/share/mrtg/sample.cfg rpm -qpl /usr/src/redhat/RPMS/i386/admin i386.rpm /etc /etc/rc.d /etc/rc.d/init.d /etc/rc.d/init.d/mrtgd /usr /usr/bin /usr/bin/mrtg-checkdisk.sh /usr/bin/mrtg-loadavg.sh /usr/bin/mrtg-mem.sh /usr/bin/mrtg-net.sh /usr/bin/mrtg-ping.sh /usr/share /usr/share/mrtg /usr/share/mrtg/README /usr/share/mrtg/mrtg.gif /usr/share/mrtg/sample.cfg Interrogation
Master 1 ère année Sécurité des Systèmes Informatique 20 Gestion des dépendances Les paquetages ont souvent des dépendances Le paquetage A ne peut pas être installé sans que le B le soit déjà Le paquetage B contient des bibliothèques partagées ou des programmes qui sont nécessaires au paquetage A Les paquetages ont souvent des dépendances Le paquetage A ne peut pas être installé sans que le B le soit déjà Le paquetage B contient des bibliothèques partagées ou des programmes qui sont nécessaires au paquetage A
Master 1 ère année Sécurité des Systèmes Informatique 21 Gestion des dépendances vlc]# rpm -qR videolan-client libFLAC.so.4 libGL.so.1 libGLU.so.1 libORBit-2.so.0 libSDL-1.2.so.0 libSDL_image-1.2.so.0 libX11.so.6 libXext.so.6 libXinerama.so.1 … libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4) libtheora.so.0 libtiff.so.3 libvorbis.so.0 libvorbisenc.so.2 libxml2.so.2 libxosd.so.2 libz.so.1 rpmlib(CompressedFileNames) <= rpmlib(PayloadFilesHavePrefix) <= vlc]# rpm -qR videolan-client libFLAC.so.4 libGL.so.1 libGLU.so.1 libORBit-2.so.0 libSDL-1.2.so.0 libSDL_image-1.2.so.0 libX11.so.6 libXext.so.6 libXinerama.so.1 … libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4) libtheora.so.0 libtiff.so.3 libvorbis.so.0 libvorbisenc.so.2 libxml2.so.2 libxosd.so.2 libz.so.1 rpmlib(CompressedFileNames) <= rpmlib(PayloadFilesHavePrefix) <= De quels paquetages dépend videolan-client
Master 1 ère année Sécurité des Systèmes Informatique 22 Gestion des dépendances vlc]# rpm -ivh videolan-client attention: vlc/vlc-0.8.6c-1.el4.rf.i386.rpm: signature V3 DSA: NOKEY, key ID 6b8d79e6 erreur: Dépendances requises: libcaca.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libcddb.so.2 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libcdio.so.7 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libcucul.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libiso9660.so.5 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libmpcdec.so.3 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libupnp.so.2 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libvcdinfo.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu-2.6.so.0(WXU_2.6) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu_net-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu_xml-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_adv-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_adv-2.6.so.0(WXU_2.6) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_core-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_core-2.6.so.0(WXU_2.6) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_core-2.6.so.0(WXU_2.6.2) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_html-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_qa-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_xrc-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libx264.so.55 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 vlc entre en conflit avec videolan-client el4.rf.i386 vlc]# rpm -ivh videolan-client attention: vlc/vlc-0.8.6c-1.el4.rf.i386.rpm: signature V3 DSA: NOKEY, key ID 6b8d79e6 erreur: Dépendances requises: libcaca.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libcddb.so.2 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libcdio.so.7 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libcucul.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libiso9660.so.5 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libmpcdec.so.3 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libupnp.so.2 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libvcdinfo.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu-2.6.so.0(WXU_2.6) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu_net-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_baseu_xml-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_adv-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_adv-2.6.so.0(WXU_2.6) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_core-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_core-2.6.so.0(WXU_2.6) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_core-2.6.so.0(WXU_2.6.2) est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_html-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_qa-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libwx_gtk2u_xrc-2.6.so.0 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 libx264.so.55 est nécessaire pour vlc-0.8.6c-1.el4.rf.i386 vlc entre en conflit avec videolan-client el4.rf.i386 Installation dun paquetage et de ses dépendances
Master 1 ère année Sécurité des Systèmes Informatique 23 Gestion des dépendances Installation dun paquetage et de ses dépendances
Master 1 ère année Sécurité des Systèmes Informatique 24 Gestion des dépendances #!/bin/sh # # Script d'installation de VideoLAN Client # USAGE="$0 install | remove | check" DIR=/video # Liste des paquetages nécessaires à MPlayer et VideoLAN LISTE1="SDL_image libdvdread libdvdcss aalib lirc lzo libmad lame libid3tag" # Liste des paquetages nécessaires à VideoLAN LISTE2="videolan-client a52dec faac faad2 libdvbpsi libdvdnav \ libmatroska libebml libmodplug libopendaap mpeg2dec xosd" install() { for PAQUETAGE in aalib lirc lzo \ libmad b-4 lame libid3tag b-3.2 \ libdvdcss libdvdread \ SDL_image do rpm -ivh $DIR/commun/$PAQUETAGE.el4.rf.i386.rpm done # for PAQUETAGE in a52dec libopendaap \ faac faad libdvbpsi \ libdvdnav libebml \ libmatroska libmodplug \ mpeg2dec b xosd \ videolan-client do rpm -ivh $DIR/vlc/$PAQUETAGE.el4.rf.i386.rpm done } #!/bin/sh # # Script d'installation de VideoLAN Client # USAGE="$0 install | remove | check" DIR=/video # Liste des paquetages nécessaires à MPlayer et VideoLAN LISTE1="SDL_image libdvdread libdvdcss aalib lirc lzo libmad lame libid3tag" # Liste des paquetages nécessaires à VideoLAN LISTE2="videolan-client a52dec faac faad2 libdvbpsi libdvdnav \ libmatroska libebml libmodplug libopendaap mpeg2dec xosd" install() { for PAQUETAGE in aalib lirc lzo \ libmad b-4 lame libid3tag b-3.2 \ libdvdcss libdvdread \ SDL_image do rpm -ivh $DIR/commun/$PAQUETAGE.el4.rf.i386.rpm done # for PAQUETAGE in a52dec libopendaap \ faac faad libdvbpsi \ libdvdnav libebml \ libmatroska libmodplug \ mpeg2dec b xosd \ videolan-client do rpm -ivh $DIR/vlc/$PAQUETAGE.el4.rf.i386.rpm done } Installation de vlc à laide dun script remove() { for PAQUETAGE in $LISTE2 $LISTE1 do rpm -ev $PAQUETAGE done } check() { for PAQUETAGE in $LISTE1 $LISTE2 do rpm -q $PAQUETAGE done } case $1 in -d) shift DIR=$1 shift ;; install) install ;; remove) remove ;; check) check ;; *) echo $USAGE ;; esac remove() { for PAQUETAGE in $LISTE2 $LISTE1 do rpm -ev $PAQUETAGE done } check() { for PAQUETAGE in $LISTE1 $LISTE2 do rpm -q $PAQUETAGE done } case $1 in -d) shift DIR=$1 shift ;; install) install ;; remove) remove ;; check) check ;; *) echo $USAGE ;; esac