Je bute sur un problème: je souhaite installer une liste de paquets générée par une commande du type # apt-get install $(commande qui liste ce que je veux installer) mais celle-ci comporte des conflits entre paquets. Comment je peux faire pour qu’apt-get ignore les paquets conflictuels entre eux mais installe quand même le reste?
Me suis farci la man page je vois pas d’option qui pourrait convenir…
Bonjour,
c’est peut-être pas judicieux, ou faisable : comment c’est possible si les pkg conflictuels sont des dépendances de pkg dans ta liste ?
Je préférerais regarder de près les pkg qui posent problèmes, voir pourquoi, au lieu de forcer l’installation en ignorant ceux-ci.
# apt-get -s install $(commande qui liste ce que je veux installer)
le souci est entre les paranthéses à mon avis, elle liste sur quels critères ta commande ? Si elle établit une liste de pkg pas compatible, ça n’a pas de sens …
Voici donc ce qui m’a conduit à demander de l’aide.
Pour que mon serveur apache2 interprète du php, il a besoin du paquet libapache2-mod-php ou libapache2-mod-php7.3 (installé automatiquement par le précédent). Dans ma petite tête je me suis dit: « Et s’il existait d’autres modules peut-être utiles? Reprenons ma commande d’un autre sujet, bidouillons-là et voyons ce que ça donne… »
La commande:
apt-cache search ^libapache2-mod-
La réaction: « Waouh, y’en a plein! Installons-les! »
La commande:
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation :
Les paquets suivants contiennent des dépendances non satisfaites :
libapache2-mod-auth-pubtkt : Est en conflit avec: libapache2-mod-auth-tkt mais 2.3.99~b1-1 devra être installé
libapache2-mod-ruwsgi : Est en conflit avec: libapache2-mod-uwsgi mais 2.0.18-1 devra être installé
libapache2-mod-uwsgi : Est en conflit avec: libapache2-mod-ruwsgi mais 2.0.18-1 devra être installé
libapache2-mod-wsgi-py3 : Est en conflit avec: libapache2-mod-wsgi mais 4.6.5-1 devra être installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
Quelle drôle d’idée ! Sur un serveur on n’installe que ce dont on a besoin, toujours.
Évidemment si tu fais cela, cela va tenter d’installer des modules Apache incompatibles entre eux. Tu le vois d’ailleurs très bien dans ton retour de commande : incompatibilité entre modules d’authentification et entre modules WSGI.
Autre effet de bord, cela va marquer le paquet libapache2-mod-php7.3 comme installé manuellement, ce qui peut poser problème lors d’une future mise à niveau.
t’inquiète , les pkg « recommends » seront fortement recommandés, et on peut supposer que les pkg « utiles » seront suggérés (le reste tu verras bien au fur et à mesure de l’avancement de ce que tu projettes de faire).
$ sudo apt-get -s install libapache2-mod-php
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.3 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl4 libsodium23 php-common php7.3-cli
php7.3-common php7.3-json php7.3-opcache php7.3-readline
Paquets suggérés :
apache2-doc apache2-suexec-pristine | apache2-suexec-custom php-pear
apache2-doc apache2-suexec-pristine | apache2-suexec-custom php-pear
ici la barre verticale précise que c’est l’un ou l’autre des pkg de part et d’autre …
tu fais un apt-cache show (vite fait) de pkg suggérés, et tu vois dans le descriptifs ce qui pourrait t’être utile, et tu rajoutes au cas où, à ta ligne apt install.
Pour ma défense je précise que c’est un serveur de test pour des petits projets de développement en php (et html-css-js), les considérations de sécurité je serais tenté de dire « on s’en fout » puisqu’on ne peut accéder à ce serveur qu’en local, réseau virtuel, du moins selon mes maigres connaissances en réseautique internet.
Concernant les paquets en conflit je cherche une manière de n’en garder qu’un seul, si possible en laissant apt (j’utilise pas mais pourquoi pas) ou apt-get le faire automatiquement (sélection du meilleur ou du 1er qui fonctionne du moins, élimination des autres).
Après j’avoue aussi, je ne me suis pas encore documenté sur ce que chaque module fait, le mieux évidemment serait de ne garder que libapache2-mod-php qui me met le 7.3 et je pense sera en mesure de me mettre les versions suivantes.
Ça peut paraitre idiot cette démarche mais l’idée est d’avoir un truc complet sans devoir rajouter des trucs auxquels je ne penserais pas forcément au premier abord ultérieurement…
Oui je sais j’en ponds souvent des comme ça mais parfois ça aboutit sur des trucs qui me paraissent intelligents