¿Cómo actualizo PHP y todos sus módulos en FreeBSD de una sola vez?

¿Cómo actualizo PHP y todos sus módulos en FreeBSD de una sola vez?

Básicamente, suelo hacer algo como esto:

# portsnap fetch
# portsnap update

# portmaster -L | grep -B1 "New version"
    ===>>> php5-5.2.11
    ===>>> New version available: php5-5.2.12
# portmaster php5-5.2.11

Pero con PHP tengo alrededor de 40 módulos y los tengo que usar uno por uno. ¿Existe una forma mejor (y segura) de hacer esto?

Editar: bueno, resulta que esto es lo que se necesita:

# portmaster php5-extensions

¡Es sorprendente lo difícil que fue descubrirlo!

Respuesta1

portmaster -db php5*

Respuesta2

En primer lugar, debo decir que no uso portmaster, uso portupgrade, ¡pero luego construyo puertos en lugar de usar paquetes!

Portupgrade te permite poner:

portupgrade php\*

que actualizará todos los puertos php. Portmaster puede hacer lo mismo.

También puedes darle múltiples comandos a portsnap de una sola vez, para que puedas poner

portsnap fetch update

Respuesta3

Reconstruyo/actualizo todos los paquetes dependiendo de php5 por seguridad. Debe especificar el nombre completo del paquete, incluida la versión. Descubra la versión exacta con pkg_info:

# pkg_info|grep php
php5-5.3.8          PHP Scripting Language

Luego reconstruya/actualice php y todos los puertos que dependen de él con:

# portmaster -r php5-5.3.8

Respuesta4

Una respuesta más moderna usando only pkges:

pkg install `pkg info | grep php | sed 's/72/74/; s/-7.*//'`

El ejemplo actualiza PHP 7.2 a 7.4. El primer comando sed debe ajustarse para las versiones instaladas y de destino de PHP.

La resolución de versión de pkgno sabe que algunas extensiones de PHP necesarias en versiones anteriores de PHP ahora forman parte de PHP 7.4. Es posible que tengas que eliminar un par de ellos con un comando como este: pkg delete -fy php72-hash.

información relacionada