OVH Cloud OVH Cloud

aptitude (vs Re: apt vs apt-get)

15 réponses
Avatar
Marc Chantreux
salut à tous,

je change volontairement de thread et de titre parceque ca n'est que
vaguement lié mais la discution lancée par Pierre m'inspire une autre
question.

depuis que je suis passé sous aptitude (plus de 10 ans),
je ne connais aucun outils qui soit aussi plaisant pour gérer les
paquets (toutes distros confondues). Le système de recherche est
spéctaculaire comparé à tout ce que j'ai eu l'occasion d'utiliser.

je ne comprend pas pourquoi, apres toutes ces années et des rumeurs
(certes lointaines maintenant) sur le fait que aptitude allait être le
frontend recommandé, non seulement l'outils ne s'est pas imposé mais
il y a maintenant apt qui n'apporte rien de nouveau (ou alors c'est bien
caché) que les apt-tools. on note simplement que tout est subcommand, ce
que fait aptitude depuis le debut ... et une barre de progresssion en
guise d'excuse.

avec les années je me rend compte qu'aptitude est devenu mon dernier
argument serieux de fidélité à debian et je me demande pourquoi
il n'est pas plus utilisé. est-ce que quelqu'un aurait des explications
à ce sujet ? est-ce que la situation pourrait évoluer et comment ?

d'avance merci
marc

5 réponses

1 2
Avatar
aishen
excellent ces commandes, difficile à trouver de nos jours, j'utilise
rarement aptitutde mais toujours en cas de paquets cassés ou il excelle.
J'ai essayé snap mais ça ne m'a pas convaincu, mon outils c'est synaptic
ou apt + aptitude pour la chirurgie ! lol
Le 19/10/2018 à 15:51, Gabriel Moreau a écrit :
bon ... en tout cas ce qu'il faut en retenir c'est que les deux font le
taff et qu'on arrive pas à savoir qui fait mieux le taff que l'autre
(j'ai toutefois le même sentiment que toi).

De mon coté, j'utilise toujours apt-get sauf dans les rares cas ou un
truc pète et que ça tourne en rond derrière. Alors on fait
 # Correction des paquetages à problèmes
 aptitude install $(aptitude search ~b | awk '{print $2}')
Et aussi parfois :
 # paquetages cassés
 apt-get --purge autoremove $(deborphan)
 dpkg --purge $(dpkg --get-selections | grep deinstall | cut -f 1)
 aptitude -f install
En général, cela remet le système d'aplomb suite au méli-mélo d'apt
(très rare et souvent suite a des upgrade de systèmes).
L'idée est de tenter la coup de la dernière chance avec un autre
algorithme.
La der des der étant de télécharger les paquets qui vont bien dans un
dossier et de faire un "dpkg -i *.deb" dedans !
gaby
Avatar
Marc Chantreux
salut,
# Correction des paquetages à problèmes
aptitude install $(aptitude search ~b | awk '{print $2}')

une des beautés d'aptitude est de pouvoir travailler avec les
filtres, une autre est de pouvoir choisir finement le format de sortie.
j'aurais donc tendance à en profiter pour réécrire ta ligne comme suit
aptitude search '~b' -F%p # pour la liste des brokens
aptitude install '~b' # réinstaller les paquets cassés
dpkg --purge $(dpkg --get-selections | grep deinstall | cut -f 1)

sans vouloir pinailler: si t'as un paquet qui s'appelle
"super-deinstaller", ca va pas fonctionner comme attendu.
en échange, je te proposerais bien
dpkg --get-selections |
awk '$NF ~ /^dei/ {print $1}' |
xargs aptitude purge
# paquetages cassés
apt-get --purge autoremove $(deborphan)
dpkg --purge $(dpkg --get-selections | grep deinstall | cut -f 1)
aptitude -f install

deborphan... je n'avais plus utilisé ce programme depuis longtemps. du
coup je l'ai utilisé par curiosité et par nostalgie :)
du coup ca me rappelle une des raisons supplémentaires qui m'ont fait
aimé aptitude: deborphan me fait des propositions dont certaines sont
certes intéressantes mais sorties de je ne sais quel chapeau ... je n'ai
pas trop envie de lire le code et du coup j'ai commencé à jouer avec
aptitude:
croisé les sorties de aptitude avec les filtres '~o' et
'~i !~M !~E' avec celles de deborphan et je m'appercois que la réponse
idéale est un mix de tout ca ...
# ~i installé
# !~M pas automatiquement (donc pas dep)
# !~E pas essential (donc pas peter ma debian en cas de purge)
join -e_ -o 0 1.2 1.3 2.2 -j1 -a1 -a2 <(
FILTER='~i !~M !~E'
join -e_ -o 0 1.2 2.2 -j1 -a1 -a2
<( deborphan | sort | sed 's/$/ D/' )
<( aptitude search $FILTER -F'%p A'|sort )
)
<( aptitude search '~o' -F'%p O'|sort )
si quelqu'un sait ce que fait deborphan exactement, je suis preneur!
La der des der étant de télécharger les paquets qui vont bien dans un
dossier et de faire un "dpkg -i *.deb" dedans !

apt install *.deb m'inspire plus confiance: j'ai l'impression qu'il
renseigne des choses qui passent sous le radar de dpkg ... mais j'avoue
n'avoir rien pour étailler ma théorie.
a+
marc
Avatar
Marc Chantreux
hello,
deborphan finds packages that have no packages depending on them. The
default operation is to search within the libs, oldlibs and
introspection sections to hunt down unused libraries.

ca c'est un bout du man verbatim (que j'avais lu avant de poster sur la liste).
sauf que le résultat de deborphan chez moi contient entre autre
iceweasel
android-tools-adb
android-tools-fastboot
apt-transport-https
du coup je me demande comment il trouve les libs et les oldlibs ... il
faudrait probablement que je lise plus de docs sur les meta-infos que
contient la DB de apt. j'ai quand même l'impression que je vais finir
par lire les sources et ca serait quand même bien si les queries
étaient exprimées avec un vrai langage (genre comme dans aptitude ;)).
donc "aptitude purge $(deborphan)" vire toutes les librairies qui ne
sont plus utilisées par aucun des programme installé (plus de dépendance).

