[TUTO] Les dessous d'aptitude

Le système préconisé par la Fondation Raspberry Pi

Modérateurs : Francois, maxty01

maxty01
Modérateur
Messages : 712
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

[TUTO] Les dessous d'aptitude

Message par maxty01 » sam. 29 nov. 2014 00:40

[Bonjour - Bonsoir]* à tous,

Aujourd'hui, je vais vous rapidement vous parler des différentes commandes pour installer un ou plusieurs programmes.

Pour commencer, je vais vous parler brièvement de la suite de commande dpkg.
En effet, la commande dpkg n'est pas toute seule et nous allons voir qu'elles peuvent être très utiles.

Commençons par la commande dpkg en elle même.
Cette commande permet de manipuler les paquets deb directement, sans l'aide d'un "package manager" tel que apt-get, aptitude ou synaptique.
elle permet de connaître les version des paquets installés, les fichiers installés et leur emplacement.
Mais je dois avouer qu'on ne l'utilise que dans certains cas précis, au profit des "package manager" qui prennent en compte les dépendances et sans aucun doute plus facile à utiliser.

Pour installer un paquet deb :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo dpkg -i votre_packet.deb
En cas de dépendances non résolues, Il est parfois utile de lancer la commande sans attribut/paramètre :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude install
Parfois, nous ne savons pas quelles sont les versions installées sur le système,
rien de plus facile avec la commande dpkg avec la bonne option :

Code : Tout sélectionner

pi@raspberrypi ~ $ dpkg -l bash
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                  Version                         Architecture                    Description
+++-=====================================================-===============================-===============================-================================================================================================================
ii  bash                                                  4.2+dfsg-0.1+deb7u3             armhf                           GNU Bourne Again SHell
Il est parfois utile d'étendre la recherche avec des "jokers", comme dans cet exemple :

Code : Tout sélectionner

pi@raspberrypi ~ $ dpkg -l bash*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                  Version                         Architecture                    Description
+++-=====================================================-===============================-===============================-================================================================================================================
ii  bash                                                  4.2+dfsg-0.1+deb7u3             armhf                           GNU Bourne Again SHell
ii  bash-completion                                       1:2.0-1                         all                             programmable completion for the bash shell
un  bash-doc                                              <none>
Dans l'exemple précédent, nous pouvons observer que "bash" est installé (ii) ainsi que sa version (4.2+dfsg-0.1+deb7u3) et que "bash-doc" ne l'est pas (un).

Combien de fois n'ai-je pas cherché quels sont les fichiers installé par un paquet ainsi que leur emplacement,
dpkg est là pour répondre à cette question, avec la bonne option :

Code : Tout sélectionner

