Il s'agit d'une question très spécifique à laquelle Google n'a pas aidé à répondre.
J'utilise Ubuntu 13.04 avec apt 0.9.7.7ubuntu4 for amd64 compiled on Oct 3 2013 15:25:56
.
Je veux installer Erlang à partir d'un package .deb, mais je ne veux pas extraire toutes ses dépendances. Le package lui-même spécifie qu'il dépend des bibliothèques Java et wx, mais en réalité celles-ci ne sont pas nécessaires à moins que vous ne vouliez interfacer avec Java ou wxWidgets.
Je peux installer Erlang comme ça
sudo dpkg -i --force-depends erlang.deb
Cependant, l'installation de toute autre chose avec apt-get
après échoue en raison de dépendances non satisfaites. Donc, si je veux installer git après Erlang, j'obtiens ce qui suit
$ sudo apt-get install -y git
Reading package lists...
Building dependency tree...
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
esl-erlang : Depends: default-jre-headless but it is not going to be installed or
java2-runtime-headless or
java1-runtime-headless or
java2-runtime or
java1-runtime
Depends: libwxbase2.8-0 but it is not going to be installed
Depends: libwxgtk2.8-0 but it is not going to be installed
Recommends: erlang-mode but it is not going to be installed
git : Depends: libcurl3-gnutls (>= 7.16.2-1) but it is not going to be installed
Depends: perl-modules but it is not going to be installed
Depends: liberror-perl but it is not going to be installed
Depends: git-man (> 1:1.7.9.5) but it is not going to be installed
Depends: git-man (< 1:1.7.9.5-.) but it is not going to be installed
Recommends: patch
Recommends: rsync
Recommends: ssh-client
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Existe-t-il un moyen de esl-erlang
fermer un package sans l'exécuter apt-get install -f
?
Je veux quelque chose comme ça:
sudo apt-get install --ignore-deps-for-package=esl-erlang git
ou comme ça:
sudo apt-cache shut-package-up esl-erlang
ou ca:
sudo apt-get download git
sudo dpkg -i --with-deps git.deb
J'ai trouvé une question similaire: /server/250224/how-do-i-get-apt-get-to-ignore-some-dependencies . Quelques réponses fournissent des étapes manuelles pratiques pour modifier les dépendances de certains packages.
Je suis toujours à la recherche d'une méthode automatisée robuste.
la source
--nodeps
(apt-get
) ou--ignore-depends
avecdpkg
?Réponses:
Je comprends le point de bjanssen, mais il semble ridicule qu'un gestionnaire de paquets autorise
--force-depends
une seule installation de paquet, mais ne permette pas que force-depend-forever-and-stop-warning-me-about-this-dependency.J'ai eu un problème similaire avec un paquet qui dépendait d'une version de libcairo légèrement supérieure à celle actuellement disponible dans Debian. Pour mes besoins, cela fonctionne toujours bien. Je suis heureux de continuer à l'utiliser jusqu'à ce que la mise à jour de libcairo apparaisse dans apt. Je ne veux pas compiler à partir des sources ou créer mon propre package.
La solution que j'ai trouvée:
/var/lib/dpkg/status
,Depends:
ligne pour empêcher le package de se plaindre.Je suppose que ce sera écrasé la prochaine fois que le package sera mis à jour, mais c'est exactement ce que je veux.
la source
Ce que vous essayez de faire est contraire au but d'un gestionnaire de paquets, qui essaie de garder un environnement sain, si vous utilisez le mauvais outil pour le travail. N'essayez pas de casser apt-get.
La bonne façon de résoudre votre problème est de créer votre propre package avec les dépendances qui vous conviennent. Il y a la manière officielle (assez impliquée: http://www.debian.org/doc/manuals/maint-guide/index.en.html ) et la manière rapide et sale d'utiliser
apt-build
, ou pour les paquets qui ne sont pas dans la source de distribution,checkinstall
. Tous les packages de produits apt-get seront installés avec plaisir.Sur une note finale, vous pouvez remettre en question la sagesse du responsable de esl-erlang pour inclure certaines dépendances, mais vous ne pouvez pas reprocher au gestionnaire de packages le comportement prévu. Si vous pensez que ces dépendances sont incorrectes, vous devez signaler un bogue avec le package.
la source
libmng1
. Mais j'avaislibmng2
installé ET un lien symbolique réglé surlibmng1.so
. A fonctionné une menace, n'a jamais eu de problèmes. Mais seapt-get
plaignait toujours de «dépendances non satisfaites». Il y a donc certainement une bonne raison d'essayer de trouver un moyen de faire taire les aptitudes à cet égard. Depuis les choses font le travail, il ne cesse se plaindre des choses qui simplement ne sont pas un problème. Il voit juste les problèmes là où ils n'en sont pas. Et c'est ennuyeux.equivs
apt-get de "silence" sans le casser.Vérifiez si le "proxy utilisé"
apt.conf
est correct (c'est-à-dire conforme à votre réseau). Cela provoque également de tels problèmes, car les URL seraient inaccessibles.En règle générale, si vous utilisez un proxy, votre
/etc/apt/apt.conf
ressemblerait à:la source