Como atualizo o PHP e todos os seus módulos no FreeBSD de uma só vez?

Como atualizo o PHP e todos os seus módulos no FreeBSD de uma só vez?

Basicamente, costumo fazer algo assim:

# 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

Mas com PHP eu tenho cerca de 40 módulos e preciso aplicá-los um por um. Existe uma maneira melhor (e segura) de fazer isso?

Editar: bem, acontece que é isso que é necessário:

# portmaster php5-extensions

É incrível como foi difícil descobrir isso!

Responder1

portmaster -db php5*

Responder2

Primeiramente devo dizer que não uso o portmaster, eu uso o portupgrade, mas depois construo ports em vez de usar pacotes!

Portupgrade permite que você coloque:

portupgrade php\*

que irá atualizar todas as portas php. Portmaster pode fazer a mesma coisa.

Além disso, você pode dar vários comandos ao portsnap de uma só vez, para que você possa colocar

portsnap fetch update

Responder3

Eu reconstruo/atualizo todos os pacotes dependendo do php5 por segurança. Você precisa especificar o nome completo do pacote, incluindo a versão. Descubra a versão exata com pkg_info:

# pkg_info|grep php
php5-5.3.8          PHP Scripting Language

Em seguida, reconstrua/atualize o php e todas as portas dependendo dele com:

# portmaster -r php5-5.3.8

Responder4

Uma resposta mais moderna usando apenas pkgé:

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

O exemplo atualiza o PHP 7.2 para 7.4. O primeiro comando sed precisa ser ajustado para as versões instaladas e de destino do PHP.

A resolução da versão pkgnão sabe que algumas extensões PHP necessárias em versões mais antigas do PHP agora fazem parte do PHP 7.4. Talvez seja necessário remover alguns deles com um comando como este: pkg delete -fy php72-hash.

informação relacionada