pi@raspberrypi ~ $ dpkg -L bash
/.
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/bash
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/rbash.1.gz
/usr/share/man/man1/bashbug.1.gz
/usr/share/man/man1/bash.1.gz
/usr/share/man/man1/clear_console.1.gz
/usr/share/man/man7
/usr/share/man/man7/bash-builtins.7.gz
/usr/share/doc
/usr/share/doc/bash
/usr/share/doc/bash/INTRO.gz
/usr/share/doc/bash/README.commands.gz
/usr/share/doc/bash/changelog.Debian.gz
/usr/share/doc/bash/inputrc.arrows
/usr/share/doc/bash/NEWS.gz
/usr/share/doc/bash/COMPAT.gz
/usr/share/doc/bash/README.Debian.gz
/usr/share/doc/bash/FAQ
/usr/share/doc/bash/copyright
/usr/share/doc/bash/CHANGES.gz
/usr/share/doc/bash/POSIX.gz
/usr/share/doc/bash/README.abs-guide
/usr/share/menu
/usr/share/menu/bash
/usr/share/locale
/usr/share/locale/hu
/usr/share/locale/hu/LC_MESSAGES
/usr/share/locale/hu/LC_MESSAGES/bash.mo
/usr/share/locale/vi
/usr/share/locale/vi/LC_MESSAGES
/usr/share/locale/vi/LC_MESSAGES/bash.mo
/usr/share/locale/zh_TW
/usr/share/locale/zh_TW/LC_MESSAGES
/usr/share/locale/zh_TW/LC_MESSAGES/bash.mo
/usr/share/locale/es
/usr/share/locale/es/LC_MESSAGES
/usr/share/locale/es/LC_MESSAGES/bash.mo
/usr/share/locale/id
/usr/share/locale/id/LC_MESSAGES
/usr/share/locale/id/LC_MESSAGES/bash.mo
/usr/share/locale/ga
/usr/share/locale/ga/LC_MESSAGES
/usr/share/locale/ga/LC_MESSAGES/bash.mo
/usr/share/locale/af
/usr/share/locale/af/LC_MESSAGES
/usr/share/locale/af/LC_MESSAGES/bash.mo
/usr/share/locale/et
/usr/share/locale/et/LC_MESSAGES
/usr/share/locale/et/LC_MESSAGES/bash.mo
/usr/share/locale/ja
/usr/share/locale/ja/LC_MESSAGES
/usr/share/locale/ja/LC_MESSAGES/bash.mo
/usr/share/locale/ro
/usr/share/locale/ro/LC_MESSAGES
/usr/share/locale/ro/LC_MESSAGES/bash.mo
/usr/share/locale/en@boldquot
/usr/share/locale/en@boldquot/LC_MESSAGES
/usr/share/locale/en@boldquot/LC_MESSAGES/bash.mo
/usr/share/locale/cs
/usr/share/locale/cs/LC_MESSAGES
/usr/share/locale/cs/LC_MESSAGES/bash.mo
/usr/share/locale/fi
/usr/share/locale/fi/LC_MESSAGES
/usr/share/locale/fi/LC_MESSAGES/bash.mo
/usr/share/locale/fr
/usr/share/locale/fr/LC_MESSAGES
/usr/share/locale/fr/LC_MESSAGES/bash.mo
/usr/share/locale/pt_BR
/usr/share/locale/pt_BR/LC_MESSAGES
/usr/share/locale/pt_BR/LC_MESSAGES/bash.mo
/usr/share/locale/sv
/usr/share/locale/sv/LC_MESSAGES
/usr/share/locale/sv/LC_MESSAGES/bash.mo
/usr/share/locale/nl
/usr/share/locale/nl/LC_MESSAGES
/usr/share/locale/nl/LC_MESSAGES/bash.mo
/usr/share/locale/pl
/usr/share/locale/pl/LC_MESSAGES
/usr/share/locale/pl/LC_MESSAGES/bash.mo
/usr/share/locale/zh_CN
/usr/share/locale/zh_CN/LC_MESSAGES
/usr/share/locale/zh_CN/LC_MESSAGES/bash.mo
/usr/share/locale/bg
/usr/share/locale/bg/LC_MESSAGES
/usr/share/locale/bg/LC_MESSAGES/bash.mo
/usr/share/locale/de
/usr/share/locale/de/LC_MESSAGES
/usr/share/locale/de/LC_MESSAGES/bash.mo
/usr/share/locale/uk
/usr/share/locale/uk/LC_MESSAGES
/usr/share/locale/uk/LC_MESSAGES/bash.mo
/usr/share/locale/lt
/usr/share/locale/lt/LC_MESSAGES
/usr/share/locale/lt/LC_MESSAGES/bash.mo
/usr/share/locale/en@quot
/usr/share/locale/en@quot/LC_MESSAGES
/usr/share/locale/en@quot/LC_MESSAGES/bash.mo
/usr/share/locale/ru
/usr/share/locale/ru/LC_MESSAGES
/usr/share/locale/ru/LC_MESSAGES/bash.mo
/usr/share/locale/ca
/usr/share/locale/ca/LC_MESSAGES
/usr/share/locale/ca/LC_MESSAGES/bash.mo
/usr/share/locale/eo
/usr/share/locale/eo/LC_MESSAGES
/usr/share/locale/eo/LC_MESSAGES/bash.mo
/usr/share/locale/sk
/usr/share/locale/sk/LC_MESSAGES
/usr/share/locale/sk/LC_MESSAGES/bash.mo
/usr/share/locale/tr
/usr/share/locale/tr/LC_MESSAGES
/usr/share/locale/tr/LC_MESSAGES/bash.mo
/usr/bin
/usr/bin/clear_console
/usr/bin/bashbug
/bin
/bin/bash
/etc
/etc/skel
/etc/skel/.bash_logout
/etc/skel/.bashrc
/etc/skel/.profile
/etc/bash.bashrc
/bin/rbash
Il est possible que, suite à une mauvaise manipulation, la configuration d'un paquet ne permet plus de faire fonctionner le/les programmes,
au lieu de les réinstaller, il est possible de réécrire la configuration d'un paquet :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo dpkg-reconfigure bash
Il existe pas moins de 26 commandes pour dpkg, je n'en ai brièvement vu que 2, les plus utilisées. Les autres sont destinées à un usage plus avancé.

