Cara memperbarui campuran paket dan port di FreeBSD

18

Saya kebanyakan menggunakan paket di FreeBSD, karena kebanyakan dari mereka cocok untuk saya. Namun, beberapa tidak cocok untuk saya, seperti vimpaket, yang tidak termasuk grafis gvim.

Tidak masalah. Saya dapat menginstal port sebagai gantinya, menggunakan portmaster editors/vimdan memilih GTK2opsi. Ini berfungsi dengan baik.

Namun, ketika saya berlari pkg upgradesetelah beberapa saat, saya disajikan dengan yang berikut:

        Reinstalling vim-7.4.110_3 (options changed)

Apa yang menyebabkannya? Saya tidak mengubah opsi apa pun, dan tidak ada versi baru (tidak di port, baik). Apakah ini membandingkan port yang diinstal saya dengan versi jarak jauh tanpa GTK2?

Tentu saja saya bisa membiarkannya pkg upgradebekerja dan menginstal port lagi sesudahnya, tapi ini bodoh. Apa cara yang disarankan untuk memperbarui campuran paket dan porta?

Ricardo Buring
sumber
Apakah menggunakan pkg locksolusi yang disarankan? Ini bekerja, tetapi saya berharap sesuatu yang sederhana seperti ini dapat ditangani secara otomatis.
Ricardo Buring
Ya, pkg lockadalah solusi yang dirancang untuk itu: dari halaman manual: “kunci pkg digunakan untuk mengunci paket terhadap penginstalan ulang, modifikasi, atau penghapusan.”.
Dereckson
posting ini sudah tidak digunakan lagi. Tapi saya suka mengatakan bahwa saya sampai sekarang memiliki masalah yang sama. Saya bertanya pada Forum FreeBSD "Menggunakan paket dan porta pada saat yang sama?" Dan satu anggota memberi saya saran untuk menggunakan skrip untuk pembaruan instalasi, seperti yang telah dilakukannya. Anda dapat menemukannya di sana dalam jawabannya.
HL1234

Jawaban:

15

Anda perlu mengingatnya pkgdan port mendaftarkan perangkat lunak yang diinstal di tempat yang sama (basis data SQLite /var/db/pkg). Tidak ada sistem yang mencatat informasi tambahan apa pun bahwa peranti lunak tertentu diinstal sebagai paket pra-kompilasi, atau sebagai port. Jadi, sekali perangkat lunak diinstal dengan pendekatan mana pun, alat tidak memiliki cara untuk mengetahui bagaimana itu diinstal.

Ketika Anda memilih dukungan GTK2 untuk editors/vimport, yang terdaftar dalam paket database. Ketika nanti Anda menjalankan pkg upgrade, pkgmelihat data paket untuk vim, dan menemukan bahwa dukungan GTK2 telah diaktifkan pada versi yang diinstal, sedangkan itu tidak diaktifkan dalam paket pra-kompilasi. pkg upgrademelakukan apa yang seharusnya - menemukan paket yang diinstal yang berbeda dari paket pra-kompilasi yang tersedia, dan berusaha untuk memutakhirkannya. Perbedaan tersebut dapat berupa nomor versi, grafik dependensi, opsi waktu kompilasi, dll.

Cara yang tepat untuk mencegah pkgmempertimbangkan port atau paket (setelah diinstal, tidak ada perbedaan, sejauh menyangkut alat) yang ingin Anda lindungi adalah dengan menggunakan pkg lockperintah.

Atau, jika Anda menemukan diri Anda mengubah opsi pada sejumlah port, Anda dapat mempertimbangkan untuk menginstal poudrieredan mengelola repositori paket Anda sendiri. Dibutuhkan sedikit pengaturan, dan berfungsi dengan baik jika host build Anda memiliki kumpulan penyimpanan ZFS, meskipun akan berfungsi jika Anda tidak memiliki ZFS; ini adalah cara yang sangat fleksibel dan nyaman untuk mengelola pembuatan perangkat lunak khusus.

D_Bye
sumber