จะใช้การอัปเดตเกี่ยวกับ OpenBSD, NetBSD และ FreeBSD ได้อย่างไร


25

ฉันใช้ OpenBSD มาระยะหนึ่งแล้ว สิ่งที่ฉันทำคือไปจากรีลีสหนึ่งไปยังอีกเพียงแค่อัปเดตเสมอ ฉันกำหนดค่าระบบเพื่อให้ทำงานเป็นเราเตอร์และไฟร์วอลล์ของฉันและทำงานได้ดีเช่นนั้น แต่ฉันไม่เคยอัปเดตแพ็คเกจ สิ่งที่ฉันทำก็แค่เลื่อนไปที่รีลีสถัดไป

มาจากโลก Linux ฉันคุ้นเคยกับการใช้การอัปเดตสองสามครั้งต่อสัปดาห์ แต่ฉันจะทำอย่างนั้นใน * BSD ได้อย่างไร - หรือนี่ไม่ใช่ส่วนหนึ่งของปรัชญา * BSD?



การอัปเดตกับ OpenBSD กับpkg_addเป็นpkg_add -uviใช่มั้ย?
polemon


แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงค์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงนั้นเปลี่ยนแปลง - จากการทบทวน
Archemar

คำตอบ:


22

OpenBSD เป็นแบบไบนารี่ คุณสามารถอัปเดตไบนารี่ (หากมีการอัพเดต / การเปลี่ยนแปลงใด ๆ ) โดยดำเนินการpkg_add :

pkg_add -Uu

ทีม OpenBSD แนะนำให้ใช้แพ็คเกจเหนือสิ่งปลูกสร้างจากพอร์ต - แพ็คเกจ OpenBSD และระบบพอร์ต

FreeBSD สามารถอัพเดทผ่านแพ็คเกจหรือพอร์ตได้


1
pkg_add -uเพียงพอใน OpenBSD ใช้-Uเมื่อติดตั้งแพ็กเกจเดียว (หรือชุดของแพ็คเกจ) หากคุณต้องการอัปเดตแพ็กเกจที่สิ่งนี้ (เหล่านี้) ขึ้นอยู่กับ
Kusalananda

9

โดยทั่วไปเมื่อใช้ OpenBSD คุณจะอัปเดตแพ็คเกจของคุณเมื่อคุณอัปเดตระบบเท่านั้น ดังนั้นเป็นขั้นตอนสุดท้ายหลังจากอัปเกรดเป็นรุ่นล่าสุดคุณควรดำเนินการ:

 # pkg_add -ui

ซึ่งจะ (p) แพ็คเกจของคุณที่ติดตั้งไว้เพื่อถามคำถามใด ๆ (i) nteractive เมื่อจำเป็น

โดยทั่วไปแพ็คเกจสำหรับรุ่นที่กำหนดจะไม่ได้รับการอัปเดตจนกว่ารุ่นถัดไป (OpenBSD จะไม่มีทรัพยากรของนักพัฒนาซอฟต์แวร์สำหรับการอัปเดตแพ็คเกจในรุ่นอื่นที่ไม่ใช่ 'ปัจจุบัน') หากคุณต้องการอัพเกรดแพ็คเกจของคุณเป็นประจำคุณต้องใช้พอร์ตหรืออัพเกรดเป็นสแนปชอตใหม่แล้วเรียกใช้pkg_add -uiอีกครั้ง

สำหรับการอ่านเพิ่มเติมตรวจสอบ: http://www.openbsd.org/faq/faq15.html


3
OpenBSD lacks the developer resources for providing updates to packages on versions other than 'current'สิ่งนี้ใช้กับการปรับปรุงความปลอดภัยด้วยหรือไม่ ดังนั้นหากพบช่องโหว่ด้านความปลอดภัยที่สำคัญในแพ็คเกจไบนารีที่ฉันใช้ฉันต้องติดตั้งใหม่จากพอร์ตที่เสถียรหรือไม่
imgx64