Je vais maintenant m’attarder brièvement sur apt-get et s'est dérivée.
Tout d'abord, je tiens à attirer votre attention sur le fait que aptitude est à l'heure actuelle préférée à apt-get.
En effet, aptitude gère mieux les dépendances des paquets et permet de gérer les conflits plus facilement, de plus, aptitude peut-être utilisée en "graphique" comme synaptic mais en commande.


Avant toute utilisation de apt-get et apt-cache, il est fortement conseillé de reconstruire la base de données des paquets disponibles dans les dépôts avec la commande "apt-get upade"

La première étape pour installer un paquet, c'est de le chercher, pour celà nous utilisons la commande apt-cache :

Code : Tout sélectionner

pi@raspberrypi ~ $ apt-cache search vlc
browser-plugin-vlc - multimedia plugin for web browsers based on VLC
dvblast - Simple and powerful dvb-streaming application
freeplayer - wrapper around vlc for French ADSL FreeBox
freetuxtv - Internet television and radio player
getstream - DVB streaming application
hdhomerun-config - Configuration utility for Silicon Dust HD HomeRun
libavbin0 - cross-platform media decoding library
libbluray-dev - Blu-ray disc playback support library (development files)
libbluray1 - Blu-ray disc playback support library (shared library)
libbluray1-dbg - Blu-ray disc playback support library (debug symbols)
libhdhomerun-dev - Development library for Silicon Dust HD HomeRun
libhdhomerun1 - Library for Silicon Dust HD HomeRun
libvcdinfo-dev - library to extract information from VideoCD (development files)
libvcdinfo0 - library to extract information from VideoCD
libvlc-dev - development files for libvlc
libvlc5 - multimedia player and streamer library
libvlccore-dev - development files for libvlccore
libvlccore5 - base library for VLC and its modules
mozilla-plugin-vlc - transitional dummy package
phonon-backend-vlc - Phonon VLC backend
phonon-backend-vlc-dbg - Phonon VLC backend debugging symbols
phonon-backend-xine - transitional package to aid switching to phonon-backend-vlc
pidgin-mpris - sets your available message to your currently playing track
pidgin-musictracker - Plugin for Pidgin which displays the current music track in your status
remuco-vlc - duplex remote control for media players - VLC adapter
vlc - multimedia player and streamer
vlc-data - Common data for VLC
vlc-dbg - debugging symbols for vlc
vlc-nox - multimedia player and streamer (without X support)
vlc-plugin-fluidsynth - FluidSynth plugin for VLC
vlc-plugin-jack - Jack audio plugins for VLC
vlc-plugin-notify - LibNotify plugin for VLC
vlc-plugin-pulse - PulseAudio plugin for VLC
vlc-plugin-sdl - SDL video and audio output plugin for VLC
vlc-plugin-svg - SVG plugin for VLC
vlc-plugin-zvbi - VBI teletext plugin for VLC
x264 - video encoder for the H.264/MPEG-4 AVC standard
Avec cette dernière, il est également de demander plus d'information sur un paquet :

Code : Tout sélectionner

