FreeBSD 15.0 RELEASE - ports・pkg - ports


 クラウディア


1. 概要
2. git インストール
3. リポジトリ取得
4. perl5 用ツール
5. ports の状態を参照する
6. ports のアップグレード

1. 概要

 インストール時に「/usr/ports」をインストール対象にしていなければ、「/usr/ports」の下は、すっからかんです。

2. git インストール

 「Git」のリポジトリから取得するためには、「git」が必要です。  ですが、「git」は、デフォルトではインストールされていません。  なんだか、矛盾する話だなぁ。  「ports」がないので、初回は「git」を次ページで示す、「pkg」でインストールすることになります。  次ページに基づいて、「pkg update」した後、「git」をインストールします。

pkg install -y git

3. リポジトリ取得

 下記のコマンドで、リポジトリを取得します。

git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports
 「clone --depth 1」のオプションをつけないと、今までの全履歴こみで取得するので、大量に時間とディスクと通信量を消費するらしい。  下記のようなログが出力されます。

Cloning into '/usr/ports'...
remote: Enumerating objects: 205449, done.
remote: Counting objects: 100% (205449/205449), done.
remote: Compressing objects: 100% (191739/191739), done.
remote: Total 205449 (delta 15041), reused 131630 (delta 6672), pack-reused 0 (from 0)
Receiving objects: 100% (205449/205449), 95.13 MiB | 3.76 MiB/s, done.
Resolving deltas: 100% (15041/15041), done.
Updating files: 100% (168838/168838), done.
 以降、「ports」の更新は、以下のコマンドで行います。

git -C /usr/ports pull
 「FreeBSD 14.3 RELEASE」の際は、この後で必要な「perl5」と、この時点でインストールされている「perl5」とのバージョンが異なったため、「」perl5」の再インストールが必要になりました。  今回は、必要なさそうです。

4. ports 用ツール

 まずは、「ports」の環境を整えます。  「make」のコンフィグレーションファイルを、コピーして編集します。

cp /usr/share/examples/etc/make.conf /etc/make.conf
chmod 644 /etc/make.conf
vi  /etc/make.conf
 「X11」を使用しない場合、以下の行を追加。

OPTIONS_UNSET+=X11
OPTIONS_UNSET+=GUI
NO_X=true
 後で「PHP」をインストールし、かつ、日本語を使用するのであれば、あらかじめ以下の行を追加しておきます。

OPTIONS_SET+=MBSTRING
 「python」は、複数の系列があります。  「python3.11」の系列をメインに使用する場合は、以下のように記述します。

DEFAULT_VERSIONS+=python=3.11 python3=3.11
 「ruby」にも複数の系列があります。  以下の、一連の捜査を行った後、「ruby」のバージョンを調べると「3.2.4」でした。  「ruby3.2」の系列をメインに使用する場合は、以下のように記述します。

DEFAULT_VERSIONS+=ruby=3.2
 「perl5」に関しても、デフォルトのバージョンと違うものをインストールするのであれば、下記のように記述することがあります。

DEFAULT_VERSIONS+=perl5=5.40
 「ports」をメンテナンスするための「ports」、「portupgrade」をインストールします。

cd /usr/ports/ports-mgmt/portupgrade

make config
 オプションは、デフォルトのままにしておきます。


cd /usr/ports/ports-mgmt/portupgrade

make NO_DIALOG=yes

make install
 データベースの更新を行う際にルート証明書が必要になります(「Subversion」のときは、そうだったんだがな・・・)。  ルート証明書の仕組みも「ports」で提供されています。  これを更新しておかないと証明書のエラーとなることがあるのでインストールしておきます。

cd /usr/ports/security/ca_root_nss
 オプションは、ありません。

make NO_DIALOG=yes

make install
 「ports」データベースの更新を

portsdb -Fu
 で行います。  この「-F」オプションは、サーバからインデックスファイルを取得してきますが、そのときにルート証明書が必要になります。  先ほどの「ca_root_nss」のインストールは、このために必要だったのでした。

5. ports の状態を参照する

 データベースの状態を参照するには

portversion -v
 とします。  結果として以下のような表示になります。(あくまでも一例です)

[Reading data from pkg(8) ... - 49 packages found - done]
Fetching the ports index ... /usr/bin/env  fetch -am -o /usr/ports/INDEX-14.xz  https://download.FreeBSD.org/ports/index/INDEX-14.xz
/usr/ports/INDEX-14.xz                                1863 kB 8118 kBps    00s
done
[Updating the portsdb  in /usr/ports ... - 36544 port entries found .........1000.........2000.........3000.........4000.........5000.........6000.........7000.........8000.........9000.........10000.........11000.........12000.........13000.........14000.........15000.........16000.........17000.........18000.........19000.........20000.........21000.........22000.........23000.........24000.........25000.........26000.........27000.........28000.........29000.........30000.........31000.........32000.........33000.........34000.........35000.........36000..... ..... done]
autoconf-2.72               =  up-to-date with port
autoconf-switch-20220527    =  up-to-date with port
automake-1.17               =  up-to-date with port
brotli-1.1.0,1              =  up-to-date with port
bsddialog-1.0.4             =  up-to-date with port
ca_root_nss-3.108           =  up-to-date with port
curl-8.14.0                 =  up-to-date with port

・・・	以下略	・・・

「=」マークがついていれば、最新版がインストールされている 「<」マークがついていれば、「ports」に新しい版が存在する(更新すべきかも)  ということになります。  次項で述べる「pkg」コマンドで

pkg version -vl "<"
 というコマンドを使えば

expat-2.7.0                        <   needs updating (index has 2.7.1)
libffi-3.4.6                       <   needs updating (index has 3.4.8)
mpdecimal-4.0.0                    <   needs updating (index has 4.0.1)
pcre2-10.45                        <   needs updating (index has 10.45_1)
pkg-2.1.2                          <   needs updating (index has 2.1.4)
 というように新しい版が存在するものを一覧表示できます。  ここまでの一連の動作を、「crontab」に記述して定期的に「ports」を更新する方法もあります。  が、バックグラウンドでやってしまうと見落とすことがありますので、例えば適当なディレクトリに下記のような「Makefile」を作成しておいて、明示的に「make」する方法もあります。

ports:
	git -C /usr/ports pull
	portsdb -Fu
	portversion -v
	pkg version -vl "<"

6. ports のアップグレード

 「portversion」で確認した結果、新しいバージョンが出ている「ports」を更新するには、

portupgrade [-オプション] ports名
 というコマンドを使用します。  わたしは以下のオプションを使用しています。
 オプション  意    味
v 冗長な出力を行う(細かい動きまで見ることができるということです)
R 対象の「ports」が依存している「ports」を同時に更新する
r 対象の「ports」に依存している「ports」を同時に更新する


EaseUS
AbemaTV 無料体験
5G CONNECT
JETBOY
ハイスピードプラン
EMEET 1