FreeBSD 上の PHP とそのすべてのモジュールを一度に更新するにはどうすればよいですか?

FreeBSD 上の PHP とそのすべてのモジュールを一度に更新するにはどうすればよいですか?

基本的に、私は通常次のようなことを行います:

# 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 個のモジュールがあり、それらを 1 つずつ実行する必要があります。これを行うより良い (そして安全な) 方法はありますか?

編集: 結局、必要なのはこれです:

# portmaster php5-extensions

それを見つけるのがいかに大変だったかは驚きです!

答え1

portmaster -db php5*

答え2

まず最初に言っておきたいのは、私は portmaster ではなく portupgrade を使用しているということです。ただし、パッケージを使用するのではなく、ポートをビルドします。

Portupgrade を使用すると、次のことが可能になります。

portupgrade php\*

これにより、すべての PHP ポートがアップグレードされます。Portmaster でも同じことが行われる可能性があります。

また、portsnapに複数のコマンドを一度に与えることもできるので、

portsnap fetch update

答え3

安全のため、php5 に依存するすべてのパッケージを再構築/更新します。バージョンを含む完全な pkg-name を指定する必要があります。pkg_info で正確なバージョンを調べます。

# pkg_info|grep php
php5-5.3.8          PHP Scripting Language

次に、次のコマンドを使用して、php とそれに依存するすべてのポートを再構築/更新します。

# portmaster -r php5-5.3.8

答え4

より現代的な答えは、 only を使用する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

関連情報