migrate agent from py2 & qt4/qt5 to py3 & qt6 #1

Closed
nserrano wants to merge 0 commits from python3 into main
Collaborator

Historia de usuario: https://ognproject.evlt.uma.es/redmine/issues/247

En esta rama hay trabajo de Ramón Gómez de hace 4 años para migrar el agente a python3, y unas adaptaciones mías recientes para quitar unos restos de Qt4 y migrar lo de Qt5 a Qt6.

Este PR es para revisar el agente de linux. Los agentes para macos y windows recibirán cambios en otras ramas y se revisarán en otros PRs.

Nos han pedido que quitemos la generación de paquetes RPM para linux, por eso se borra tal código.

En PyQt5 se usaba una herramienta llamada pyrcc5 a fin de convertir src/img/oga.png en src/OGAgent_rc.py (mediante src/OGAgent.qrc). En PyQt6 ya no existe esa herramienta 🫤 Sí que existe en un conjunto de bindings paralelo llamado PySide6, por lo que temporalmente necesitamos un virtualenv donde deplegar PySide6 (600 Mb) solo con la finalidad de tener pyside6-rcc. Propongo pasar por el aro a fin de mergear esta rama, pero habrá que buscar otra manera porque no puede quedar así.

Para probar el PR hay que hacer varias cosas:

gpg

Coger la clave privada gpg "Opengnsys developers" del keepassx:

Crear el paquete debian

$ sudo apt-get install dpkg-dev devscripts debhelper lintian dh-python pyqt6-dev-tools virtualenvwrapper
$ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
$ mkvirtualenv -p python3 ogpyside6
$ pip install PySide6
$ src/update.sh
$ deactivate         ## salir del virtualenv
$ linux/build-packages.sh

El proceso da varios avisos de lintian que habrá que arreglar en el futuro:

E: ogagent: postrm-does-not-call-updaterc.d-for-init.d-script etc/init.d/ogagent [postrm]
E: ogagent: python3-script-but-no-python3-dep python3 (does not satisfy python3:any | python3-minimal:any) [usr/share/OGAgent/OGAgentUser.py]
W: ogagent: executable-not-elf-or-script [etc/xdg/autostart/OGAgentTool.desktop]
W: ogagent: executable-not-elf-or-script [usr/share/autostart/OGAgentTool.desktop]
W: ogagent: extended-description-line-too-long line 1
W: ogagent: init.d-script-does-not-source-init-functions [etc/init.d/ogagent]
W: ogagent: missing-systemd-service-for-init.d-script ogagent [etc/init.d/ogagent]
W: ogagent: no-manual-page [usr/bin/OGAgentTool-startup]
W: ogagent: no-manual-page [usr/bin/OGAgentTool]
W: ogagent: no-manual-page [usr/bin/ogagent]

Se genera el paquete debian ogagent_1.3.0-2_all.deb

Montar entorno

  • Renombrar plantillas modelo:
    • plantilla-modelo a plantilla-modelo-6gb
    • plantilla-modelo-26gb a plantilla-modelo
  • Desplegar un entorno de opengnsys en el ESXi con BRANCH=main y EXTRA_NAME el que sea
  • Volver a renombrar las plantillas modelo y dejarlo como estaba
    • plantilla-modelo a plantilla-modelo-26gb
    • plantilla-modelo-6gb a plantilla-modelo
  • Arrancar el cliente modelo
  • Subir el paquete debian al cliente modelo
  • Instalar el paquete con dpkg
  • Actualizar la IP del ogserver en la configuración del agente: sed -i "0,/remote=/ s,remote=.*,remote=https://IPServidorOpenGnsys/opengnsys/rest/," /usr/share/OGAgent/cfg/ogagent.cfg

Probar el agente

Arrancar linux

Con el simple hecho de reiniciar el cliente modelo, en la consola web del ogserver https://ognproject.evlt.uma.es/main-$EXTRA_NAME/) debería ponerse en morado al arrancar linux.

Si al arrancar el cliente modelo, el arranque se interrumpe pidiendo la contraseña de root para entrar en modo mantenimiento, es porque hay una entrada en el fstab para un disco NVMe que no existe. Basta con borrarla y el arranque continúa normalmente.