pi@raspberrypi ~ $ apt-cache show vlc
Package: vlc
Version: 2.0.3-5+deb7u1
Architecture: armhf
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Installed-Size: 2883
Pre-Depends: dpkg (>= 1.15.6~)
Depends: fonts-freefont-ttf, vlc-nox (= 2.0.3-5+deb7u1), libaa1 (>= 1.4p5), libavcodec53 (>= 6:0.8.3-1~) | libavcodec-extra-53 (>= 6:0.8.10), libavutil51 (>= 6:0.8.3-1~), libc6 (>= 2.13-28), libcaca0 (>= 0.99.beta17-1), libfreetype6 (>= 2.2.1), libfribidi0 (>= 0.19.2), libgcc1 (>= 1:4.4.0), libgl1-mesa-glx | libgl1, libice6 (>= 1:1.0.0), libqtcore4 (>= 4:4.8.0), libqtgui4 (>= 4:4.7.0~beta1), libsdl-image1.2 (>= 1.2.10), libsdl1.2debian (>= 1.2.11), libsm6, libstdc++6 (>= 4.6), libtar0, libva-x11-1 (>> 1.0.15~), libva1 (>> 1.0.15~), libvlccore5 (>= 2.0.0), libx11-6, libxcb-composite0, libxcb-keysyms1 (>= 0.3.9), libxcb-randr0 (>= 1.1), libxcb-render0, libxcb-shape0, libxcb-shm0, libxcb-xfixes0, libxcb-xv0 (>= 1.2), libxcb1 (>= 1.6), libxext6, libxinerama1, libxpm4, zlib1g (>= 1:1.2.3.3)
Recommends: vlc-plugin-notify (= 2.0.3-5+deb7u1), vlc-plugin-pulse (= 2.0.3-5+deb7u1), xdg-utils
Suggests: videolan-doc
Breaks: vlc-data (<< 1.1.5), vlc-nox (<< 2.0.2)
Replaces: vlc-data (<< 1.1.5), vlc-nox (<< 2.0.2)
Provides: mp3-decoder
Homepage: http://www.videolan.org/vlc/
Priority: optional
Section: video
Filename: pool/main/v/vlc/vlc_2.0.3-5+deb7u1_armhf.deb
Size: 910874
SHA256: 936b09236ca975ce8a61d9830463fdd0cd7f69bd932ec04846b59479220415a7
SHA1: 7ce39021d5b334d6b98d16b20a9a3b548390670f
MD5sum: 84ea992b2a7c1d2ea2cc6299fb1f8fc0
Description: multimedia player and streamer
 VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
 DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
 podcasts, and multimedia streams from various network sources.
 .
 VLC can also be used as a streaming server that duplicates the stream it
 reads and multicasts them through the network to other clients, or serves
 them through HTTP.
 .
 VLC has support for on-the-fly transcoding of audio and video formats, either
 for broadcasting purposes or for movie format transformations. Support for
 most output methods is provided by this package, but features can be added
 by installing additional audio plugins (vlc-plugin-pulse, vlc-plugin-sdl)
 or video plugins (vlc-plugin-sdl).
Comme vous pouvez le voir, nous avons plusieurs informations dont la version, les dépendances, la taille une fois installé, ...

Passons maintenant à apt-get, cette commande, bien connue de tous permets de faire beaucoup de chose, en plus d'installer des paquets.
Elle permet de recharger la base de données des paquets disponibles sur le dépôt de raspbian :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get update
Elle permet de mettre à jour les paquets déjà installé :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get upgrade
Elle permet de mettre à jours les paquets déjà installé, ainsi que des paquets plus délicats à mettre à jour (à utiliser avec prudence) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get dist-upgrade
Elle permet d'installer un nouveau paquet et ses dépendances :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get install vlc
Elle permet de désinstaller un programme (mais pas ses dépendances ni ses configuration !) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get remove vlc
Elle permet de désinstaller un programme avec ses configuration (mais pas ses dépendances !) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get purge vlc
Elle permet de désinstaller des dépendances intutiles (sans leur configuration !) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get autoremove
Elle permet de désinstaller des dépendances intutiles avec leur configuration :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get autoremove --purge
Elle permet de réinstaller un programme :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get install --reinstall vlc
Elle permet d'effacer tout les paquets deb téléchargés (utile pour gagner de la place sur la carte du RPI) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get clean
Elle permet d'effacer tout les vieux paquets deb téléchargés n'existant plus sur le dépôt raspbian (utile pour gagner un peu place sur la carte du RPI) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get autoclean
Quelques options intéressantes de apt-get :
-d : télécharge les paquets, mais ne les installe pas, utilisation avec "upgrade", "install".
-y : répond "yes" à toutes les questions: permet d'inclure apt-get dans un script.
-s : simulation : permet d'observer le comportement d'apt-get sans affecter le système.

Je vais maintenant parler de aptitude et ses options.
Vous aller observer qu'il est possible de faire beaucoup de chose avec cette seule commande.

Avant toute utilisation de aptitude, il est fortement conseillé de reconstruire la base de données des paquets disponibles dans les dépôts avec la commande "aptitude upade"

Tout comme apt-cache il est possible de chercher des paquets :

Code : Tout sélectionner