@ imgx64 แก้ไขความปลอดภัยให้กับพอร์ตเสร็จ-currentแล้ว OpenBSD จะไม่สร้างแพ็คเกจ-stableใหม่
Kusalananda

4

OpenBSD: M: Tier ให้แพ็คเกจที่มั่นคงสำหรับสถาปัตยกรรม amd64 และ i386 สิ่งนี้ช่วยให้คุณปรับปรุงระบบของคุณด้วยการแก้ไขความปลอดภัยล่าสุดจาก-stableสาขาพอร์ต

บทความเกี่ยวกับ OpenBSD วารสารอธิบายรายละเอียด:

ในทางปฏิบัตินี่หมายความว่าทันทีที่การแก้ไข / ปรับปรุงความปลอดภัยได้รับการกำหนดให้กับ OPENBSD_5_3 ทรีแพคเกจจะถูกสร้างขึ้นจากแผนผัง CVS แพคเกจนี้ได้รับการทดสอบและส่งไปยังเซิร์ฟเวอร์ fan-out ของเราที่ Stable.MTier.org เพื่อให้ทุกคนใช้!


3

ระบบ BSD ต่างๆมีการแยกที่ชัดเจนเป็น "ระบบฐาน" และ "ซอฟต์แวร์บุคคลที่สาม (พอร์ต / แพ็คเกจ)" คุณอัพเกรดทั้งสองแยกจากกัน

สิ่งนี้ถือว่าคุณมีการติดตั้ง OpenBSD 6.5 หรือใหม่กว่า (ดูเพิ่มเติมสำหรับคำตอบเก่า):

ระบบพื้นฐานได้รับการอัพเกรดด้วยsysupgrade(8):

doas sysupgrade

สิ่งนี้จะดาวน์โหลดและอัปเกรดระบบฐานเป็นรุ่น "เสถียร" รุ่นถัดไปของ OpenBSD หากคุณกำลังติดตามสาขาที่มั่นคงหรือปล่อยหรือเป็น "ภาพรวม" ล่าสุดหากคุณกำลังใช้สแนปชอต โปรดทราบว่าคุณไม่ควรใช้sysupgradeหากคุณมีการติดตั้งแบบกำหนดเองโดยไม่มีชุดระบบพื้นฐานทั้งหมด

หลังจากอัปเกรดระบบฐานแล้วคุณอาจต้องการเรียกใช้syspatch(8)(เพื่อให้ระบบของคุณเพิ่มจาก "ปล่อย" เป็น "เสถียร" ระบบสแน็ปช็อตไม่ได้ใช้syspatch)

พอร์ตถูกอัพเดตด้วยpkg_add(1):

doas pkg_add -u

ในระบบสแนปชอตคุณอาจต้องการเพิ่ม-D snapเข้าไปในนั้น (ดูคู่มือ)

คุณจะต้องตรวจสอบส่วนที่เกี่ยวข้องของคำถามที่พบบ่อยเกี่ยวกับOpenBSDก่อนที่จะทำการอัปเกรดเช่นในส่วนของ "กำลังติดตามและการใช้สแน็ปช็อต " หรือในส่วนที่เกี่ยวข้องกับการอัปเกรดเป็นรุ่นล่าสุดที่เสถียร

นอกจากนี้ยังมีพอร์ต / แพ็คเกจที่เรียกว่าsysclean(ในsysutils/sysclean) ซึ่งจะช่วยคุณในการชี้ไลบรารีระบบพื้นฐานและไฟล์อื่น ๆ ที่ไม่ได้เป็นส่วนหนึ่งของการติดตั้งเริ่มต้นอีกต่อไป มันจะบอกคุณว่าพอร์ตใดบ้างที่ใช้ไลบรารีที่ล้าสมัย


คำตอบเก่าที่เกี่ยวข้องกับ OpenBSD ออกก่อน 6.5:

