Bagaimana cara menerapkan pembaruan pada OpenBSD, NetBSD, dan FreeBSD?

25

Saya menggunakan OpenBSD cukup lama sekarang. Yang saya lakukan, bagaimanapun, adalah beralih dari satu rilis ke yang berikutnya, selalu hanya melakukan pembaruan. Saya mengkonfigurasi sistem sehingga berfungsi sebagai router dan firewall saya, dan berfungsi dengan baik seperti itu. Tapi saya tidak pernah memperbarui paket. Yang saya lakukan hanyalah beralih ke rilis berikutnya.

Datang dari dunia Linux, saya terbiasa menerapkan pembaruan beberapa kali seminggu; tapi bagaimana cara melakukannya di * BSD? - Atau bukankah ini bagian dari filosofi * BSD?

polemon
sumber
portupgrade -arR
usermane
Memperbarui dengan OpenBSD dengan pkg_addadalah pkg_add -uvi, benar?
polemon
ya
usermane
Meskipun tautan ini dapat menjawab pertanyaan, lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini dan memberikan tautan untuk referensi. Jawaban hanya tautan dapat menjadi tidak valid jika halaman tertaut berubah. - Dari Ulasan
Archemar

Jawaban:

22

OpenBSD adalah biner-sentris. Anda dapat memperbarui binari (jika ada pembaruan / perubahan) dengan menjalankan pkg_add :

pkg_add -Uu

Tim OpenBSD merekomendasikan untuk menggunakan paket over building dari ports - Paket OpenBSD dan sistem ports

FreeBSD dapat diperbarui melalui paket atau port .

gregnotcraig
sumber
1
pkg_add -usudah cukup di OpenBSD. Gunakan -Uketika menginstal satu paket (atau set paket) jika Anda ingin memperbarui paket yang ini (ini) bergantung.
Kusalananda
9

Secara umum, ketika menggunakan OpenBSD Anda hanya memperbarui paket Anda ketika Anda memperbarui sistem Anda. Jadi, sebagai langkah terakhir, setelah memutakhirkan ke rilis terbaru, Anda harus menjalankan:

 # pkg_add -ui

Yang mana (u) akan menaikkan peringkat paket yang terinstal Anda bertanya kepada Anda (i) nteraktif saat diperlukan.

Secara umum, paket untuk rilis yang diberikan tidak diperbarui hingga rilis berikutnya (OpenBSD tidak memiliki sumber daya pengembang untuk menyediakan pembaruan untuk paket pada versi selain 'saat ini'). Jika Anda ingin meningkatkan paket Anda lebih teratur, Anda perlu menggunakan port, atau meningkatkan ke snapshot baru, dan kemudian jalankan pkg_add -uikembali.

Untuk bacaan lebih lanjut, periksa: http://www.openbsd.org/faq/faq15.html

kawan
sumber
3
OpenBSD lacks the developer resources for providing updates to packages on versions other than 'current'Apakah itu juga berlaku untuk pembaruan keamanan? Jadi jika lubang keamanan kritis ditemukan dalam paket biner yang saya gunakan, saya harus menginstalnya kembali dari port Stabil?
imgx64
@ imgx64 Perbaikan keamanan ke port dilakukan -current. OpenBSD tidak akan membangun kembali paket untuk -stable.
Kusalananda
4

OpenBSD: M: Tier menyediakan paket yang stabil untuk arsitektur amd64 dan i386. Ini memungkinkan Anda untuk selalu memperbarui sistem dengan perbaikan keamanan terbaru dari -stablecabang port.

Sebuah artikel di OpenBSD Journal menjelaskan rincian:

Dalam praktiknya, ini berarti bahwa segera setelah perbaikan / pembaruan keamanan dilakukan pada pohon OPENBSD_5_3 paket akan dibangun dari pohon CVS. Paket ini kemudian diuji dan didorong ke server fan-out kami di Stable.MTier.org, untuk digunakan semua orang!

Holu
sumber
3

Berbagai sistem BSD memiliki pemisahan yang sangat jelas menjadi "sistem dasar" dan "perangkat lunak pihak ke-3 (port / paket)". Anda meningkatkan keduanya secara terpisah.

Ini mengasumsikan bahwa Anda memiliki instalasi OpenBSD 6.5 atau yang lebih baru (lihat lebih jauh ke bawah untuk jawaban lama):

