¿El principio de las actualizaciones de paquetes?

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
Tsunyan
Mensajes: 3
Inscripción: 18 de julio de 2018 - 13:13

18 de julio de 2018 - 14:19

Buen día,

Recientemente comencé a usar la versión 1.5.1.26 de WAPT Community y tengo una pregunta que me ha estado molestando. No entiendo bien cómo funcionan las actualizaciones del software.

Cuando importo un paquete desde la tienda WAPT https://store.wapt.fr/ Usando el botón "Importar desde Internet", recibo este paquete en mi repositorio privado. Hasta ahora, todo bien. Pero si hay una nueva versión del software en su sitio web oficial, el paquete no se actualiza automáticamente.

¿Importar el paquete desde la tienda WAPT actualizará los paquetes de mi repositorio privado? De ser así, ¿dependemos de la persona que administra el paquete en la tienda? De no ser así, ¿tenemos que esperar a que haya una nueva versión en la tienda antes de volver a importarlo a nuestro repositorio privado?

Otra pregunta relacionada con las actualizaciones de paquetes

Me di cuenta de que la versión de OwnCloud en la tienda está desactualizada. Así que creé el paquete y añadí la función `update_package()` que actualiza el código fuente si no está actualizado dentro del paquete. Para quienes usan ownCloud, aquí está la función que recupera la última versión del software del sitio web oficial https://owncloud.org/descargar/ :

Código: Seleccionar todo

from setuphelpers import *
import glob
import re

def update_package():
    htmlSource = wgets("https://owncloud.org/download/").splitlines()
    filename = ''
    realVersion = ''

    for line in htmlSource:

        match = re.search("https://download.owncloud.com/desktop/stable/ownCloud-.*-setup\.exe", line)
        if match:
            realVersion = line[line.find("ownCloud-")+9:line.find("-setup.exe")]
            print("Last version : ", realVersion)
            filename = 'ownCloud-%s-setup.exe' % realVersion
            print("File name : ", filename)

    exe = glob.glob('*.exe')
    for fn in exe:
        if fn != filename :
            print 'remove' + fn
            remove_file(fn)

    if not isfile(filename):
        print('Download' + filename)
        wget('https://download.owncloud.com/desktop/stable/ownCloud-%s-setup.exe' % (realVersion), filename)

    print ('Write ' + realVersion + '-0 in WAPT\\control')
    from waptpackage import PackageEntry
    pe = PackageEntry()
    pe.load_control_from_wapt(os.getcwd())
    pe.version = realVersion +'-0'
    pe.save_control_to_wapt(os.getcwd())

    print('The update is complete, you can now test and then launch a build upload.')
    
if __name__ == '__main__':
    update_package()
Esto funciona correctamente en PyScripter. Al hacer clic derecho en `update-package-source` y seleccionar "Ejecutar", se actualiza el software en la carpeta y la versión en el archivo `control`. Después, solo hay que ejecutar `build-upload` y listo. El problema es que no se puede hacer directamente desde la consola. Quizás no he descubierto cómo; corríjanme si me equivoco.

Para una alternativa un poco "fea", podría incluir la actualización del paquete al comienzo de la función install() después de verificar si la versión en internet es superior a la de mi paquete; aún no lo he probado, pero no parece muy adecuado.

Gracias por tus comentarios
Última edición realizada por tsunyan el 19 de julio de 2018 a las 16:58, editado 1 vez.
Avatar de usuario
kguerineau
Mensajes: 26
Inscripción: 6 de marzo de 2018 - 16:28

18 de julio de 2018 - 21:58