Iniciar sesión

Al iniciar sesión, el icono de la consola web se tiene que poner en morado con dos ventanitas blancas dentro.

Cerrar sesión

El icono de la consola web debe volver a morado sin las ventanitas dentro.

"Acerca de"

Al iniciar sesión, tiene que haber un icono del agente en la barra de tareas cerca del reloj. Al pinchar con el botón derecho del ratón tiene que aparecer un menú, y tiene que haber una opción "Acerca de" o algo así (no me acuerdo de memoria ahora mismo).

Llamar al API del agente

  • Probar /status:
$ IPCLIENTE=192.168.2.199   # o la que sea
$ curl --insecure -X GET https://$IPCLIENTE:8000/opengnsys/status
  • Probar /script:
$ mysql -u usuog -p -D ogAdmBD -e 'select ip,agentkey from ordenadores'
$ AGENTKEY=laquesea
$ SCRIPT=$(echo 'echo foo >/tmp/foo' |base64)
$ echo $SCRIPT
ZWNobyBmb28gPi90bXAvZm9vCg==
$ curl --insecure -X POST --header 'Authorization: '$AGENTKEY --data '{"script":"'$SCRIPT'"}' https://$IPCLIENTE:8000/opengnsys/script

El script echo foo >/tmp/foo debe haberse ejecutado en el cliente. Lo comprobamos:

$ ssh root@$IPCLIENTE cat /tmp/foo
root@192.168.2.11's password:
foo
  • Probar /popup:
$ curl --insecure -X POST --header 'Authorization: $AGENTKEY --data '{"title":"titulo","message":"mensaje"}' https://$IPCLIENTE:8000/opengnsys/popup
  • Probar /poweroff:
$ curl --insecure -X POST --header 'Authorization: '$AGENTKEY https://$IPCLIENTE:8000/opengnsys/poweroff
  • Logout/login

Al hacer logout, la consola web debería reflejar este hecho (cambiando el icono por uno con ventanitas a otro sin ventanitas). Y al hacer login de nuevo, 3/4 de lo mismo.

