Ports, CVSup, portupgradeの準備

Portsの準備

以下のFTPサイトより最新のPortsツリーをダウンロードします。

次に/usrに展開します。

# tar xvzf ports.tar.gz -C /usr/

portupgradeの準備

portsを簡単にインストール・アップグレードできるツールportupgradeをインストールし、必要なディレクトリを準備します。

# mkdir /var/log/ports
# cd /usr/ports/sysutils/portupgrade
# make | tee -a /var/log/ports/portupgrade
# make install | tee -a /var/log/ports/portupgrade
# make clean | tee -a /var/log/ports/portupgrade
# souce ~/.cshrc
# mkdir /usr/ports/packages
# mkdir /usr/ports/packages/All

portsをcvsupしたらportupgradeの位置がsysutilからports-mgmtに変更になっていた。
portauditを実行しようとしたら実行できず、portupgradeをしようとしたらcan't cd /usr/ports/sysutils/portupgradeとエラーメッセージが出力されportupgradeもできず。

調べてみたところ、/usr/ports/INDEXを削除してportsdb -Fuを実行し、portupgrade -v portupgradeでportupgradeをアップデートした。

# mkdir TRASH
# mv INDEX* TRASH
# portsdb -Fu
# portupgrade -v portupgrade

ログを簡単に取れるようにpkgtools.confを修正する。

# vi /usr/local/etc/pkgtools.conf
PORTUPGRADE_ARGS = ENV['PORTUPGRADE'] || \
  '-v -D -L /var/log/ports/'

portaudit

セキュリティ上問題のあるportsのインストールを拒絶する機能と、インストール済みのportsから問題のあるものをリストアップします。
cronにて自動的に動作させる。

cvsup-without-gui

ports/kernelの同期を行うCVSupをインストールする

# cd /usr/ports
# portinstall net/cvsup-without-gui
# mkdir /etc/cvsup
# mkdir /var/db/sup
# mkdir /var/log/cvsup
# mkdir /var/log/cvsup/ports
# mkdir /var/log/cvsup/pkg

fastest_cvsup

FreeBSDのcvsupサーバの中から応答時間の速いサーバを探し出す。

# portinstall sysutils/fastest_cvsup

CVSupの設定

portsやkernelの同期を行う。

releng_6_1-supfile / ports-supfileの作成

fastest_cvsupで速いサーバを探す

# fastest_cvsup -c jp
>>  Querying servers in countries: jp
--> Connecting to cvsup.jp.freebsd.org [210.224.172.75]...
    - server replied: OK 17 0 SNAP_16_1g CVSup server ready
    - time taken: 17.58 ms
--> Connecting to cvsup2.jp.freebsd.org [202.229.199.30]...
    - server replied: OK 17 0 SNAP_16_1f CVSup server ready
    - time taken: 11.20 ms
--> Connecting to cvsup3.jp.freebsd.org [210.188.224.44]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 10.62 ms
--> Connecting to cvsup4.jp.freebsd.org [133.1.44.1]...
    - server replied: OK 17 0 SNAP_16_1f CVSup server ready
    - time taken: 20.91 ms
--> Connecting to cvsup5.jp.freebsd.org [210.161.150.4]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 15.68 ms
--> Connecting to cvsup6.jp.freebsd.org [133.1.240.15]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 21.96 ms

>>  Speed Daemons:
    - 1st: cvsup3.jp.freebsd.org
    - 2nd: cvsup2.jp.freebsd.org
    - 3rd: cvsup5.jp.freebsd.org

この場合、cvsup3.jp.freebsd.orgが一番速い。

releng_6_1-supfile

/usr/share/examples/cvsup/stable-supfileを/etc/cvsup/releng_6_1-supfileにコピーし編集する。

# cp /usr/share/examples/cvsup/stable-supfile /etc/cvsup

編集箇所

*default host=CHANGE_THIS.FreeBSD.org
   ↓
*default host=cvsup3.jp.FreeBSD.org
*default compress
   ↓
#default compress (コメントにする)

CVSupで同期する

# mkdir /var/log/cvsup/releng_6_1
# cvsup -g -L 2 /etc/cvsup/releng_6_1-supfile \
     | tee -a /var/log/cvsup/releng_6_1/20YYmmdd.log #ログファイル名は日付

FreeBSDのアップグレード

/etc/make.confの設定

postfixやqmailを使用しているばあい、sendmailのアップデートをしないように/etc/make.confを編集する。/etc/make.confが存在しない場合は、/usr/src/share/examples/make.confをコピーして編集する。

# vi /etc/make.conf
  NO_SENDMAIL=true

/usr/objのクリーンアップ

前回のアップグレード時に作成されたファイルを削除します。

# chflags -R noschg /usr/obj/usr
# rm -rf /usr/obj/usr

ベースシステムのビルドとカーネルのインストール

buildworldによりベースシステムをビルドする。並列ビルドを実行する。 シングルユーザモードで実行したほうが時間短縮できるかも。

# cd /usr/src
# make -j4 buildworld
# make buildkernel
# make installkernel
# shutdown -r now

カーネルのインストール後、通常のモードで起動し、問題が無ければシングルユーザモードでベースシステムのインストールを行う。

# shutdown now
# cd /usr/src
# make installworld
# sync
# sync
# reboot

ports-supfile

/usr/share/examples/ports-supfileを/etc/cvsup/ports-supfileにコピーし編集する。

# cp /usr/share/examples/cvsup/ports-supfile /etc/cvsup

編集箇所

*default host=CHANGE_THIS.FreeBSD.org
   ↓
*default host=cvsup3.jp.FreeBSD.org
*default compress
   ↓
#default compress (コメントにする)

CVSupで同期する

# cvsup -g -L 2 /etc/cvsup/ports-supfile \
     | tee -a /var/log/cvsup/ports/20YYmmdd.log #ログファイル名は日付
# portsdb -Fu
# portaudit -Fda

Last-modified: 2022-05-05 (木) 22:27:10