Esta es una pregunta muy específica que Google no ayudó a responder.
Estoy ejecutando Ubuntu 13.04 con apt 0.9.7.7ubuntu4 for amd64 compiled on Oct 3 2013 15:25:56
.
Quiero instalar Erlang desde un paquete .deb, pero no quiero extraer todas sus dependencias. El paquete en sí especifica que depende de las bibliotecas Java y wx, pero en realidad no son necesarias a menos que desee interactuar con Java o wxWidgets.
Puedo instalar Erlang así
sudo dpkg -i --force-depends erlang.deb
Sin embargo, la instalación de cualquier otra cosa con apt-get
posterioridad falla debido a dependencias insatisfechas. Entonces, si quiero instalar git después de Erlang, obtengo lo siguiente
$ 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).
¿Hay alguna manera de hacer que el esl-erlang
paquete se cierre sin ejecutarse apt-get install -f
?
Quiero algo como esto:
sudo apt-get install --ignore-deps-for-package=esl-erlang git
o así:
sudo apt-cache shut-package-up esl-erlang
o esto:
sudo apt-get download git
sudo dpkg -i --with-deps git.deb
He encontrado una pregunta similar: /server/250224/how-do-i-get-apt-get-to-ignore-some-dependencies . Un par de respuestas proporcionan pasos manuales útiles para modificar las dependencias de ciertos paquetes.
Todavía estoy buscando un método robusto y automatizado.
fuente
--nodeps
(apt-get
) o--ignore-depends
condpkg
?Respuestas:
Entiendo el punto de bjanssen, pero parece ridículo que un administrador de paquetes permita la instalación
--force-depends
de un solo paquete, pero no permita la dependencia de forzar-depende-para-siempre-y-detener-advirtiéndome-sobre-esta-dependencia.Tuve un problema similar con un paquete que dependía de una versión de libcairo ligeramente superior a la disponible actualmente en Debian. Para mis propósitos todavía funciona bien. Estoy feliz de seguir usándolo hasta que la actualización de libcairo aparezca en apt. No quiero compilar desde la fuente o construir mi propio paquete.
La solución que encontré:
/var/lib/dpkg/status
,Depends:
línea para evitar que el paquete se queje.Supongo que se sobrescribirá la próxima vez que se actualice el paquete, pero eso es exactamente lo que quiero.
fuente
Lo que intenta hacer es en contra del propósito de un administrador de paquetes, que trata de mantener un entorno sano, si está utilizando la herramienta incorrecta para el trabajo. No intentes romper apt-get.
La forma correcta de resolver su problema es crear su propio paquete con las dependencias que más le convengan. Existe la forma oficial (bastante involucrada: http://www.debian.org/doc/manuals/maint-guide/index.en.html ) y la forma rápida y sucia usando
apt-build
, o para paquetes que no están en la fuente de distribución,checkinstall
. Todos los paquetes de producción apt-get se instalarán con gusto.En una nota final, puede cuestionar la sabiduría del mantenedor de esl-erlang para incluir ciertas dependencias, pero no puede culpar al administrador de paquetes por el comportamiento previsto. Si cree que estas dependencias son incorrectas, debe presentar un error con el paquete.
fuente
libmng1
. Pero habíalibmng2
instalado Y un enlace simbólico establecido enlibmng1.so
. Trabajó una amenaza, nunca tuvo ningún problema. Peroapt-get
siempre se quejó de "dependencias insatisfechas". Así que definitivamente hay una buena razón para tratar de encontrar una manera de silenciar la aptitud a este respecto. Puesto que las cosas hacen el trabajo, sólo sigue quejándose de cosas que simplemente son ningún problema. Simplemente ve problemas donde no hay ninguno. Y eso es molesto.equivs
"silenciar" apt-get sin romperlo.Verifique si el "proxy utilizado" en el
apt.conf
es correcto (es decir, de acuerdo con su red). Esto también causa estos problemas, ya que las URL no serían accesibles.Por lo general, si usa proxy, su
/etc/apt/apt.conf
aspecto sería el siguiente:fuente