Historia de usuario: https://ognproject.evlt.uma.es/redmine/issues/247 En esta rama hay trabajo de Ramón Gómez de hace 4 años para migrar el agente a python3, y unas adaptaciones mías recientes para quitar unos restos de Qt4 y migrar lo de Qt5 a Qt6. Este PR es para revisar el agente de linux. Los agentes para macos y windows recibirán cambios en otras ramas y se revisarán en otros PRs. Nos han pedido que quitemos la generación de paquetes RPM para linux, por eso se borra tal código. En PyQt5 se usaba una herramienta llamada pyrcc5 a fin de convertir `src/img/oga.png` en `src/OGAgent_rc.py` (mediante `src/OGAgent.qrc`). En PyQt6 ya no existe esa herramienta 🫤 Sí que existe en un conjunto de bindings paralelo llamado PySide6, por lo que temporalmente necesitamos un virtualenv donde deplegar PySide6 (600 Mb) solo con la finalidad de tener `pyside6-rcc`. Propongo pasar por el aro a fin de mergear esta rama, pero habrá que buscar otra manera porque no puede quedar así. Para probar el PR hay que hacer varias cosas: ### gpg Coger la clave privada gpg "Opengnsys developers" del keepassx: - https://ognproject.evlt.uma.es/gitea/opengnsys/team/src/branch/main/secretOpengnsys.kdbx - https://ognproject.evlt.uma.es/redmine/issues/313 - https://ognproject.evlt.uma.es/gitea/opengnsys/team/pulls/3 ### Crear el paquete debian ``` $ sudo apt-get install dpkg-dev devscripts debhelper lintian dh-python pyqt6-dev-tools virtualenvwrapper $ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh $ mkvirtualenv -p python3 ogpyside6 $ pip install PySide6 $ src/update.sh $ deactivate ## salir del virtualenv $ linux/build-packages.sh ``` El proceso da varios avisos de lintian que habrá que arreglar en el futuro: ``` E: ogagent: postrm-does-not-call-updaterc.d-for-init.d-script etc/init.d/ogagent [postrm] E: ogagent: python3-script-but-no-python3-dep python3 (does not satisfy python3:any | python3-minimal:any) [usr/share/OGAgent/OGAgentUser.py] W: ogagent: executable-not-elf-or-script [etc/xdg/autostart/OGAgentTool.desktop] W: ogagent: executable-not-elf-or-script [usr/share/autostart/OGAgentTool.desktop] W: ogagent: extended-description-line-too-long line 1 W: ogagent: init.d-script-does-not-source-init-functions [etc/init.d/ogagent] W: ogagent: missing-systemd-service-for-init.d-script ogagent [etc/init.d/ogagent] W: ogagent: no-manual-page [usr/bin/OGAgentTool-startup] W: ogagent: no-manual-page [usr/bin/OGAgentTool] W: ogagent: no-manual-page [usr/bin/ogagent] ``` Se genera el paquete debian `ogagent_1.3.0-2_all.deb` ### Montar entorno - Renombrar plantillas modelo: - `plantilla-modelo` a `plantilla-modelo-6gb` - `plantilla-modelo-26gb` a `plantilla-modelo` - Desplegar un entorno de opengnsys en el ESXi con BRANCH=main y EXTRA_NAME el que sea - Volver a renombrar las plantillas modelo y dejarlo como estaba - `plantilla-modelo` a `plantilla-modelo-26gb` - `plantilla-modelo-6gb` a `plantilla-modelo` - Arrancar el cliente modelo - Subir el paquete debian al cliente modelo - Instalar el paquete con `dpkg` - Actualizar la IP del ogserver en la configuración del agente: `sed -i "0,/remote=/ s,remote=.*,remote=https://IPServidorOpenGnsys/opengnsys/rest/," /usr/share/OGAgent/cfg/ogagent.cfg` ### Probar el agente #### Arrancar linux Con el simple hecho de reiniciar el cliente modelo, en la consola web del ogserver https://ognproject.evlt.uma.es/main-$EXTRA_NAME/) debería ponerse en morado al arrancar linux. Si al arrancar el cliente modelo, el arranque se interrumpe pidiendo la contraseña de root para entrar en modo mantenimiento, es porque hay una entrada en el fstab para un disco NVMe que no existe. Basta con borrarla y el arranque continúa normalmente. #### Iniciar sesión Al iniciar sesión, el icono de la consola web se tiene que poner en morado con dos ventanitas blancas dentro. #### Cerrar sesión El icono de la consola web debe volver a morado sin las ventanitas dentro. #### "Acerca de" Al iniciar sesión, tiene que haber un icono del agente en la barra de tareas cerca del reloj. Al pinchar con el botón derecho del ratón tiene que aparecer un menú, y tiene que haber una opción "Acerca de" o algo así (no me acuerdo de memoria ahora mismo). #### Llamar al API del agente - Probar `/status`: ``` $ IPCLIENTE=192.168.2.199 # o la que sea $ curl --insecure -X GET https://$IPCLIENTE:8000/opengnsys/status ``` - Probar `/script`: ``` $ mysql -u usuog -p -D ogAdmBD -e 'select ip,agentkey from ordenadores' $ AGENTKEY=laquesea $ SCRIPT=$(echo 'echo foo >/tmp/foo' |base64) $ echo $SCRIPT ZWNobyBmb28gPi90bXAvZm9vCg== $ curl --insecure -X POST --header 'Authorization: '$AGENTKEY --data '{"script":"'$SCRIPT'"}' https://$IPCLIENTE:8000/opengnsys/script ``` El script `echo foo >/tmp/foo` debe haberse ejecutado en el cliente. Lo comprobamos: ``` $ ssh root@$IPCLIENTE cat /tmp/foo root@192.168.2.11's password: foo ``` - Probar `/popup`: ``` $ curl --insecure -X POST --header 'Authorization: $AGENTKEY --data '{"title":"titulo","message":"mensaje"}' https://$IPCLIENTE:8000/opengnsys/popup ``` - Probar `/poweroff`: ``` $ curl --insecure -X POST --header 'Authorization: '$AGENTKEY https://$IPCLIENTE:8000/opengnsys/poweroff ``` - Logout/login Al hacer logout, la consola web debería reflejar este hecho (cambiando el icono por uno con ventanitas a otro sin ventanitas). Y al hacer login de nuevo, 3/4 de lo mismo.
nserrano added 30 commits 2024-05-22 15:01:28 +02:00
3a3b642556 #975: REST route `GET /status` with `detail=true` shows detailed status
Note: `GET /status?detail=true` requires the authentication token.
53e7d458c5 #940: Run `2to3` on OGAgent source code
Result after running the command: `2to3 -w ogagent/src`
23503892b2 #940: Fix HTTP header bug
Function `send-header` needs `str`, not `int; adding some PEP 8 code clean up.
be263c6e2f #992: Cherry-pick commit `af35fd9`.
ogAgent sends the session type when user logs in.
b84ab338f5 refs #247 migrate agent from py2 & qt4/qt5 to py3 & qt6
- Update installation document
- No longer create rpm linux packages
- Change deb maintainer from one person to one team
- Remove stray debhelper files
- Filter more stuff in .gitignore
Poster
Collaborator

Cuando arrancas el cliente modelo y se queda en "Contraseña de root para mantenimiento", eso es porque en el fstab hay una entrada para un disco que no existe. Mete la contraseña de root (que debería ser la de qindel, o quizá "og") y modifica el fstab. Edito también el OP.

Cuando arrancas el cliente modelo y se queda en "Contraseña de root para mantenimiento", eso es porque en el fstab hay una entrada para un disco que no existe. Mete la contraseña de root (que debería ser la de qindel, o quizá "og") y modifica el fstab. Edito también el OP.
Collaborator

He generado el paquete ogagent

└─$ dpkg -I ogagent_1.3.0-2_all.deb new Debian package, version 2.0. size 45528 bytes: control archive=2428 bytes. 59 bytes, 2 lines conffiles 521 bytes, 11 lines control 3817 bytes, 50 lines md5sums 610 bytes, 28 lines * postinst #!/bin/sh 143 bytes, 10 lines * postrm #!/bin/sh 231 bytes, 7 lines * preinst #!/bin/sh Package: ogagent Version: 1.3.0-2 Architecture: all Maintainer: OpenGnsys developers <info@opengnsys.es> Installed-Size: 269 Depends: policykit-1 (>= 0.100), python3 (>= 3.4) | python (>= 3.4), python3-pyqt6, python3-requests, python3-six, python3-prctl, python3-distro, libxss1, zenity Section: admin Priority: optional Homepage: https://opengnsys.es/ Description: OpenGnsys Agent for Operating Systems This package provides the required components to allow this machine to work on an environment managed by OpenGnsys.

Posteriormente genero un entorno, llamado PR247

Antes de iniciar el cliente modelo, aparece oglive y tiene el disco del modelo montaldo, como la shell está en root, cambio la password por otra, en este caso root:qindel

chroot /mnt/sda1
passwd

Una vez iniciada la sesión, y copiado el paquete, la instalación pide dependencias

root@arq-lt1-71:~# dpkg -i ogagent_ 1.3.0-2. _all. deb Seleccionando el paquete ogagent previamente no seleccionado. (Leyendo la base de datos ... 318543 ficheros o directorios instalados actualmente.) Preparando para desempaquetar ogagent_1.3.0-2_all. deb ... Desempaquetando ogagent (1.3.0-2) ... dpkg: problemas de dependencias impiden la configuración de ogagent: ogagent depende de python3-pyqto; sin embargo: I El paquete 'python3-pyqt6' no está instalado. ogagent depende de python3-prctl; sin embargo: El paquete •'python3-prctl' no está instalado. ogagent depende de python3-distro; sin embargo: El paquete 'python3-distro' no está instalado.

He añadido una segunda interfaz al modelo cliente par atener salida a internet, pero con los repositorios que tiene el cliente modelo, no se cubren las dependencias

root@ara-lt1-71:~# apt install ogagent_ 1.3.0-2_all. deb Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho No se ha podido localizar el paquete ogagent_ 1.3.0-2_all. deb E: No se pudo encontrar ningún paquete usando «*» con «ogagent _1.3.0-2_all. deb» E: No se pudo encontrar ningún paquete con la expresión regular «ogagent_ 1.3.0-2_all. deb»

Por lo que si no me he saltado ningún paso, estoy atascado en el paso

Instalar el paquete con dpkg

He generado el paquete ogagent `└─$ dpkg -I ogagent_1.3.0-2_all.deb new Debian package, version 2.0. size 45528 bytes: control archive=2428 bytes. 59 bytes, 2 lines conffiles 521 bytes, 11 lines control 3817 bytes, 50 lines md5sums 610 bytes, 28 lines * postinst #!/bin/sh 143 bytes, 10 lines * postrm #!/bin/sh 231 bytes, 7 lines * preinst #!/bin/sh Package: ogagent Version: 1.3.0-2 Architecture: all Maintainer: OpenGnsys developers <info@opengnsys.es> Installed-Size: 269 Depends: policykit-1 (>= 0.100), python3 (>= 3.4) | python (>= 3.4), python3-pyqt6, python3-requests, python3-six, python3-prctl, python3-distro, libxss1, zenity Section: admin Priority: optional Homepage: https://opengnsys.es/ Description: OpenGnsys Agent for Operating Systems This package provides the required components to allow this machine to work on an environment managed by OpenGnsys.` Posteriormente genero un entorno, llamado PR247 Antes de iniciar el cliente modelo, aparece oglive y tiene el disco del modelo montaldo, como la shell está en root, cambio la password por otra, en este caso root:qindel ``` chroot /mnt/sda1 passwd ``` Una vez iniciada la sesión, y copiado el paquete, la instalación pide dependencias ` root@arq-lt1-71:~# dpkg -i ogagent_ 1.3.0-2. _all. deb Seleccionando el paquete ogagent previamente no seleccionado. (Leyendo la base de datos ... 318543 ficheros o directorios instalados actualmente.) Preparando para desempaquetar ogagent_1.3.0-2_all. deb ... Desempaquetando ogagent (1.3.0-2) ... dpkg: problemas de dependencias impiden la configuración de ogagent: ogagent depende de python3-pyqto; sin embargo: I El paquete 'python3-pyqt6' no está instalado. ogagent depende de python3-prctl; sin embargo: El paquete •'python3-prctl' no está instalado. ogagent depende de python3-distro; sin embargo: El paquete 'python3-distro' no está instalado.` He añadido una segunda interfaz al modelo cliente par atener salida a internet, pero con los repositorios que tiene el cliente modelo, no se cubren las dependencias `root@ara-lt1-71:~# apt install ogagent_ 1.3.0-2_all. deb Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho No se ha podido localizar el paquete ogagent_ 1.3.0-2_all. deb E: No se pudo encontrar ningún paquete usando «*» con «ogagent _1.3.0-2_all. deb» E: No se pudo encontrar ningún paquete con la expresión regular «ogagent_ 1.3.0-2_all. deb»` Por lo que si no me he saltado ningún paso, estoy atascado en el paso **Instalar el paquete con dpkg**
Poster
Collaborator

