OpenBSD에 패치를 적용하는 방법은 무엇입니까?

OpenBSD에 패치를 적용하는 방법은 무엇입니까?

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반드시 절차를 엄격히 준수하세요.

  1. http://www.openbsd.org/anoncvs.html#starting
  2. http://www.openbsd.org/stable.html

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

관련 정보