y compris celles que j'avais installé à la main pour mes propres
besoins. afin d'éviter cela, j'envisage désormais de faire des paquets
avec equivs et de les installer avec apt.
la théorie est que dans les couches logicielles, dpkg est un niveau en dessous
de apt.

c'est ça ... et j'en conclus que apt peut CRUD des informations dont
dpkg n'a pas conscience.
Ta question c'est un peu de savoir si des pieds de la chaise ne
manqueraient pas de quelque chose par rapport a une chaise avec des pieds.

je suis pas sur de ta métaphore mais je vois l'idée. merci en tout cas.
a+
marc
Avatar
Marc Chantreux
hello,
Si une alternative existe et est aussi installée. Je l'ai lancé par
curiosité et il m'a sorti emacs25!.. alors que je l'utilise tous les jours
;-)

ahhh ... ceci expliquant cela! merci!
y compris celles que j'avais installé à la main pour mes propres
besoins. afin d'éviter cela, j'envisage désormais de faire des paquets
avec equivs et de les installer avec apt.

C'est étonnant.

j'ai le souvenir d'avoir installé ces paquets (je sais même encore pourquoi)
et aptitude why me confirme que ce sont bien des installations manuelles.
apt-transport-https
-------------------------------
Manually installed, current version 1.7.0, priority optionnel
No dependencies require to install apt-transport-https
qml-module-qtquick-localstorage
-------------------------------
Manually installed, current version 5.11.1-5, priority optionnel
No dependencies require to install qml-module-qtquick-localstorage
sqlite3-pcre
-------------------------------
Manually installed, current version 0~git20070120091816+4229ecc-1, priority optionnel
No dependencies require to install sqlite3-pcre
c'est ça ... et j'en conclus que apt peut CRUD des informations dont
dpkg n'a pas conscience.

dpkg ne lit que les infos contenues dans le *.deb, apt prend plus de recul
et va lire les infos dans
/var/lib/apt/lists/[source]_dist_[version]_[main|contrib|...]_[binary|source]-[arch]_Packages

ok. y'a une lib officielle/recommendée pour manipuler tout ça ?
merci pour le lien et les informations! c'est très instructif.
a+
marc
Avatar
Daniel Caillibaud
Le 15/10/18 à 10:53, Wallace a écrit :
Salut,
Personnellement et professionnellement, je ne jure que par apt-get.
Aptitude est sympa sur un poste utilisateur mais sur des serveurs c'est
un enfer et j'ai eu beaucoup de déconvenues avec quand il s'agit de
manipuler un logiciel et ses dépendances pour le rétrograder ou le faire
arriver à une version précise.

Curieux, moi c'est justement le contraire, sur tous mes serveurs je
n'utilise qu'aptitude depuis 15 ans (en cli, jamais utilisé en mode
interactif), justement parce que je trouve sa syntaxe de pattern très
efficace (pour cibler des paquets ou des versions).
Mais je dois reconnaître que lors du full upgrade wheezy => jessie j e suis
passé par apt-get car il s'en sortait mieux (aptitude voulait me virer des
trucs là où apt-get a trouvé les remplaçants, me rappel le plus trop quoi,
des modules perl de mémoire)
--
Daniel
Le philosophe cherche des solutions aux problèmes et
ne trouve que des problèmes sans solutions.
Sim
1 2