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이 포함된 한 줄을 포함해야 합니다.선호하는 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
또한 프로세스를 자동화하는 데 도움이 되는 훌륭한 프로그램도 있습니다 . 나는 그것을 사용했고 어제 모든 서버를 패치함으로써 많은 시간을 절약했습니다.