Buenas noches,
Cuando importo un paquete de la tienda WAPT (https://store.wapt.fr/) mediante el botón "Importar desde Internet", lo recibo en mi repositorio privado. Hasta aquí todo bien. Pero si hay una nueva versión del software en su sitio web oficial, el paquete no se actualizará automáticamente. ¿

Se actualizarán los paquetes en mi repositorio privado al importar el paquete de la tienda WAPT? Si es así, ¿dependemos de la persona que gestiona el paquete en la tienda? Si no, ¿tenemos que esperar a que haya una nueva versión en la tienda antes de volver a importarlo a nuestro repositorio privado?
Al actualizar el software, es necesario importarlo a su servidor WAPT. Puede crear un script que compruebe que sus paquetes estén actualizados comparando ambos repositorios. Esto es lo que hacemos con nuestros clientes de servicios gestionados.


Otra pregunta relacionada con las actualizaciones de paquetes:

He notado que la versión de OwnCloud en la tienda no está actualizada. Así que creé el paquete y agregué una función `update_package()` que actualiza el código fuente si no está ya actualizado dentro del paquete. Para quienes usan ownCloud, aquí está la función que obtiene la última versión del software del sitio web oficial: https://owncloud.org/download/ :
[...]

Esto funciona bien en PyScripter. Al hacer clic derecho en `update-package-source` y seleccionar "Ejecutar", actualiza correctamente el software en la carpeta, así como la versión en el archivo `control`. Luego solo necesitas ejecutar `build-upload`, y listo. El problema es que no puedes hacer esto directamente desde la consola. Tal vez no he descubierto cómo; corrígeme si me equivoco.
De hecho, la consola no está actualizando los paquetes.

Para una alternativa un poco "fea", podría incluir la actualización del paquete al comienzo de la función install() después de verificar si la versión en internet es superior a la de mi paquete; aún no lo he probado, pero no parece muy adecuado.
Se trata sobre todo de una alternativa nada recomendable y que va en contra del funcionamiento de WAPT.
De hecho, si se implementa el paquete mediante la función "update-package" del instalador, cada máquina descargará el ejecutable de internet. Esto presenta dos problemas:
  • 1. El ancho de banda que se utilizará intensamente
  • 2. Falta de control sobre lo que se instala en el ordenador. Imagine un problema con la integridad del archivo descargado (corrupto o con virus).
Además, en este caso, entre el momento en que importa el paquete a su repositorio privado y el momento en que se descarga el ejecutable, puede haber una diferencia de versión... ¡El informe de inventario del paquete será entonces inexacto!

La función 'update-package' ahorra tiempo cuando actualiza el paquete.

Buenas noches
Tsunyan
Mensajes: 3
Inscripción: 18 de julio de 2018 - 13:13

19 de julio de 2018 - 16:48

Al actualizar el software, es necesario importarlo a su servidor WAPT. Puede crear un script que compruebe que sus paquetes estén actualizados comparando ambos repositorios. Esto es lo que hacemos con nuestros clientes de servicios gestionados.
Sí, ya veo, para saber si necesitamos actualizarnos respecto al depósito público.

De hecho, la consola no está actualizando los paquetes.
¿Es esta una característica que se implementará en el futuro?

Esta es principalmente una alternativa que se desaconseja encarecidamente y que va en contra del funcionamiento de WAPT.
De hecho, si implementa el paquete con la función "update-package" en el instalador, significa que cada máquina descargará el ejecutable de internet. Esto presenta dos problemas:
1. El ancho de banda se utilizará en exceso.
2. No hay control sobre lo que se instala en la máquina. Imagínese un problema con la integridad del archivo descargado (corrupción o virus).
Además, en este caso, puede haber una diferencia de versión entre el momento en que importa el paquete a su repositorio privado y el momento en que se descarga el ejecutable... ¡El inventario de paquetes será entonces inexacto!

La función "update-package" ahorra tiempo al actualizar el paquete.
Eso pensé, no fue buena idea. Supongo que entonces puedo automatizar la actualización de todos los paquetes con un script por lotes o PowerShell.

Gracias por estas explicaciones.
Avatar de usuario
vcardón
Experto en WAPT
Mensajes: 272
Inscripciones: 06 Oct 2017 - 22:55 horas.
Ubicación: Nantes, Francia

19 de julio de 2018 - 21:59

tsunyan escribió: 19 de julio de 2018 - 16:48¿Es esta una función que se implementará en el futuro?
Esta característica es altamente indeseable porque el administrador del parque es responsable de lo que recupera de Internet y de lo que implementa en su parque.

Debe verificar que lo que despliega sea seguro.

Te dejaré que traces tu propio paralelo con este artículo que describe una tragedia reciente:

http://www.lefigaro.fr/international/20 ... perfume.php

Atentamente.

Vicente
Vincent CARDON
Tranquilo IT
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

19 de julio de 2018 - 22:35

tsunyan escribió: 19 de julio de 2018 - 16:48 Eso es lo que pensaba, no era una buena idea. Supongo que entonces puedo automatizar la actualización del paquete para todos los paquetes con un script por lotes o PowerShell.
¿Por qué no ejecutar un paquete de actualización cada noche? Pero, como señala Vincent, esto no se recomienda por razones obvias de seguridad. El software debe ser verificado por un humano antes de instalarse en toda la red.

De hecho, un editor puede verse comprometido, por ejemplo:

CCleaner: https://www.generation-nt.com/ccleaner-...51839.html

O, por ejemplo, recientemente en el caso de PDF Creator: https://landingpage.pdfforge.org/domain/es

En este tipo de situaciones, automáticamente se planta un parque entero... :rollo: Daño ...

Una buena solución sería, en el peor de los casos, ejecutar un paquete de actualización todas las noches pero enviar el nuevo paquete a una fase de madurez: VALIDACIÓN-ESPERA

Lo único que te queda por hacer es probar el software
Tsunyan
Mensajes: 3
Inscripción: 18 de julio de 2018 - 13:13

20 de julio de 2018 - 13:10

Gracias por estas recomendaciones y respuestas rápidas @vcardon @sfonteneau.
Bloqueado