Sí, yo he tenido que dar salida a internet al cliente para poder instalarlo. En el ogserver como root:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
echo 1 >/proc/sys/net/ipv4/ip_forward

Haciendo eso, y sin necesidad de meterle otro interface de red al cliente, éste ya debería salir a internet.

Sí, yo he tenido que dar salida a internet al cliente para poder instalarlo. En el ogserver como root: ``` iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE echo 1 >/proc/sys/net/ipv4/ip_forward ``` Haciendo eso, y sin necesidad de meterle otro interface de red al cliente, éste ya debería salir a internet.
Collaborator

El problema no es la salida a internet, eso está resuelto con la segunda interfaz. Teniendo salida a internet, no resuelve dependencias.
De todas formas, he realizado lo que sugieres, para tener una salida a internet "más limpia" y el resultado es el mismo:

root@arq-lt1-71:~# dpkg -i ogagent_1.3.0-2_all.deb Seleccionando el paquete ogagent previamente no seleccionado. (Leyendo la base de datos ... 318545 ficheros o directorios instalados actualmente.) Preparando para desempaquetar ogagent_1.3.0-2_all.deb ... Desempaquetando ogagent (1.3.0-2) ... dpkg: problemas de dependencias impiden la configuración de ogagent: ogagent depende de python3-pyqt6; sin embargo: El paquete python3-pyqt6' no está instalado.
ogagent depende de python3-prctl; sin embargo:
El paquete python3-prctl' no está instalado. ogagent depende de python3-distro; sin embargo: El paquete python3-distro' no está instalado.

