Desear paquetes más recientes es un problema común en cualquier sistema operativo. El ciclo de lanzamiento de Debian ha promediado 2 años en los últimos años, por lo que hacia el final de este ciclo, quizás sea un problema más acuciante. Una forma de mitigar esto es pasar a las pruebas hacia el final del ciclo de lanzamiento estable, cuando la próxima versión es casi estable. No queda claro a partir de la pregunta si se trata de estable o, más generalmente, de pruebas y / o también inestable. De todos modos, tener la versión más reciente puede ser un problema, incluso si uno se ejecuta inestable, ya que la versión más reciente aún no se ha empaquetado. Los desarrolladores / empaquetadores de Debian son voluntarios, por lo que pueden aburrirse u ocuparse de otras cosas, con el resultado de que el paquete languidece.
Por simplicidad y concreción, supongo en lo que sigue que el plan es hacer un backport a un paquete estable, pero se aplica de manera más general. Entonces, esto es lo que hago si quiero una versión más reciente del software que no está presente en forma estable, en un orden aproximado.
Busque el paquete en Debian Backports . A veces puede encontrar un paquete que sea lo suficientemente reciente como para satisfacer sus propósitos. Sin embargo, a menudo es el caso de que estos paquetes están desactualizados en comparación con la versión inestable o experimental o ascendente.
Intente instalar el paquete directamente desde la prueba, inestable o experimental. Si estable no se ha desviado mucho de la versión desde la que intenta instalar, esto puede funcionar. Sabrá que este enfoque es malo si el sistema comienza a intentar instalar o actualizar paquetes básicos desde la versión más reciente. Supongamos que está intentando instalar desde inestable, entonces
apt-get install packagename/unstable
Es lo primero que hay que probar. Con versiones de apt en estable, esto a menudo fallará, ya que requiere otros paquetes inestables, y este encantamiento solo aumenta la preferencia de lo packagename
suficientemente alto para que se instale en inestable. Si no comprende lo que esto significa, vaya y lea man
apt_preferences
. Continúe agregando dependencias desde inestable, asegurándose de que no está tratando de actualizar los paquetes básicos. Por ejemplo, si comienza a intentar actualizar libc6 o X o KDE o Gnome, cancele de inmediato. Por lo general, está bien si intenta actualizar otros paquetes desde el mismo paquete fuente, ya que estos generalmente están estrechamente unidos. Para ver de qué paquete fuente depende un paquete binario, haga
apt-cache showsrc packagename
Dado que muchas cosas dependen de la biblioteca GNU C (libc6) esto solía ser un problema. Más recientemente, la API parece haberse estabilizado, por lo que ahora es más posible evitar tener que actualizarla. Si un paquete satisface sus dependencias de tiempo de ejecución en estable, pero aún no funciona correctamente, presente un error. Si el empaquetador le dice que no es un error, está equivocado. :-)
Respalde el paquete usted mismo de la prueba, inestable o experimental
Como se mencionó anteriormente, los backports son una opción, pero a menudo estos paquetes están desactualizados en comparación con la versión inestable o experimental o ascendente.
Esto a menudo puede requerir una cosa de tipo de bucle de compilación de dependencia recursiva. Primero debe obtener las dependencias de compilación con
apt-get build-dep packagename
Si esto falla debido a que una de las dependencias no es lo suficientemente reciente, primero tendrá que respaldar esa dependencia. Esto puede estar fuera de control. Normalmente me rindo si tengo que lidiar con más de 2 niveles de recursión. Sin embargo, tenga en cuenta que las dependencias reales no son necesariamente tan estrictas como se indica, es decir. Una versión anterior puede funcionar. El empaquetador a menudo no intenta encontrar la versión más antigua de una dependencia de compilación (o, de hecho, tiempo de ejecución) que funcione.
Verifique la disponibilidad de paquetes de la cadena ascendente correspondiente. Idealmente, estos coincidirían con su versión de distribución, pero también podría reconstruirlos si es necesario.
Cree paquetes para la versión del software más reciente que los paquetes más recientes en pruebas / inestable / experimental. Esto puede ser relativamente desafiante, pero a veces sorprendentemente factible. Lo primero que debe tener en cuenta es que si está intentando empaquetar una versión más reciente de un paquete que ya está en Debian, ya está comenzando con una gran ventaja, es decir, que tiene el paquete existente para trabajar. Solo haz
apt-get source packagename
y apt-get
descargará el paquete fuente correspondiente, incluido el subdirectorio de Debian donde vive el paquete. Tenga en cuenta además que en estos días, este paquete a menudo vive dentro de un repositorio de control verson (git parece popular entre Debian) y apt estable (actualmente 0.8.10.3 ) le ayuda a saber dónde está esto cuando invoca
apt-get source
. Debe observar esto, porque los empaquetadores pueden tener versiones más recientes del empaque que las que corresponden a cualquier paquete lanzado. P.ej.
$ apt-get source mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
svn://svn.debian.org/python-apps/packages/mercurial/trunk
Alternativamente, podría simplemente usar
apt-cache showsrc mercurial | grep Vcs
para listar el repositorio.
Si el paquete está desactualizado, es posible que tenga que realizar modificaciones en el
paquete, actualizar los parches aplicados, pero aún así suele ser un buen punto de
partida. Debian parece estar en el proceso de estandarizar la gestión de paquetes en
quilt según el formato dpkg-source 3.0 (quilt) , por lo que ayuda con la actualización de parches.
Concluiré con un ejemplo de la vida real de cómo porté el paquete Debian de
pgf . La última versión empaquetada de pgf era 2.00 en 2008, y desde entonces se había lanzado 2.10. Vea la discusión en Por favor actualice a la versión estable más reciente de pgf (2.10) , y mi error de seguimiento con un parche, pgf: parches contra el paquete 2.0 Debian . Como resultado, el paquete Debian de pgf era muy simple, y solo tuve que cambiar una línea en el paquete 2.10 para que funcione. Terminé reprimiendo todas las
quejas lintianas también, pero eso era estrictamente opcional.