Buenas. Tengo un -pequeño- problema con el gestor de paquetes APT.
Les contaré la historia completa, ojala no se aburran.
Al inicio de esta película, estaba en Debian Jessie.
Comienzo: hoy, quise pasar de XAMPP (PHP, MariaDB y Apache2) a las
instalaciones separadas de cada uno de estos sistemas.
Por lo que procedí a eliminar la instalación de XAMPP (o LAMPP) y
comienzo a descargar el source de PHP7.0.8, Apache httpd 2.4.20 y
MariaDB... todo iba bien; partí compilando Apache, no tuve problemas.
Instalé y todo bien. El tema es que al iniciar el servicio con "service
apache2 start" decía que dicho servicio no existía.
Cuando intentaba iniciar apache2 con "invoke-rc.d apache2 start" me
decía que faltaba el fichero de configuración de apache (httpd.conf) lo
cual es bastante extraño ya que la instalación debería dejar todo listo,
o no?
Busqué soluciones y nada me la dio. Tuve que desinstalar e instalar la
versión del repositorio (que estaba en Apache httpd 2.4.10, no era tanta
diferencia). Okey, ahí todo bien. Apache funcionando y no daba problema.
Seguí con PHP. Compilé el source e instalé. Funcionaba perfecto, pero
faltaba el módulo para vincularlo a apache, el cual según tengo
entendido es el "libapache2-mod-php7.0". Entonces me pregunté, donde
consigo esto para una versión de PHP específica? No encontré mucha
información al respecto.
Hasta el momento tenía "Apache httpd 2.4.10" desde los repositorios
oficiales y "PHP7.0.8" desde php.net compilado e instalado. Me faltaba
el módulo de esa versión de PHP para apache, donde lo conseguía? Podía
compilarlo yo mismo? Y el source? En fin..
Aclaro que en los repositorios de Jessie no esta PHP7, solo hasta la
versión 5 de este lenguaje.
Sigo: entonces lo encuentro... la versión 7 de PHP para Debian. El
problema es que estaba en los repositorios de Debian Testing (Debian
Stretch) por lo que me dispuse a agregar los repositorios de dicha
versión en mi "sources.list". Actualizo e instalo Apache (que por cierto
estaba en la última versión) y PHP7 (que incluía el módulo para Apache
obviamente).
Luego de esto, tenía lo que quería... Apache y PHP en sus últimas versiones.
Pero también tenía Debian testing, que no lo quería (pero podía
aceptarlo igual, después de todo, yo agregué los repositorios a mi
sources.list).
Despues de esto, intento un "apt-get upgrade" y me comienzan a aparecer
errores de Python y APT; que faltaban ciertos módulos, etc. Pero para
poder resolver estos problemas necesitaba "apt", y este estaba bugeado.
Era el pez que se muerde la cola.
En conclusión:
- puedo quedarme con Debian Stretch por último? ya que no puedo hacer un
downgrade a Jessie. En el caso de que si, como soluciono el tema de "apt"?
- donde consigo los módulos para las distintas versiones de PHP para apache?
- porque apache no funcionaba al compilar e instalar sin errores?
- se pueden instalar packetes de otra versión de Debian sin necesidad de
hacer un upgrade? Como?
Hice mucho para intentar solucionar los problemas. Leí bastante y nada.
De hecho ahora los errores cambiaron (despues de un "update" y "upgrade"
de haber cambiado todo sources.list a la versión testing) y ahora aparece:
E: Esta ejecución de la instalación requiere eliminar temporalmente el
paquete esencial sysvinit-utils:amd64 debido a un bucle de
Conflictos/Pre-Dependencias. Normalmente esto es malo, pero si quiere
hacerlo de todas formas, active la opción |APT::Force-LoopBreak».
E: Internal Error, Could not early remove sysvinit-utils:amd64 (2)
Intenté eliminar sysvinit-utils pero no se podía.
También activando la opción esa: apt-get update && apt-get dist-upgrade
-o APT::Force-LoopBreak=1
con esta me aparece dependencias incumplidas, intento instalarlas y boom:
Traceback (most recent call last):
File "/usr/bin/apt-listchanges", line 28, in <module>
import apt_pkg
ImportError: No module named 'apt_pkg'
Se encontraron errores al procesar:
/var/cache/apt/archives/debconf_1.5.59_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Esos 2 son solo partes del error completo.
Vale!