freebsd-update で カーネル & ユーザーランド をアップデート

https://www.freebsd.org/security/security.html でサポートしてる branch を使用します。

freebsd-update fetch
freebsd-update install

必要に応じて reboot します。

freebsd-update で RELEASE を上げる場合

freebsd-version -ku
freebsd-update upgrade -r 11.2-RELEASE
freebsd-update install (カーネルを上げる)
reboot
freebsd-update install (ユーザーランドを上げる)
vim /etc/pkg/MyPoudriere.conf (上げたリリース用にビルドしといたurlを指定)
pkg upgrade
freebsd-update install (古いライブラリを消す)
reboot

poudriere で プライベートパッケージリポジトリ を作る

四半期ブランチを用います。
https://wiki.freebsd.org/Ports/QuarterlyBranch

git clone git://github.com/freebsd/freebsd-ports.git
cd freebsd-ports
git checkout local-2019Q2 branches/2019Q2

必要があれば定期的にマージ
git fetch
git merge origin/branches/2019Q2

poudriere jail -c -j 112amd64
poudriere jail -u -j 112amd64 ( jail 環境内の freebsd-upgrade )
poudriere ports -c -p local-2019Q2
poudriere options -j 112amd64 -p local-2019Q2 multimedia/ffmpeg ( などで options の設定を変更できます )
poudriere bulk -j 112amd64 -p local-2019Q2 multimedia/ffmpeg
poudriere bulk -j 112amd64 -p local-2019Q2 -f /home/user/required_ports_list ( このファイルに必要な category/name を列挙しておきます )

こんなかんじで /usr/local/poudriere/data/packages あたりに次に指定できる pkg repository ができます。

$ cat /etc/pkg/MyPoudriere.conf

  MyPoudriere: {
    url: "http://poudriere.local/poudriere/data/packages/112amd64-local-2019Q2/",
    mirror_type: "http",
    enabled: yes
  }

pkg audit で脆弱性のある ports をリストアップする

pkg audit

とても面倒だけど。。。

  • 例えば DEFAULT_VERSIONS= perl5=5.26 pgsql=9.5 mysql=5.5 などと指定できる。
  • 各 ports のオプションを変更できる。
  • pkg audit で既知の脆弱性を一覧表示できる。
  • オリジナルの ports やパッチがあっても origin/branches/2019Q2 などを元に育ててられる。
  • OSのパッケージシステムでインストールしたシェアードライブラリを、gem,pip,cpan等でリンクさせた場合に、参照元ライブラリを入れ替えると矛盾が生じる可能性を避けられる。
  • 一貫性! 回避策の為の回避策、の為の回避策、の為の回避策・・・を避けられる。
  • Cで書かれた pkg はかなり速いよ。
  • 次のようなことをしなければ、こんなにがんばることないかも。
    • 私家版 ports
    • ports にパッチを当てる (利用しているライブラリに見付かったバグも、モンキーパッチ等で上手く回避できている)
    • コンパイルオプションの変更
    • yum,apt,pacman などで入れるものと gem,pip,cpan などで入れるものを上手く分けられている。(Rmagic は yum? gem?)
  • poudriere bulk -j 112amd64 -p local-2019Q2 -f ~/使うやつ で 2621 ports で14時間くらい掛かります。(i9-7900X)

コメントする

perl adv
perl adv