Як оновити суміш пакетів та портів на FreeBSD


18

Я в основному використовую пакети на FreeBSD, тому що більшість з них мені просто підходять. Однак деякі мене не влаштовують, як vimпакет, який не включає графічний gvim.

Без проблем. Я можу встановити порт замість цього, використовуючи portmaster editors/vimта вибравши GTK2опцію. Це прекрасно працює.

Однак, коли я біжу pkg upgradeчерез деякий час, мені з’являється таке:

        Reinstalling vim-7.4.110_3 (options changed)

Що дає? Я не змінив жодних параметрів, і немає нової версії (також не в портах). Чи порівнюється мій встановлений порт із віддаленою версією без GTK2?

Звичайно, я можу дозволити pkg upgradeзробити свою роботу і знову встановити порт після цього, але це дурно. Який рекомендований спосіб оновити суміш пакетів і портів?


Чи використовуєте pkg lockрекомендований розчин? Це працює, але я сподіваюся, що щось таке просте, як це можна було б впоратися автоматично.
Рікардо Бюрінг

Так, pkg lockчи розроблено для цього рішення: на сторінці man: "pkg lock використовується для блокування пакетів проти перевстановлення, модифікації чи видалення."
Дерексон

ця публікація залишається старою. Але я хотів сказати, що у мене досі одна і та ж проблема. У мене був запит на форумі FreeBSD "Використання пакетів і портів одночасно?" І один член дає мені пораду використовувати сценарій для встановлення оновлень, як це робив він. Ви можете знайти його там, у його відповіді.
HL1234

Відповіді:


15

Вам потрібно пам’ятати, що pkgі порти реєструють встановлене програмне забезпечення там же (база даних SQLite в /var/db/pkg). Жодна система не записує додаткової інформації про те, що певний фрагмент програмного забезпечення був встановлений як попередньо складений пакет, або як порт. Таким чином, після встановлення частини програмного забезпечення будь-яким підходом інструменти не можуть знати, як це було встановлено.

Коли ви вибрали підтримку GTK2 для editors/vimпорту, який був зареєстрований у базі даних пакетів. Коли пізніше ви запустили pkg upgrade, pkgпереглянули дані пакета для vimта виявили, що підтримка GTK2 була включена у встановленій версії, тоді як вона не була включена у попередньо складеному пакеті. pkg upgradeробить саме те, що слід - знаходить будь-які встановлені пакети, які відрізняються від наявних попередньо складених пакетів, та намагається оновити їх. Ці відмінності можуть бути у кількості версій, графіку залежності, параметрах часу компіляції тощо.

Правильний спосіб запобігти pkgрозгляду порту або пакета (після встановлення, що стосується інструментів, немає різниці), яку ви хочете захистити, - це використовувати pkg lockкоманду.

Крім того, якщо ви виявите, що ви змінюєте параметри на декількох портах, ви можете розглянути можливість встановлення poudriereта підтримки власного сховища пакетів. Потрібно трохи налаштувати, і найкраще працює, якщо у вашої збірки буде пул зберігання ZFS, хоча він буде працювати, якщо у вас немає ZFS; це дуже гнучкий і зручний спосіб управління побудовими програмного забезпечення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.