pi@raspberrypi ~ $ aptitude search vlc
p   browser-plugin-vlc                                                                                             - multimedia plugin for web browsers based on VLC                                                                          
p   libvlc-dev                                                                                                     - development files for libvlc                                                                                             
i A libvlc5                                                                                                        - multimedia player and streamer library                                                                                   
p   libvlccore-dev                                                                                                 - development files for libvlccore                                                                                         
i A libvlccore5                                                                                                    - base library for VLC and its modules                                                                                     
p   mozilla-plugin-vlc                                                                                             - transitional dummy package                                                                                               
p   phonon-backend-vlc                                                                                             - Phonon VLC backend                                                                                                       
p   phonon-backend-vlc-dbg                                                                                         - Phonon VLC backend debugging symbols                                                                                     
p   remuco-vlc                                                                                                     - duplex remote control for media players - VLC adapter                                                                    
i   vlc                                                                                                            - multimedia player and streamer                                                                                           
i A vlc-data                                                                                                       - Common data for VLC                                                                                                      
p   vlc-dbg                                                                                                        - debugging symbols for vlc                                                                                                
i A vlc-nox                                                                                                        - multimedia player and streamer (without X support)                                                                       
p   vlc-plugin-fluidsynth                                                                                          - FluidSynth plugin for VLC                                                                                                
p   vlc-plugin-jack                                                                                                - Jack audio plugins for VLC                                                                                               
i A vlc-plugin-notify                                                                                              - LibNotify plugin for VLC                                                                                                 
i A vlc-plugin-pulse                                                                                               - PulseAudio plugin for VLC                                                                                                
p   vlc-plugin-sdl                                                                                                 - SDL video and audio output plugin for VLC                                                                                
p   vlc-plugin-svg                                                                                                 - SVG plugin for VLC                                                                                                       
p   vlc-plugin-zvbi                                                                                                - VBI teletext plugin for VLC
Vous pouvez observer que cette commande donne plus d'information, par exemple, vlc est déjà installé dans ce cas-ci.

Il est également possible d'obtenir plus d'information sur un paquet :

Code : Tout sélectionner

pi@raspberrypi ~ $ aptitude show vlc
Package: vlc                             
State: installed
Automatically installed: no
Version: 2.0.3-5+deb7u1
Priority: optional
Section: video
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Architecture: armhf
Uncompressed Size: 2,952 k
Depends: fonts-freefont-ttf, vlc-nox (= 2.0.3-5+deb7u1), libaa1 (>= 1.4p5), libavcodec53 (>= 6:0.8.3-1~) | libavcodec-extra-53 (>= 6:0.8.10), libavutil51 (>= 6:0.8.3-1~), libc6 (>= 2.13-28), libcaca0 (>= 0.99.beta17-1), libfreetype6 (>=
         2.2.1), libfribidi0 (>= 0.19.2), libgcc1 (>= 1:4.4.0), libgl1-mesa-glx | libgl1, libice6 (>= 1:1.0.0), libqtcore4 (>= 4:4.8.0), libqtgui4 (>= 4:4.7.0~beta1), libsdl-image1.2 (>= 1.2.10), libsdl1.2debian (>= 1.2.11), libsm6,
         libstdc++6 (>= 4.6), libtar0, libva-x11-1 (> 1.0.15~), libva1 (> 1.0.15~), libvlccore5 (>= 2.0.0), libx11-6, libxcb-composite0, libxcb-keysyms1 (>= 0.3.9), libxcb-randr0 (>= 1.1), libxcb-render0, libxcb-shape0, libxcb-shm0,
         libxcb-xfixes0, libxcb-xv0 (>= 1.2), libxcb1 (>= 1.6), libxext6, libxinerama1, libxpm4, zlib1g (>= 1:1.2.3.3)
PreDepends: dpkg (>= 1.15.6~)
Recommends: vlc-plugin-notify (= 2.0.3-5+deb7u1), vlc-plugin-pulse (= 2.0.3-5+deb7u1), xdg-utils
Suggests: videolan-doc
Breaks: vlc-data (< 1.1.5), vlc-nox (< 2.0.2)
Replaces: vlc-data (< 1.1.5), vlc-nox (< 2.0.2)
Provides: mp3-decoder
Description: multimedia player and streamer
 VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4, DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs, podcasts, and multimedia streams from various network sources. 
 
 VLC can also be used as a streaming server that duplicates the stream it reads and multicasts them through the network to other clients, or serves them through HTTP. 
 
 VLC has support for on-the-fly transcoding of audio and video formats, either for broadcasting purposes or for movie format transformations. Support for most output methods is provided by this package, but features can be added by
 installing additional audio plugins (vlc-plugin-pulse, vlc-plugin-sdl) or video plugins (vlc-plugin-sdl).
