Come aggiornare un mix di pacchetti e porte su FreeBSD


18

Uso principalmente pacchetti su FreeBSD, perché la maggior parte di essi mi va bene. Alcuni non mi vanno bene, tuttavia, come il vimpacchetto, che non include un grafico gvim.

Nessun problema. Posso invece installare la porta, usando portmaster editors/vime selezionando l' GTK2opzione. Funziona benissimo.

Tuttavia, quando corro pkg upgradedopo un po ', mi viene presentato quanto segue:

        Reinstalling vim-7.4.110_3 (options changed)

Cosa dà? Non ho modificato alcuna opzione e non esiste una nuova versione (nemmeno nelle porte). Paragona la mia porta installata con la versione remota senza GTK2?

Ovviamente posso lasciar pkg upgradefare il suo lavoro e installare nuovamente la porta in seguito, ma questo è stupido. Qual è il modo consigliato per aggiornare un mix di pacchetti e porte?


Sta usando pkg lockla soluzione raccomandata? Funziona, ma spero che qualcosa di così semplice possa essere gestito automaticamente.
Ricardo Buring,

Sì, pkg lockè la soluzione progettata per questo: dalla pagina man: "pkg lock è usato per bloccare i pacchetti contro reinstallazione, modifica o cancellazione.".
Dereckson,

questo post è vecchio. Ma mi piace dire che fino ad ora ho lo stesso problema. Ho chiesto al forum di FreeBSD "Usare pacchetti e porte contemporaneamente?" E un membro mi dà il consiglio di usare uno script per gli aggiornamenti di installazione, come ha fatto lui. Puoi trovarlo lì nella sua risposta.
HL1234,

Risposte:


15

È necessario ricordare che pkge le porte registrano il software installato nello stesso posto (un database SQLite in /var/db/pkg). Nessuno dei due sistemi registra alcuna informazione aggiuntiva che un particolare software sia stato installato come pacchetto precompilato o come porta. Pertanto, una volta che un software è installato in entrambi i modi, gli strumenti non hanno modo di sapere come è stato installato.

Quando è stato selezionato il supporto GTK2 per la editors/vimporta, è stato registrato nel database del pacchetto. In seguito pkg upgrade, hai pkgesaminato i dati del pacchetto vime scoperto che il supporto GTK2 era stato abilitato nella versione installata, mentre non era abilitato nel pacchetto precompilato. pkg upgradesta facendo esattamente ciò che dovrebbe: trovare tutti i pacchetti installati diversi dai pacchetti precompilati disponibili e tentare di aggiornarli. Queste differenze possono essere nel numero di versione, nel grafico delle dipendenze, nelle opzioni di compilazione, ecc.

Il modo corretto per evitare pkgdi considerare una porta o un pacchetto (una volta installato, non c'è alcuna differenza, per quanto riguarda gli strumenti) che si desidera proteggere è utilizzare il pkg lockcomando.

In alternativa, se ti accorgi che stai cambiando le opzioni su un numero di porte, potresti prendere in considerazione l'installazione poudrieree la manutenzione del tuo repository di pacchetti. Richiede un po 'di configurazione e funziona meglio se l'host di build ha un pool di archiviazione ZFS, sebbene funzionerà se non si dispone di ZFS; è un modo molto flessibile e conveniente per gestire build di software personalizzate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.