ในกรณีของ OpenBSD สมมติว่าคุณต้องการย้ายจากรุ่นเสถียรหนึ่งไปสู่รุ่นเสถียรถัดไป (ไม่สนับสนุนการข้ามรุ่นยกเว้นว่าคุณทำการติดตั้งใหม่) คุณเริ่มต้นด้วยการอ่านคำถามที่พบบ่อยเฉพาะสำหรับการอัพเกรดที่คุณกำลังดำเนินการ ในกรณีของการอัพเกรดจาก 5.9 เป็น 6.0 คุณอ่าน " คำแนะนำในการอัพเกรด: 5.9 ถึง 6.0 "

โดยทั่วไปเนื้อหาสำคัญของมันเกี่ยวข้องกับการบูทสื่อการติดตั้งสำหรับรุ่นที่คุณต้องการอัพเกรดและเลือก "(U) pgrade" จากเมนู เมื่อระบบฐานมีการปรับรุ่นคุณบูตมันและเป็นรากอัพเกรดแพคเกจติดตั้งใด ๆ pkg_add -uกับ

มันผิดปกติสำหรับแพ็คเกจที่เป็นของ OpenBSD ที่เสถียรเพื่ออัพเดทบ่อยมาก โดยปกติจะเกิดขึ้นเมื่อแก้ไขข้อบกพร่องที่สำคัญเท่านั้น ดังนั้นการรันpkg_add -uหลายครั้งต่อสัปดาห์อาจไม่ได้ผลมากนัก (แต่จะทำต่อไปเรื่อย ๆ

หากคุณติดตาม "ปัจจุบัน" สิ่งต่าง ๆ มาก จากนั้นคุณจะสร้างแพ็คเกจของคุณจากทรีพอร์ตที่ชำระเงินด้วย CVS ภายใต้/usr/portsและคุณอาจสร้างระบบฐานขึ้นใหม่ด้วยตนเองเช่นกัน (ดู "การสร้างระบบจากแหล่งที่มา ") พอร์ตที่ติดตั้งอาจได้รับการอัพเดตด้วยdpb(ใน/usr/ports/infrastructure/bin) หากกำหนดตัวเลือกที่ถูกต้องและรายการแพ็คเกจที่ติดตั้งด้วยตนเอง

ฉันกำลังใช้

#!/bin/sh -x

pkg_info -P -q -m | sort -o "$HOME/packages"
/usr/ports/infrastructure/bin/dpb -scuR -P "$HOME/packages"

ติดตามโดย

$ doas pkg_add -u -D unsigned
$ doas pkg_delete -a

สิ่งนี้ไม่ได้รับการสนับสนุนสำหรับผู้ใช้ใหม่


2

ฉันต้องได้รับการอัปเดตเนื่องจากฉันติดตั้ง bash และไม่ต้องการได้รับผลกระทบจากช่องโหว่ของ Shellshock ดังนั้นฉันจึงไปตามคำแนะนำของ Holu /unix//a/103661/93476และทำให้ฉันได้รับการแก้ไข


2

บน NetBSD คุณมักจะอัพเกรดpkgsrcเป็นเวอร์ชั่นล่าสุด (ซึ่งไม่มากไปกว่าtar -xvzf pkgsrc-version.tar.gz) และอัปเดตซอฟต์แวร์ที่ติดตั้งแยกต่างหาก

ข้อมูลเพิ่มเติมเกี่ยวกับเว็บไซต์ NetBSD / pkgsrc:



1

ขออภัย NetBSD pkgsrcไม่สนับสนุนโซลูชันที่ประมาท แต่คุณควรใช้จัดการแพคเกจเหมือนหรือnih pkginภายใต้pkgsrcคุณต้องบังคับให้อัปเกรดที่ละเว้นการเชื่อมโยงไฟล์ที่มักจะพึ่งพา การคัดลอกเวอร์ชั่นใหม่ทับเก่าpkgsrcก็สามารถทำให้pkgsrcต้นไม้ของคุณอยู่ในสภาพที่ไม่สอดคล้องกันได้


0

สำหรับฉันการอัปเดตแพ็คเกจ NetBSD เป็นคำสั่งใน / usr / pkgsrc:

# cvs update -dP && csup /some-path-to-wip-supfile/netbsd-pkgsrc-wip && pkg_rolling-replace -u
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.