Homepage: http://www.videolan.org/vlc/
Dans ce cas ci, l'information est identique au résultat de la commande apt-cache.

Pour le reste des sous commandes disponnibles :
Elle permet de recharger la base de données des paquets disponibles sur le dépôt de raspbian :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude update
Elle permet de mettre à jour les paquets déjà installé :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitute upgrade
Elle permet de mettre à jours les paquets déjà installé, ainsi que des paquets plus délicats à mettre à jour (à utiliser avec prudence) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude dist-upgrade
Elle permet de mettre à jours la distruibution entière (deconseillé !!!!) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude full-upgrade
Elle permet d'installer un nouveau paquet et ses dépendances :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitutde install vlc
Elle permet de désinstaller un programme avec ses dépendances (mais pas ses configuration !) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude remove vlc
Elle permet de désinstaller un programme avec ses dépendances et toutes les configurations :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude purge vlc
Elle permet de réinstaller un programme :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude reinstall vlc
Elle permet d'effacer tout les paquets deb téléchargés (utile pour gagner de la place sur la carte du RPI) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude clean
Elle permet d'effacer tout les vieux paquets deb téléchargés n'existant plus sur le dépôt raspbian (utile pour gagner un peu place sur la carte du RPI) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude autoclean
Quelques options intéressantes de apt-get :
-d : télécharge les paquets, mais ne les installe pas, utilisation avec "upgrade", "install".
-y : répond "yes" à toutes les questions: permet d'inclure apt-get dans un script.
-s : simulation : permet d'observer le comportement d'apt-get sans affecter le système.
-i : installe un ou plusieurs paquets au redémarrage du système, utile dans certain cas.

Je me permet de me répéter : La commande aptitude gère beaucoup mieux les dépendances que apt-get.
Elle permet également d'avoir un interface graphique en console si on appelle aptitude sans argument/paramètre.

Si vous avez des questions, même si je ne connais pas toutes les réponse, n'hésitez pas.
Je vous souhaites à toutes et à tous une [bonne journée - bonne soirée - bonne nuit]*

*Biffer les mentions inutiles.
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon Image

Avatar du membre
Clemzo
Messages : 55
Enregistré le : ven. 17 oct. 2014 16:36

Re: [TUTO] Les dessous d'aptitude

Message par Clemzo » dim. 21 déc. 2014 11:29

Merci beaucoup.
Très utile pour pour moi qui suis venu véritablement à Linux que grâce au RPI.
Raspberry Pi B, B+, Orange Pi et Arduino Pro Mini

maxty01
Modérateur
Messages : 712
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

Re: [TUTO] Les dessous d'aptitude

Message par maxty01 » dim. 21 déc. 2014 11:55

Bonjour,

Merci pour votre message.

Ce tuto est limité sur certains points, si vous avez des questions sur des points qui ne sont pas traité dans ce tuto, n'hésitez pas à poser la question, je me ferai un plaisir de vous répondre.

Bien à vous,
Bonne journée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon Image

2RJ
Messages : 54
Enregistré le : jeu. 18 déc. 2014 14:14
Localisation : 45 20 00 N 73 20 00 W

Re: [TUTO] Les dessous d'aptitude

Message par 2RJ » dim. 21 déc. 2014 17:23

En effet, clair et net... Très bonne vulgarisation des commandes. Facile à comprendre. Ca fait des années que j'ai un RPI et c'est la première fois que je lis quelque chose qui me renseigne sans aller dans les détails techniques inutiles pour un débutant.

D'autres tutos à venir ? Par exemple, la commande Bash ... le pourquoi du ./ , du python dans une commande... entr'autres.

Merci maxty01, je vais me coucher moins idot ce soir. :?
PI B Jessie Ping-mètre
PI2 Jessie expériences diverses
Pi2 Jessie Motion sur surveillance nichoir WIFI
PIZero Jessie gérant 5 sondes DHT22 et DS18B20
PI3 Jessie sur diapo en boucle
TNC-PI (vendu)
Dongles WIFI