dpkg: error al procesar el paquete ogagent (--install):
problemas de dependencias - se deja sin configurar
Procesando disparadores para systemd (237-3ubuntu10.29) ...
Procesando disparadores para ureadahead (0.100.0-21) ...
Procesando disparadores para desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Procesando disparadores para gnome-menus (3.13.3-11ubuntu1.1) ...
Procesando disparadores para bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Procesando disparadores para mime-support (3.60ubuntu1) ...
Se encontraron errores al procesar:
ogagent
root@arq-lt1-71:~# apt -f install
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Corrigiendo dependencias... Listo
Los siguientes paquetes se ELIMINARÁN:
ogagent
0 actualizados, 0 nuevos se instalarán, 1 para eliminar y 837 no actualizados.
1 no instalados del todo o eliminados.
Se liberarán 275 kB después de esta operación.
¿Desea continuar? [S/n] s
(Leyendo la base de datos ... 318613 ficheros o directorios instalados actualmente.).........................................................................................................................]
Desinstalando ogagent (1.3.0-2) ...`

`root@arq-lt1-71:~# apt install python3-pyqt6
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
El paquete python3-pyqt6 no está disponible, pero algún otro paquete hace referencia
a él. Esto puede significar que el paquete falta, está obsoleto o sólo se
encuentra disponible desde alguna otra fuente

