Comment savoir à apt que les dépendances sont résolues manuellement?


14

Disons qu'il y a un logiciel que je ne veux pas installer apt, mais manuellement. (TeXLive, car je veux utiliser la version 2011 et aptne dispose que de la version 2009.)

Disons qu'il y a un autre logiciel que j'aimerais installer apt, qui dépend cependant du premier logiciel. (Vim LaTeXSuite, car il est difficile d'installer manuellement pour une utilisation à l'échelle du système.)

Par défaut, aptil ne "voit" pas le premier logiciel et procède à l'installation de nombreux fichiers inutiles et indésirables (c'est-à-dire TeXLive 2009) juste pour satisfaire les métadonnées de dépendance.

Comment puis-je soit:

  • Dire aptqu'un paquet donné (par exemple texlive) est installé à toutes fins pratiques, et qu'il ne devrait pas être installé en tant que dépendance d'un autre paquet?

  • Dites-vous aptd'installer un paquet donné (par exemple vim-latexsuite) sans se soucier de ses dépendances?

J'ai passé au crible diverses aptpages de manuel liées et je suis apparu vide, et j'ai également trouvé cette question sur ce site, mais je pense qu'il doit y avoir une façon moins hackée de le faire, non?

(De mon temps Gentoo, je me souviens de emerge --injectet /etc/portage/package.provides, et je cherche essentiellement les aptéquivalents.)


TeX Live 2011 a été ajouté récemment à Debian Sid, il devrait donc se propager tôt ou tard à Mint également (mais Ubuntu 12.04 l'a "manqué", donc pas avant la fin octobre avec Ubuntu 12.10). Si vous êtes vraiment aventureux, vous pourriez peut-être récupérer les paquets de Debian Sid, mais puisque dans ce cas cela concerne beaucoup de paquets, ce n'est probablement pas une bonne solution. Il existe un PPA sur launchpad.net/~texlive-backports/+archive/ppa configuré (voir ce rapport de bogue dans Ubuntu ) que vous pouvez peut-être utiliser également dans Mint.
Daniel Andersson


Pas de commentaire downvote trois ans plus tard ... voulez-vous expliquer?
DevSolar

@DevSolar: On dirait que quelqu'un a rejeté la question en série et les deux réponses trois ans après le fait, sans préciser pourquoi. Mieux vaut juste hausser les épaules et passer à autre chose, je suppose :-).
Daniel Andersson

Réponses:


13

Vous devez utiliser le equivspackage pour générer des méta-packages qui fournissent ces dépendances, puis utiliser dpkgpour installer ces packages.

L'installation equivset la lecture de sa documentation devraient suffire, mais ce guide pour Ubuntu est assez complet et devrait également s'appliquer à d'autres systèmes APT.


De plus, si vous pensez qu'un package doit pouvoir être installé sans la dépendance spécifiée, vous devez déposer un bogue contre le package, expliquant le cas où la dépendance n'est pas nécessaire.

Dans ce cas , texlive-base-binsemble être seulement "recommandé" et non pas une "dépendance" dans la distribution Debian de base au moins (probablement en partie car il texlives'agit d'un paquet énorme), mais parce qu'il est courant d'installer TeX Live en amont sur Debian depuis le la version de distribution est souvent très en retard (pour la raison que le paquet est une bête telle qu'il ne peut souvent pas être empaqueté sans un travail substantiel, qui est principalement effectué par une ou quelques personnes, qui prétendent avoir des vies à côté de Debian), le equivsastuce est souvent utilisée avec TeX Live (wow, cette phrase est devenue incontrôlable :-)).


Addition : Pour des instructions plus détaillées pour ceux qui cherchent à installer TeXLive en dehors du système de package, ces instructions sur TeX.SX sont plus complètes et continueront très probablement à être mises à jour. Ils incluent également des instructions plus explicites concernant l' equivsétape.


Je ne sais pas comment cela s'est produit, mais Linux Mint fait de texlive une dépendance "dure" ... va essayer le equivspaquet.
DevSolar

equivsa très bien fonctionné. J'ai créé la version 9999 de texlive-base-bin, en remplaçant le paquet "factice" d'origine du même nom (fourni par texlive-binaries), et installé vim-latexsuitesans aucun problème.
DevSolar

1

Vous pouvez utiliser l' --nodepsindicateur sur dpkg, qui devrait installer le package sans aucune dépendance.

   --ignore-depends=package,...
          Ignore  dependency-checking for specified packages (actu-
          ally, checking is performed, but only warnings about con-
          flicts are given, nothing else)

Il y a une question très similaire sur Serverfault qui mérite également d'être examinée


Euh ... rien de tel? (
Du

1
hm, il me semble avoir fait une erreur - c'est pour dpkg, pas apt-get - édité ma réponse pour refléter cela
Journeyman Geek

C'est quelque chose qui me confond sans fin avec les dérivés de Debian: la multitude d'interfaces de gestionnaire de paquets. Je suppose qu'il n'y a pas de déclenchements lors du mélange? Ou devrais-je m'en tenir à l'un d'eux?
DevSolar

tout est basé sur dpkg, essentiellement, apt et aptitude sont des frontaux à cela, et il y a des frontaux pour apt et aptitude. dpkg est généralement utilisé lorsque vous souhaitez installer des packages à partir d'un fichier .deb. J'ai tendance à m'en tenir à apt-get et dpkg pour la plupart moi-même. Mélanger les gestionnaires de paquets «Debian» par défaut devrait généralement être raisonnablement sûr
Journeyman Geek

Cela fait de votre réponse ma solution préférée pour mon problème réel , car rien ne dépend à son tour de vim-latexsuite. Cependant, cette solution ne marque pas "texlive" comme étant présente , elle empêche simplement vim-latexsuite de le demander. En tant que telle, la réponse de Daniel correspond mieux au titre de la question. La coche va à lui, bravo à vous. ;-)
DevSolar

1

Ce qui suit supprimera la dépendance d'un fichier .deb, dans ce cas, la suppression de la dépendance libperl5.20 de freeradius:

dpkg-deb -x freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius
dpkg-deb -e freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius/DEBIAN
sed -i  -e 's/, libperl5.20 (>= 5.20.2)//g' freeradius/DEBIAN/control
dpkg-deb -b freeradius freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb

Cela vous permet d'installer le package sans savoir que la dépendance existe.

Si vous installez manuellement des versions spécifiques de packages, vous souhaiterez peut-être également cesser apt-get upgradede mettre à niveau le package à l'avenir:

apt-mark hold freeradius
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.