注意
この記事は三年ほど前に下書きで書き留めていた記事で、勿体ないので公開してみるが、公開時点での追試は行っておらず聊か本筋とは別の不具合が有ったのかもしれないが、何かの参考になればと思い公開してみるので、疑問点はコメントでおねしゃすm(__)m
FreeBSD RELEASE 13 系が出た影響で...
FreeBSD 12.x の i386 が Tier 1 から Tier 2 へ降格されたので、freebsd-update(8) が利用できなくなった(らしい)。
実際に実行しよると、以下の通りになる。
# freebsd-update fetch install
Looking up update.FreeBSD.org mirrors... none found.
Fetching metadata signature for 12.2-RELEASE from update.FreeBSD.org... failed.
No mirrors remaining, giving up.
This may be because upgrading from this platform (i386)
or release (12.2-RELEASE) is unsupported by freebsd-update. Only
platforms with Tier 1 support can be upgraded by freebsd-update.
See https://www.freebsd.org/platforms/index.html for more info.
web ページの更新は執筆時点ではマダみたいじゃが、アナウンスの予定通りに RELEASE 13 系がドロップした時点から、update 出来なくなったようじゃ。
セキュリティパッチは流れて来よるのか知らんけどw
ほじゃ、devel/git 入れんのぉ🤔
開発に参加しよらん 普通 の人はいくら作業PCがパワフルになっちょるとは言え、パッケージのダウンロードやらビルドもデカいし時間もかかりよるご本尊をインスコするのも些か大儀い。
そこで net/cvsup の用に気軽なソースコード同期しよるカラクリが、net/gitup が ports skeleton として用意されちょるので、使ってみる。
KY活動
御呪い的に、freebsd-update を実行してもスルーさせるために freebsd-update.conf を書き換えておく。
sed -i.ORIG 's|ServerName|#ServerName|' /etc/freebsd-update.conf
ここから本番!
pkg install net/gitup
cd /usr/ports/net/gitup && make install
sed -iORIG 's|releng/11.4|releng/12.2|' /usr/local/etc/gitup.conf
freebsd-update で採取しよった作業ディレクトリとご本尊ディレクトリを削除じゃが、独自で kernel を作っちょったら、適宜 conf ディレクトリをバックアップする。
/rescue/tar cJf ORIGINKERNEL.tar.xz /usr/src/sys/i386/conf
rm -Rf /usr/src /var/db/freebsd-update
gitup でソースコードを手元にコピー
段取りは整いよったけん、gitup でソースコードをご本尊から持ってくる。
gitup release
# Host: git.freebsd.org
# Port: 443
# Repository: /src.git
# Target: /usr/src
# Want: 81526c74d9cd16944ca240573680c358a031c989
# Branch: releng/12.2
# Action: clone
+ /usr/src/.arcconfig
+ /usr/src/.arclint
+ /usr/src/.cirrus.yml
+ /usr/src/.gitattributes
+ /usr/src/.gitignore
+ /usr/src/COPYRIGHT
+ /usr/src/LOCKS
+ /usr/src/MAINTAINERS
+ /usr/src/Makefile
+ /usr/src/Makefile.inc1
+ /usr/src/Makefile.libcompat
+ /usr/src/Makefile.sys.inc
+ /usr/src/ObsoleteFiles.inc
+ /usr/src/README
+ /usr/src/README.md
...snip
結局は...
ソースコードしか、当然じゃが取ってこれんけ、手元でバイナリを作る必要がある。
cd /usr/src/ && make buildworld buildkernel installworld installkernel
reboot
はぁ...