pkg・ports - 設定関連・検索 - portupgrade(portmaster) -af


 


1. 概要
2. pkg
3. ports
4. ports さらに
5. 参考サイト

1. 概要

 最近知ったのですが・・・。  詳細は、「システムアップデート - freebsd-update - ABI FreeBSD:14:amd64 → FreeBSD:15」に書いております。  要は、「FreeBSD」のメジャーバージョンをアップグレードした場合、「ports」もしくは「pkg」を再ビルドしないと、「ABI(Application Binary Interface)」が古いままになっているようです。

2. pkg

 「pkg」の場合は。

pkg upgrade -f
 で、インストールしているパッケージを強制的に同期してアップグレードすることになります。

Proceed with this action? [y/N]:
 ときかれた場合は、y を入力して、強制的に進めます。

3. ports

 「ports」の場合。

env BATCH=yes portupgrade -af
 または。

portmaster -af
 で、インストールしている「ports」をすべて、再ビルドしてインストールしなおすようです。  オプションは、どちらもほぼ同じ意味で。  「-a」は「all」のことで、システムにインストールされているすべてのパッケージをアップグレードの対象にします。  「-f」は「force」のことで、バージョンが変わっていなくても、強制的にソースから再ビルド・再インストール(リビルド)させます。  「portmaster」の方が「portupgrade」より、危険度が少ないようです。  なぜならば。
項目 portupgrade portmaster 備考
実装言語 ruby シェルスクリプト(/bin/sh)
依存関係 ruby や各種専用ライブラリ(bdb など)に依存する FreeBSD の基本コマンドと pkg のみ(外部依存が非常に少ない)
状態管理 独自のパッケージデータベース(pkgdb)を使用する 主に pkg のデータベースと ports ツリーの構造を直接利用する
安全性・ロールバック データベースの不整合(警告や破損)が起きると動作が不安定になりやすい シェルスクリプトでシンプルに動くため、環境起因の Ruby エラーに巻き込まれにくい

 ということのようです。
 でまぁ、長時間かかるのですが・・・。
 それ故に「tmux」を使って実行した方がよさそうです。


portmaster -af
 すると。

===>>> There are 'install complete' flags from a previous
       -[rf] run of portmaster, delete them? y/n [n]
 と問いかけられますが。  これは、「portmaster」の実行による「インストール完了フラグ」が残っています。これらを削除しますか?ちゅうことだそうです。  強制で、インストールしなおすのですから、これは y でフラグを削除すべきですね。

4. ports さらに

 で、前項を実行しようとしたのですが。  全「ports」をビルドしなおすとなると、数時間ではすみませんわな・・・。  「llvm」「rust」「gcc」なんぞがはいっているので、数日かかる覚悟が必要です。  なんとかならんもんかいなとちょと考えまして。  まず。

pkg upgrade -f
 「pkg」で再インストールします。  これならば、長くとも数十分で済むはずです。  これで、すくなくとも、前バージョンの「ABI」は、現バージョンに変わるはずです。  悲しいかな、「pkg」のバージョンは、「ports」より前だったりするので。

portversion -v | grep '<'
 で、「ports」としてのアップグレードが必要なものを抽出して。

env BATCH=yes portupgrade -rR package_name
 でアップグレードしていくことで、前項よりは、大幅に時間が短縮できるはずなのです。

5. 参考サイト

 本ページは、「Gemini」伍長を参考にさせていただきました。

audiobook.jp
健康サポート特集
アフィリエイトのアクセストレード
JETBOY
薬屋の独り言
TikTok Shop 【リピート用プログラム】
ネットオークションの相場、統計、価格比較といえばオークファン
Amazonギフトカード
葬送のフリーレン Prime Video
サウンドハウス
【usus ウズウズ】
ベルリッツ
それがだいじWi-Fi
5G CONNECT
損保との違い
earthcar(アースカー)
EaseUS
U-NEXT
ハイスピードプラン