Как обновить PHP и все его модули на FreeBSD за один раз?

Как обновить PHP и все его модули на FreeBSD за один раз?

В общем, я обычно делаю что-то вроде этого:

# 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

Но с PHP у меня около 40 модулей и я должен их один за другим. Есть ли лучший (и безопасный) способ сделать это?

Редактировать: ну, оказывается, это то, что нужно:

# portmaster php5-extensions

Удивительно, как трудно было это выяснить!

решение1

portmaster -db php5*

решение2

Во-первых, я должен сказать, что я не использую portmaster, я использую portupgrade, но я собираю порты, а не использую пакеты!

Portupgrade позволяет вам устанавливать:

portupgrade php\*

который обновит все php порты. Portmaster может сделать то же самое.

Также вы можете дать portsnap несколько команд за один раз, так что вы можете поместить

portsnap fetch update

решение3

Я пересобираю/обновляю все пакеты, зависящие от php5, для безопасности. Вам нужно указать полное имя пакета, включая версию. Узнайте точную версию с помощью pkg_info:

# pkg_info|grep php
php5-5.3.8          PHP Scripting Language

Затем пересоберите/обновите php и все зависящие от него порты с помощью:

# portmaster -r php5-5.3.8

решение4

Более современный ответ с использованием только pkg:

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

Пример обновляет PHP 7.2 до 7.4. Первую команду sed необходимо настроить для установленной и целевой версий PHP.

Разрешение версии pkgне знает, что некоторые расширения PHP, необходимые в старых версиях PHP, теперь являются частью PHP 7.4. Возможно, вам придется удалить несколько из них с помощью такой команды: pkg delete -fy php72-hash.

Связанный контент