E: El paquete «python3-pyqt6» no tiene un candidato para la instalación`

He instalado python3 y python3-pip, pero tampoco.

¿Debo subir el cliente a Ubuntu 22?

El problema no es la salida a internet, eso está resuelto con la segunda interfaz. Teniendo salida a internet, no resuelve dependencias. De todas formas, he realizado lo que sugieres, para tener una salida a internet "más limpia" y el resultado es el mismo: `root@arq-lt1-71:~# dpkg -i ogagent_1.3.0-2_all.deb Seleccionando el paquete ogagent previamente no seleccionado. (Leyendo la base de datos ... 318545 ficheros o directorios instalados actualmente.) Preparando para desempaquetar ogagent_1.3.0-2_all.deb ... Desempaquetando ogagent (1.3.0-2) ... dpkg: problemas de dependencias impiden la configuración de ogagent: ogagent depende de python3-pyqt6; sin embargo: El paquete `python3-pyqt6' no está instalado. ogagent depende de python3-prctl; sin embargo: El paquete `python3-prctl' no está instalado. ogagent depende de python3-distro; sin embargo: El paquete `python3-distro' no está instalado. dpkg: error al procesar el paquete ogagent (--install): problemas de dependencias - se deja sin configurar Procesando disparadores para systemd (237-3ubuntu10.29) ... Procesando disparadores para ureadahead (0.100.0-21) ... Procesando disparadores para desktop-file-utils (0.23-1ubuntu3.18.04.2) ... Procesando disparadores para gnome-menus (3.13.3-11ubuntu1.1) ... Procesando disparadores para bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Procesando disparadores para mime-support (3.60ubuntu1) ... Se encontraron errores al procesar: ogagent root@arq-lt1-71:~# apt -f install Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Corrigiendo dependencias... Listo Los siguientes paquetes se ELIMINARÁN: ogagent 0 actualizados, 0 nuevos se instalarán, 1 para eliminar y 837 no actualizados. 1 no instalados del todo o eliminados. Se liberarán 275 kB después de esta operación. ¿Desea continuar? [S/n] s (Leyendo la base de datos ... 318613 ficheros o directorios instalados actualmente.).........................................................................................................................] Desinstalando ogagent (1.3.0-2) ...` `root@arq-lt1-71:~# apt install python3-pyqt6 Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho El paquete python3-pyqt6 no está disponible, pero algún otro paquete hace referencia a él. Esto puede significar que el paquete falta, está obsoleto o sólo se encuentra disponible desde alguna otra fuente E: El paquete «python3-pyqt6» no tiene un candidato para la instalación` He instalado python3 y python3-pip, pero tampoco. ¿Debo subir el cliente a Ubuntu 22?
Poster
Collaborator

