Cách cập nhật kết hợp các gói và cổng trên FreeBSD


18

Tôi chủ yếu sử dụng các gói trên FreeBSD, vì hầu hết chúng đều phù hợp với tôi. Một số không phù hợp với tôi, tuy nhiên, như vimgói, không bao gồm đồ họa gvim.

Không vấn đề gì. Tôi có thể cài đặt cổng thay thế, sử dụng portmaster editors/vimvà chọn GTK2tùy chọn. Điều này hoạt động tốt.

Tuy nhiên, khi tôi chạy pkg upgradesau một lúc, tôi được trình bày như sau:

        Reinstalling vim-7.4.110_3 (options changed)

Đưa cái gì? Tôi đã không thay đổi bất kỳ tùy chọn nào và cũng không có phiên bản mới (không có trong các cổng). Có phải nó đang so sánh cổng đã cài đặt của tôi với phiên bản từ xa không GTK2?

Tất nhiên tôi có thể để pkg upgradecông việc của nó và cài đặt lại cổng sau đó, nhưng điều này thật ngu ngốc. Cách được đề xuất để cập nhật hỗn hợp các gói và cổng là gì?


Là sử dụng pkg lockcác giải pháp được đề nghị? Nó hoạt động, nhưng tôi hy vọng điều gì đó đơn giản như điều này có thể được xử lý tự động.
Ricardo Buring

Có, pkg locklà giải pháp được thiết kế cho điều đó: từ trang man: Khóa pkg được sử dụng để khóa các gói chống cài đặt lại, sửa đổi hoặc xóa.
Dereckson

bài này đã cũ Nhưng tôi muốn nói rằng tôi có vấn đề tương tự. Tôi đã hỏi Diễn đàn FreeBSD "Sử dụng các gói và cổng cùng một lúc?" Và một thành viên cho tôi lời khuyên để sử dụng tập lệnh để cập nhật cài đặt, giống như anh ấy đã làm. Bạn có thể tìm thấy nó ở đó trong câu trả lời của mình.
HL1234

Câu trả lời:


15

Bạn cần nhớ rằng pkgvà các cổng đăng ký phần mềm được cài đặt ở cùng một nơi (cơ sở dữ liệu SQLite /var/db/pkg). Cả hệ thống đều không ghi lại bất kỳ thông tin bổ sung nào mà một phần mềm cụ thể đã được cài đặt dưới dạng gói được biên dịch trước hoặc dưới dạng cổng. Do đó, một khi một phần mềm được cài đặt theo một trong hai cách tiếp cận, các công cụ không có cách nào để biết nó được cài đặt như thế nào .

Khi bạn chọn hỗ trợ GTK2 cho editors/vimcổng, điều đó đã được đăng ký trong cơ sở dữ liệu gói. Khi bạn chạy sau đó pkg upgrade, hãy pkgxem dữ liệu gói vimvà thấy rằng hỗ trợ GTK2 đã được bật trong phiên bản đã cài đặt, trong khi nó không được kích hoạt trong gói được biên dịch trước. pkg upgradeđang thực hiện chính xác những gì cần làm - tìm bất kỳ gói đã cài đặt nào khác với các gói được biên dịch sẵn có và cố gắng nâng cấp chúng. Những khác biệt đó có thể là số phiên bản, biểu đồ phụ thuộc, tùy chọn thời gian biên dịch, v.v.

Cách thích hợp để ngăn chặn việc pkgxem xét một cổng hoặc gói (một khi đã cài đặt, không có sự khác biệt nào, theo như các công cụ có liên quan) mà bạn muốn bảo vệ là sử dụng pkg locklệnh.

Ngoài ra, nếu bạn thấy mình thay đổi tùy chọn trên một số cổng, bạn có thể xem xét việc cài đặt poudrierevà duy trì kho lưu trữ gói của riêng mình. Phải mất một chút thiết lập và hoạt động tốt nhất nếu máy chủ lưu trữ của bạn có nhóm lưu trữ ZFS, mặc dù nó sẽ hoạt động nếu bạn không có ZFS; đó là một cách rất linh hoạt và thuận tiện để quản lý các bản dựng phần mềm tùy chỉnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.