30 votos

Cómo una falsa versión del paquete instalado?

Siendo uno de los primeros y el uso de 11.04 compilaciones diarias a veces me encuentro con una situación en la que algunos paquetes requieren versiones anteriores de otros paquetes de aquellos a los que he instalado. Generalmente más reciente (pero rechazó las versiones de los paquetes que se necesitan proporcionar toda la funcionalidad de sus versiones anteriores.

Si utilizo dpkg -i --force-depends-version a instalar los paquetes dependientes de todo funciona bien, nunca he visto un problema.

En lugar de manualmente la descarga e instalación de cada paquete, puedo hacer que el sistema de pretender que hay un paquete específico de la versión que se instala cuando hay una nueva? O es que hay un --force-depends-version clave equivalente para apt-get?

32voto

qux Puntos 251

A pesar de una respuesta ya aceptado, inline aceptado el mejor transmite el proceso:

Hay un paquete de Debian llamada equivs que es capaz de crear paquetes "dummy". Instalarlo ejecutando sudo apt-get install -y equivs

Una vez instalado, se genera una plantilla de "control" archivo con el siguiente comando: equivs-control postfix (reemplace postfix con el nombre del paquete). En mi caso, yo podría utilizar un suplente nombre del paquete, por ejemplo postfix-custom o lo que sea, pero tienen mi paquete personalizado cumplir o Provides la instalación de dependencia de postfix (de nuevo, reemplazando postfix para cualquier paquete que desee.

Una vez que el control de la plantilla de archivo es generado, yo le suele quitar una gran cantidad de los comentarios declaraciones (las declaraciones que comienzan con #). Uno que me gusta mantener concretamente a la Provides: declaración donde puedo decir que mi paquete proporciona la capacidad ofrecida por el otro paquete que estoy tratando de falso, por ejemplo Provides: postfix dice que el archivo Debian/Ubuntu dependencia mecanismo de resolución de que mi paquete-de cualquier nombre-proporciona las mismas capacidades del paquete de destino, de nuevo, postfix o lo que sea. Esto me permite a nombre de mi paquete de forma independiente de la de destino del paquete para evitar la confusión. Erlang Fábrica hace con sus cosas, por ejemplo esl-erlang brinda erlang.

Finalmente, una vez que el control de la plantilla de archivo es creado, utilice equivs-build para generar la falsa paquete, por ejemplo equivs-build /path/to/generated/control/file. Se toma unos segundos para construir el paquete y, a continuación, puede ejecutar sudo dpkg -i my_package_name*.deb

Para usuarios avanzados, si el control de la plantilla de archivo tiene un Requires: de dependencia de la línea, puede que desee utilizar una herramienta como gdebi a instalar el paquete, así como la de los distintos paquetes que se declara como dependencias.

19voto

warren Puntos 177

Usted puede utilizar el equivs Install equivs paquete para crear un muñeco paquete falso que un determinado paquete está instalado. Algunas instrucciones aquí.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X