Vaya, pues lo único que se me ocurre es que no lo probé realmente. Que usé el agente anterior (1.1.2) para ver el API y documentar este PR, y luego con el .deb de la 1.3.0 no hice nada 🤦

Hagamos una cosa: a ver si puedes pegarle un dist-upgrade al cliente modelo y subirlo de versión, y luego cuando termines no destruyas el entorno, y sacamos una imagen de disco actualizada. ¿Te parece?

Vaya, pues lo único que se me ocurre es que no lo probé realmente. Que usé el agente anterior (1.1.2) para ver el API y documentar este PR, y luego con el .deb de la 1.3.0 no hice nada 🤦 Hagamos una cosa: a ver si puedes pegarle un dist-upgrade al cliente modelo y subirlo de versión, y luego cuando termines no destruyas el entorno, y sacamos una imagen de disco actualizada. ¿Te parece?
Collaborator

He subido a la versión Ubuntu 22.04 pero tampoco resuelve las dependencias:

root@arq-lt1-71:~# apt -f install ./ogagent_1.3.0-2_all.deb
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Nota, seleccionando «ogagent» en lugar de «./ogagent_1.3.0-2_all.deb»
No se pudieron instalar algunos paquetes. Esto puede significar que
usted pidió una situación imposible o, si está usando la distribución
inestable, que algunos paquetes necesarios aún no se han creado o se
han sacado de «Incoming».
La siguiente información puede ayudar a resolver la situación:

Los siguientes paquetes tienen dependencias incumplidas:
ogagent : Depende: python3-pyqt6 pero no es instalable
E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.

He probado con pip3, pero tampoco.
He probado a instalar python3-pyqt6.sip, pero tampoco.

No se instala...

La PR247
Credenciales: te las paso por chat.

ogServer
eth0 UP 172.17.8.62/24
eth1 UP 192.168.2.1/24

ogModelo
ens32 UP 192.168.2.199/24

He subido a la versión Ubuntu 22.04 pero tampoco resuelve las dependencias: root@arq-lt1-71:~# apt -f install ./ogagent_1.3.0-2_all.deb Leyendo lista de paquetes... Hecho Creando árbol de dependencias... Hecho Leyendo la información de estado... Hecho Nota, seleccionando «ogagent» en lugar de «./ogagent_1.3.0-2_all.deb» No se pudieron instalar algunos paquetes. Esto puede significar que usted pidió una situación imposible o, si está usando la distribución inestable, que algunos paquetes necesarios aún no se han creado o se han sacado de «Incoming». La siguiente información puede ayudar a resolver la situación: Los siguientes paquetes tienen dependencias incumplidas: ogagent : Depende: python3-pyqt6 pero no es instalable E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos. He probado con pip3, pero tampoco. He probado a instalar python3-pyqt6.sip, pero tampoco. No se instala... La PR247 Credenciales: te las paso por chat. ogServer eth0 UP 172.17.8.62/24 eth1 UP 192.168.2.1/24 ogModelo ens32 UP 192.168.2.199/24
Poster
Collaborator

Pues no hay python3-pyqt6 para jammy: https://packages.ubuntu.com/jammy/python/ (la página me está dando 500s y timeouts ahora mismo, si no te funciona insiste un par de veces y terminará cargando)

Parece que en mantic sí está: https://packages.ubuntu.com/mantic/python/

Toca actualizar!

# grep Prompt /etc/update-manager/release-upgrades
Prompt=lts
# sed -i -e '/^Prompt/s/lts/normal/' /etc/update-manager/release-upgrades
# apt-get dist-upgrade
Los siguientes paquetes se han retenido:
  gcc-10-base gcc-10-base:i386
Se actualizarán los siguientes paquetes:
  openjdk-11-jre openjdk-11-jre-headless openjdk-8-jre openjdk-8-jre-headless