maxty01
Modérateur
Messages : 712
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

Re: [TUTO] Les dessous d'aptitude

Message par maxty01 » dim. 21 déc. 2014 17:55

Bonsoir 2RJ,

Merci pour ce message très plaisant à lire.

Oui, d'autres TUTOs sont déjà disponibles et d'autres sont en approche ...

Je t'invites dans la section tutoriels du forum, pour y retrouver tous les TUTOs.

Justement, j'y ai écris un nouveau sujet pour vous demander quels sont les sujet qui vous intéressent.

Pour ce qui est du Bash, il ne mérite pas 1 mais plusieurs TUTOs, pour te donner une idée, Bash possède un manuel de 3050 lignes.

En ce qui concerne le pourquoi du ./ : c'est simple, cela permet d'appeler un programme ou un script qui ne se trouve pas dans le PATH.
Le PATH contient tous les différents dossiers qui contiennent les différents programmes/scripts/commandes disponibles.
Pour voir le PATH, il suffit de l'afficher :

Code : Tout sélectionner

pi@raspberrypi ~ $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
pi@raspberrypi ~ $
Bonne soirée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon Image

Avatar du membre
Clemzo
Messages : 55
Enregistré le : ven. 17 oct. 2014 16:36

Re: [TUTO] Les dessous d'aptitude

Message par Clemzo » dim. 21 déc. 2014 22:44

Bonjour,

En effet, j'ai une question :
Est-il possible de ne mettre à jour qu'un seul paquet et ses dépendances ?
Par exemple je souhaite mettre à jour xrdp.

Merci encore pour cette démocratisation.
Raspberry Pi B, B+, Orange Pi et Arduino Pro Mini

maxty01
Modérateur
Messages : 712
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

Re: [TUTO] Les dessous d'aptitude

Message par maxty01 » dim. 21 déc. 2014 23:10

Bonjour Clemzo,

Alors, j'ai une demi réponse pour toi.

Il est possible de mettre à jour qu'un seul paquet avec une de ces commandes (testées et approuvées) :

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo apt-get install --only-upgrade <packagename>

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude upgrade <packagename>
Mais la gestion des dépendances, je ne saurai te répondre ... à tester avec un cas concret.

Bonne soirée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon Image

Avatar du membre
Clemzo
Messages : 55
Enregistré le : ven. 17 oct. 2014 16:36

Re: [TUTO] Les dessous d'aptitude

Message par Clemzo » dim. 21 déc. 2014 23:28

J'ai donc tester avec xrdp ce qui fonctionne bien.

Malheureusement les paquets pour Raspbian ne semblent pas à jour pour xrdp (version pour Raspbian : 0.5.0-2; dernière version de l’éditeur : 0.9.0)
Je vais patienter.

Merci pour ce complément.
Raspberry Pi B, B+, Orange Pi et Arduino Pro Mini

Avatar du membre
dbrion0606
Raspinaute
Messages : 164
Enregistré le : ven. 30 janv. 2015 15:51

Re: [TUTO] Les dessous d'aptitude

Message par dbrion0606 » ven. 27 févr. 2015 15:02

Excusez moi, mais que sont les dépendances (on peut le déduire du contexte ou de la pratique, mais cette déduction est forcèment incomplète, voire erronée et peut mener à des malentendus que la pratique ne peut que dissiper lentement et de façon frustrante).
Une fois que ce point sera éclairci, je crois que votre tutoriel sera parfait...

Autre problème, mais plus pointu ; que se passe-t-il si un paquet dépend , **au choix** de plusieurs autres paquets :
exemple grass a besoin, pour fonctionner dans toute sa splendeur, d'une base de données -indifférente : seule la fonction compte- ; urpmi -sous mageia- va me donner le choix entre quelques versions de postgresql, mariadb .... En est il de même pour debian?

Il y a aussi une question pointue :
peut on interdire (le temps qu'on comprenne) un paquet de se faire mettre à jour (ex : X construit -lentement- un logiciel dépendant de Y -géré par Debian- et souhaite que, pendant le temps de son échafaudage logiciel, Y ne soit pas mis à jour même s'il invoque "update" et "upgrade")

maxty01
Modérateur
Messages : 712
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

Re: [TUTO] Les dessous d'aptitude

Message par maxty01 » ven. 27 févr. 2015 21:14

