el package checkinstall entra en conflicto con python

Estoy tratando de hacer una actualización de distribución de Debian 6 a 7 y tengo algunos problemas con algunos packages que creé e instalé con checkinstall . Al hacer la actualización, recibo el siguiente post:

 Preparing to replace python 2.6.6-3+squeeze7 (using .../python_2.7.3-4+deb7u1_all.deb) ... Unpacking replacement python ... dpkg: error processing /var/cache/apt/archives/python_2.7.3-4+deb7u1_all.deb (--unpack): trying to overwrite '/usr/bin/2to3', which is also in package python3.4.0 3.4.0-1 

Esto se debe a 2to3 instalado en mi package python3.4.0. Creé e instalé ese package con esta línea:

 checkinstall -D --fstrans=no --dpkgflags=--force-overwrite \ --maintainer=tim@example.com --backup=yes \ --pkgname=python3.4.0 --pkgversion=3.4.0 make install 

En retrospectiva, probablemente no fue la mejor idea usar --force-overwrite pero esa fue la única forma en que pude conseguir que el package se instalara.

Me gustaría terminar de instalar el package python_2.7.3-4+deb7u1_all pero le digo que use el file instalado por python3.4.0 y no lo sobrescriba. Además, me gustaría volver a empaquetar mi python3.4.0 para que pueda instalarlo correctamente sin utilizar --force-overwrite y decirle al sistema que use la versión más reciente de 2to3 lugar de la proporcionada por el package py2.7. (con suerte para evitar más problemas más adelante)

Solutions Collecting From Web of "el package checkinstall entra en conflicto con python"

No debe preocuparse por sobrescribir el file, el file bin / 2to3 es un script de 5 líneas que solo difiere en la primera línea (la versión binaria de python que invoca):

 $ diff -u bin/2to3 ../2.7.8 --- bin/2to3 2014-06-24 16:39:43.000000000 +0200 +++ ../2.7.8/bin/2to3 2014-07-21 18:45:32.000000000 +0200 @@ -1,4 +1,4 @@ -#! /opt/python/3.4.1/bin/python3.4 +#! /opt/python/2.7.8/bin/python2.7 import sys from lib2to3.main import main 

2to3 es en realidad un enlace a 2to3-2.7 resp. 2to3-3.4 .

Sin embargo, recomiendo no instalar el binary de 2.7.3 (publicado el 2012-04-09) que tiene ya que los modules para 2to3 incluidos con la versión 3.4.0 están más actualizados (lanzados el 2014-03-16).

Si realiza una installation por separado de (en mi caso) 2.7.8 y 3.4.1 obtendrá cuatro directorys: bin , include , lib y share .

  • Bajo share son solo páginas man, con nombres como python3.4.1, por lo que dichos nombres no entran en conflicto (incluso si van en el mismo directory).
  • En virtud de lib e include son diferenciaciones entre python3.4 resp python2.7 también, por lo que no habrá conflictos tampoco.
  • en bin , hay varios enlaces ( 2to3 , idle , pydoc , python , etc.) para los binarys específicos de la versión.

Por supuesto que quiere un command de python (o 2to3 ), solo necesita decidir qué versión debe ser la pnetworkingeterminada.

Python ha sido capaz de instalarse con múltiples versiones major.minor una al lado de la otra durante más de 10 años, solo tienes que decidir cuál de las versiones establece los enlaces simbólicos (y así es la versión invocada con solo python )

El command corregido para crear el package:

 checkinstall -D --fstrans=no \ --maintainer=tim@example.com --backup=yes \ --pkgname=python3.4.0 --pkgversion=3.4.0 make altinstall 

altinstall detendrá la creación de 2to3 , python , etc. y solo instalará los nombres específicos de la versión ( 2to3-3.4 , python3.4 en este caso). Los nombres generics son solo enlaces simbólicos.