Sistem dasar ditingkatkan dengan sysupgrade(8):

doas sysupgrade

Ini akan mengunduh dan memutakhirkan sistem dasar ke versi "stabil" OpenBSD berikutnya jika Anda mengikuti cabang stabil atau rilis, atau ke "snapshot" terbaru jika Anda menggunakan snapshot. Perhatikan bahwa Anda tidak boleh menggunakan sysupgradejika Anda memiliki instalasi khusus tanpa semua set sistem dasar.

Setelah memutakhirkan sistem basis, Anda mungkin ingin menjalankan syspatch(8)(hanya untuk meningkatkan sistem Anda dari "rilis" ke "stabil", sistem snapshot tidak digunakan syspatch).

Port diperbarui dengan pkg_add(1):

doas pkg_add -u

Pada sistem snapshot, Anda mungkin ingin menambahkannya -D snap(lihat manual).

Anda juga ingin memeriksa bagian yang relevan dari FAQ OpenBSD sebelum meningkatkan, misalnya bagian tentang " Mengikuti-saat ini dan menggunakan foto-foto " atau bagian yang berkaitan dengan peningkatan ke rilis stabil terbaru.

Ada juga port / paket yang disebut sysclean(dalam sysutils/sysclean) yang akan membantu Anda menunjukkan pustaka sistem dasar dan file lain yang tidak lagi menjadi bagian dari instalasi default. Ini juga akan memberi tahu Anda apa port menggunakan pustaka usang.


Jawaban lama, relevan dengan rilis OpenBSD sebelum 6.5:

Dalam hal OpenBSD, dengan asumsi Anda ingin pindah dari satu rilis stabil ke rilis stabil berikutnya (rilis melompat tidak didukung kecuali jika Anda membuat instalasi baru), Anda memulai dengan membaca FAQ khusus untuk upgrade yang Anda lakukan. Dalam hal peningkatan dari 5.9 ke 6.0, Anda membaca " Panduan Upgrade: 5.9 hingga 6.0 ".

Secara umum, intinya adalah mem-boot media instalasi untuk rilis yang ingin Anda tingkatkan dan pilih "(U) tingkat" dari menu. Setelah sistem dasar ditingkatkan, Anda mem-bootnya dan, sebagai root, perbarui semua paket yang diinstal dengan pkg_add -u.

Merupakan hal yang tidak biasa untuk paket-paket milik rilis OpenBSD yang stabil untuk memperbarui sangat sering. Biasanya itu hanya terjadi ketika bug kritis diperbaiki. Jadi menjalankan pkg_add -ubeberapa kali dalam seminggu mungkin tidak akan banyak membantu (tetapi tetap lakukan karena dapat menyebabkan perbaikan kritis).

Jika Anda mengikuti "saat ini", semuanya sangat berbeda. Kemudian Anda akan membangun paket Anda dari pohon port yang diperiksa dengan CVS di bawah /usr/ports, dan Anda mungkin akan membangun kembali sistem basis secara manual juga (lihat " Membangun Sistem dari Sumber "). Port yang diinstal dapat diperbarui dengan dpb(in /usr/ports/infrastructure/bin) jika diberi opsi yang benar dan daftar paket yang diinstal secara manual.

saya menggunakan

#!/bin/sh -x

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

Diikuti oleh

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

Ini tidak dianjurkan untuk pengguna baru.

Kusalananda
sumber
2

Saya perlu mendapatkan pembaruan karena saya menginstal bash dan tidak ingin menderita kerentanan Shellshock, jadi saya pergi dengan saran Holu /unix//a/103661/93476 dan itu membuat saya ditambal.

RedScourge
sumber
1

Maaf, NetBSD pkgsrctidak mendukung solusi yang ceroboh. Sebagai gantinya Anda harus menggunakan manajer paket seperti nihatau pkgin. Di bawah pkgsrcAnda harus memaksa upgrade yang mengabaikan dependensi file yang sering dikaitkan. Juga menyalin versi baru di atas yang lama pkgsrcdapat membawa pkgsrcpohon Anda dalam keadaan tidak konsisten.

darktrym
sumber
0

Bagi saya memperbarui paket NetBSD adalah perintah di / usr / pkgsrc:

# cvs update -dP && csup /some-path-to-wip-supfile/netbsd-pkgsrc-wip && pkg_rolling-replace -u
sehr
sumber