comp54.tgzをインストールしました。
# cd /root && ftp http://ftp.openbsd.org/pub/OpenBSD/`uname -r`/src.tar.gz && tar -xzf /root/src.tar.gz -C /usr/src
# uname -r
5.4
# pwd
/usr/src
# ls -la
total 124
drwxrwxr-x 17 root wsrc 512 Apr 13 19:35 .
drwxr-xr-x 17 root wheel 512 Jul 30 2013 ..
drwxr-xr-x 2 root wsrc 512 Jul 29 2013 CVS
-rw-r--r-- 1 root wsrc 3456 Jul 24 2013 Makefile
-rw-r--r-- 1 root wsrc 16419 Jul 7 2013 Makefile.cross
drwxr-xr-x 36 root wsrc 1024 Jul 29 2013 bin
drwxr-xr-x 31 root wsrc 512 Jul 29 2013 distrib
drwxr-xr-x 35 root wsrc 2560 Jul 29 2013 etc
drwxr-xr-x 44 root wsrc 1024 Jul 29 2013 games
drwxr-xr-x 9 root wsrc 512 Jul 29 2013 gnu
drwxr-xr-x 7 root wsrc 2048 Jul 7 2013 include
drwxr-xr-x 11 root wsrc 512 Jul 29 2013 kerberosV
drwxr-xr-x 40 root wsrc 1024 Jul 29 2013 lib
drwxr-xr-x 40 root wsrc 1024 Jul 29 2013 libexec
drwxr-xr-x 15 root wsrc 512 Jul 10 2010 regress
drwxr-xr-x 78 root wsrc 1536 Jul 29 2013 sbin
drwxr-xr-x 14 root wsrc 512 Jul 29 2013 share
drwxr-xr-x 228 root wsrc 4096 Jul 29 2013 usr.bin
drwxr-xr-x 144 root wsrc 2560 Jul 29 2013 usr.sbin
# which gcc
/usr/bin/gcc
#
# ftp http://ftp.openbsd.org/pub/OpenBSD/patches/5.4/common/001_pflow.patch
Trying 129.128.5.191...
Requesting http://ftp.openbsd.org/pub/OpenBSD/patches/5.4/common/001_pflow.patch
100% |*******************************************************| 803 00:00
803 bytes received in 0.00 seconds (11.10 MB/s)
#
# patch -p0 < 001_pflow.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Apply by doing:
| cd /usr/src
| patch -p0 < 001_pflow.patch
|
|Then build and install a new kernel.
|
|Index: sys/net/if_pflow.c
|===================================================================
|RCS file: /vol/openbsd/cvs/src/sys/net/if_pflow.c,v
|retrieving revision 1.32
|diff -u -p -r1.32 if_pflow.c
|--- sys/net/if_pflow.c 5 Jul 2013 17:14:27 -0000 1.32
|+++ sys/net/if_pflow.c 7 Nov 2013 16:48:45 -0000
--------------------------
File to patch: # what do I need to write here???????
No file found--skip this patch? [n]
patch: **** can't find #
#
私の質問:「パッチするファイル:」をスキップするには?
答え1
ソースツリーが不完全です。カーネルソースコードが欠落している/usr/src/sys
ようですls
。パッチするファイルは次の場所になければなりません。カーネルをパッチしてコンパイルするには、ソースコードをインポートする必要が/usr/src/sys/net/if_pflow.c
あります。sys.tar.gz
必ず手順を厳守してください。
答え2
OpenBSD 6.1(2017年4月)以降、最も簡単な方法は次のとおりです。-stable
木の枝とi386
アーキテクチャamd64
はを使用しますsyspatch
。このarm64
アーキテクチャはsyspatch
バージョン6.2(2017年10月)から使用されます。
これらのアーキテクチャにOpenBSDディストリビューションまたはOpenBSD安定システムをパッチすることは次のとおりです。
$ doas syspatch
または持っていない場合doas(1)
構成、
$ su root -c syspatch
これ/etc/installurl
には存在し、次を指すURLを含む1行を含める必要があります。好みのOpenBSDミラー、例えば
https://cdn.openbsd.org/pub/OpenBSD/
これを使用するためにOpenBSD CVSリポジトリを取得する必要はなく、syspatch
バイナリパッチが適用されます。
新しいパッチについて自動的に通知を受け取るには、syspatch -c
夜のクローン操作でルートを実行します。
また、見ることができますsyspatch(8)
、installurl(5)
とOpenBSD FAQセクションセキュリティアップデート。
答え3
M:Tierの安定したアップデートサービスを使用して、i386、amd64、およびarmプラットフォームのソースパッチをスキップできます。
詳細については、次を参照してください。https://stable.mtier.org/
openup
また、プロセスを自動化するのに役立つ素晴らしいプログラムもあります。私はそれを使用し、昨日すべてのサーバーにパッチを適用することによって多くの時間を節約しました。