Bonsoir,

@ dbrion0606 :

Tous d'abord merci pour ta contribution à ce tuto.

Les dépendances, sont les softwares ou librairies nécessaires au bon fonctionnement d'un autre software ou librairie.

Il n'est pas rare de voir ceci lors de l'installation d'un seul software, en l'occurrence asterisk:

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude install asterisk
The following NEW packages will be installed:
  asterisk asterisk-config{a} asterisk-core-sounds-en{a} asterisk-core-sounds-en-gsm{a} asterisk-modules{a} asterisk-moh-opsound-gsm{a} asterisk-voicemail{a} autopoint{a} debhelper{a} freetds-common{a} gettext{a} html2text{a} 
  intltool-debian{a} libgettextpo0{a} libgmime-2.6-0{a} libgpgme11{a} libical0{a} libiksemel3{a} libmail-sendmail-perl{a} libneon27-gnutls{a} libodbc1{a} libpq5{a} libpth20{a} libradiusclient-ng2{a} libresample1{a} libsaclm3{a} 
  libsaevt3{a} libsox-fmt-alsa{a} libsox-fmt-base{a} libsox2{a} libsqlite0{a} libsybdb5{a} libsys-hostname-long-perl{a} libunistring0{a} libvpb0{a} module-assistant{a} po-debconf{a} sox{a} vpb-driver-source{a} 
0 packages upgraded, 39 newly installed, 0 to remove and 0 not upgraded.
Need to get 17.1 MB of archives. After unpacking 32.9 MB will be used.
Do you want to continue? [Y/n/?] n
Abort.
pi@raspberrypi ~ $
Pour ta seconde question, je vais me permettre de la modifier légèrement :
que se passe-t-il si un paquet dépend , **au choix** de plusieurs autres paquets incompatibles entre eux

Il faut faire la distinction entre la dépendance (requise pour le fonctionnement du software) et le choix de l'utilisateur.
Dans ton cas, aptitude va installer grass, avec par défaut des configs de mysql, mais sans installer ni mysql, ni postgress, ni aucun autre SGBD (Système de Gestion de Base de Donnée).
Il est donc de la responsabilité de l'utilisateur de choisir la base de donnée.

Code : Tout sélectionner

pi@raspberrypi ~ $ sudo aptitude install grass
The following NEW packages will be installed:
  freeglut3{a} gdal-bin{a} grass grass-core{a} grass-doc{a} grass-gui{a} libarmadillo3{a} libdap11{a} libdapclient3{a} libdapserver7{a} libepsilon0{a} libfreexl1{a} libgdal1{a} libgeos-3.3.3{a} libgeos-c1{a} libhdf4-0-alt{a} 
  libhdf5-7{a} libkml0{a} libmysqlclient18{a} libnetcdfc7{a} libodbc1{a} libogdi3.2{a} libpq5{a} libproj0{a} libspatialite3{a} libtiff5{a} liburiparser1{a} libwxbase2.8-0{a} libwxgtk2.8-0{a} libxerces-c28{a} mysql-common{a} 
  odbcinst{a} odbcinst1debian2{a} proj-bin{a} proj-data{a} python-imaging{a} python-opengl{a} python-wxgtk2.8{a} python-wxversion{a} 
0 packages upgraded, 39 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.1 MB of archives. After unpacking 133 MB will be used.
Do you want to continue? [Y/n/?] n   
Abort.
pi@raspberrypi ~ $
Peut on interdire la mise à jour d'un paquet lors d'un aptitude upgrade ... Oui !
Il est possible, sur dpkg, aptitude et rpm de bloquer la version d'un paquet, et de façon très simple.

dpkg (gestionnaire de paquets Debian de base) :
On bloque la version :

Code : Tout sélectionner

echo "grass hold" | dpkg --set-selections
On débloque la version :

Code : Tout sélectionner

echo "grass install" | dpkg --set-selections
aptitude :
On bloque la version :

Code : Tout sélectionner

aptitude hold grass
On débloque la version :

Code : Tout sélectionner

aptitude unhold grass
rpm, yum, yast :
dans /etc/yum.conf ajouter la ligne suivante :

Code : Tout sélectionner

exclude=grass,apache*,php*,kernel*
J'espère avoir répondu à tes questions,

Bonne soirée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon Image

Répondre

Retourner vers « Raspbian »