4 actualizados, 0 nuevos se instalarán, 0 para eliminar y 2 no actualizados.
# apt-get install gcc-10-base gcc-10-base:i386

# do-release-upgrade
= Welcome to Ubuntu 23.10 'Mantic Minotaur' =
No hay espacio suficiente en el disco

Limpiamos espacio:

# aptitude -F '%p' search '?section(science) ~i'
apbs
apbs-data
clustalo
clustalw
clustalx
# apt-get --purge remove $(aptitude -F '%p' search '?section(science) ~i')
After this operation, 1408 MB disk space will be freed.
# apt-get autoremove
After this operation, 502 MB disk space will be freed.

(inciso: parece que no hace falta instalar aptitude, también se puede con dpkg-query)
# dpkg-query --show --showformat '${Section} ${binary:Package}\n'
editors abiword
editors abiword-common
admin accountsservice
utils acl
admin acpi-support

Volvemos a intentar:

# do-release-upgrade
= Welcome to Ubuntu 23.10 'Mantic Minotaur' =
System upgrade is complete.
Restart required

Y listo!

# apt-get install python3-pyqt6
0 actualizados, 27 nuevos se instalarán, 0 para eliminar y 4 no actualizados.
Se necesita descargar 19.2 MB de archivos.
Pues no hay python3-pyqt6 para jammy: https://packages.ubuntu.com/jammy/python/ (la página me está dando 500s y timeouts ahora mismo, si no te funciona insiste un par de veces y terminará cargando) Parece que en mantic sí está: https://packages.ubuntu.com/mantic/python/ Toca actualizar! ``` # grep Prompt /etc/update-manager/release-upgrades Prompt=lts # sed -i -e '/^Prompt/s/lts/normal/' /etc/update-manager/release-upgrades # apt-get dist-upgrade Los siguientes paquetes se han retenido: gcc-10-base gcc-10-base:i386 Se actualizarán los siguientes paquetes: openjdk-11-jre openjdk-11-jre-headless openjdk-8-jre openjdk-8-jre-headless 4 actualizados, 0 nuevos se instalarán, 0 para eliminar y 2 no actualizados. # apt-get install gcc-10-base gcc-10-base:i386 # do-release-upgrade = Welcome to Ubuntu 23.10 'Mantic Minotaur' = No hay espacio suficiente en el disco ``` Limpiamos espacio: ``` # aptitude -F '%p' search '?section(science) ~i' apbs apbs-data clustalo clustalw clustalx # apt-get --purge remove $(aptitude -F '%p' search '?section(science) ~i') After this operation, 1408 MB disk space will be freed. # apt-get autoremove After this operation, 502 MB disk space will be freed. (inciso: parece que no hace falta instalar aptitude, también se puede con dpkg-query) # dpkg-query --show --showformat '${Section} ${binary:Package}\n' editors abiword editors abiword-common admin accountsservice utils acl admin acpi-support ``` Volvemos a intentar: ``` # do-release-upgrade = Welcome to Ubuntu 23.10 'Mantic Minotaur' = System upgrade is complete. Restart required ``` Y listo! ``` # apt-get install python3-pyqt6 0 actualizados, 27 nuevos se instalarán, 0 para eliminar y 4 no actualizados. Se necesita descargar 19.2 MB de archivos. ```
Collaborator

Después de la actualización a 23.04, todos los pasos funcionan correctamente.

Colores iconos en Consola OG - OK (morado, morado con ventana, gris apagado)
Probar /status OK
Probar /script OK
Probar /popup OK

Nota: Hay una errata en el paso del "popup": falta cierre ' en Authorization.

Probar /poweroff OK

Salvedades:

  • No hay icono del agente en la barra inferior.
Después de la actualización a 23.04, todos los pasos funcionan correctamente. Colores iconos en Consola OG - OK (morado, morado con ventana, gris apagado) Probar /status OK Probar /script OK Probar /popup OK > Nota: Hay una errata en el paso del "popup": falta cierre ' en Authorization. Probar /poweroff OK **Salvedades**: - No hay icono del agente en la barra inferior.
nserrano closed this pull request 2024-06-21 11:55:28 +02:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: opengnsys/ogagent#1
There is no content yet.