Cómo actualizar una combinación de paquetes y puertos en FreeBSD


18

Principalmente uso paquetes en FreeBSD, porque la mayoría de ellos me quedan bien. Sin embargo, algunos no me convienen, como el vimpaquete, que no incluye un gráfico gvim.

No hay problema. En su lugar, puedo instalar el puerto, usando portmaster editors/vimy seleccionando la GTK2opción. Esto funciona bien

Sin embargo, cuando corro pkg upgradedespués de un tiempo, se me presenta lo siguiente:

        Reinstalling vim-7.4.110_3 (options changed)

¿Lo que da? No cambié ninguna opción, y no hay una nueva versión (tampoco en los puertos). ¿Está comparando mi puerto instalado con la versión remota sin GTK2?

Por supuesto, puedo dejar de pkg upgradehacer su trabajo e instalar el puerto nuevamente después, pero esto es estúpido. ¿Cuál es la forma recomendada de actualizar una combinación de paquetes y puertos?


¿Está usando pkg lockla solución recomendada? Funciona, pero espero que algo tan simple como esto se pueda manejar automáticamente.
Ricardo Buring

Sí, pkg lockes la solución diseñada para eso: desde la página del manual: "pkg lock se usa para bloquear paquetes contra la reinstalación, modificación o eliminación".
Dereckson

Esta publicación es antigua. Pero me gusta decir que hasta ahora tengo el mismo problema. Le pregunté al foro de FreeBSD "¿Usando paquetes y puertos al mismo tiempo?" Y un miembro me dio el consejo de usar un script para las actualizaciones de instalación, como lo ha hecho. Puedes encontrarlo allí en su respuesta.
HL1234

Respuestas:


15

Debe recordar eso pkgy los puertos registran el software instalado en el mismo lugar (una base de datos SQLite /var/db/pkg). Ninguno de los dos sistemas registra información adicional de que un software en particular se instaló como un paquete precompilado o como un puerto. Por lo tanto, una vez que se instala una pieza de software por cualquiera de los enfoques, las herramientas no tienen forma de saber cómo se instaló.

Cuando seleccionó el soporte GTK2 para el editors/vimpuerto, se registró en la base de datos del paquete. Cuando más tarde ejecutó pkg upgrade, pkgmiró los datos del paquete vimy descubrió que la compatibilidad con GTK2 se había habilitado en la versión instalada, mientras que no está habilitada en el paquete precompilado. pkg upgradeestá haciendo exactamente lo que debería: encontrar los paquetes instalados que son diferentes de los paquetes precompilados disponibles e intentar actualizarlos. Esas diferencias pueden estar en el número de versión, el gráfico de dependencia, las opciones de tiempo de compilación, etc.

La forma correcta de evitar pkgconsiderar un puerto o paquete (una vez instalado, no hay diferencia, en lo que respecta a las herramientas) que desea proteger es utilizar el pkg lockcomando.

Alternativamente, si se encuentra cambiando las opciones en varios puertos, podría considerar instalar poudrierey mantener su propio repositorio de paquetes. Requiere un poco de configuración y funciona mejor si su host de compilación tiene un grupo de almacenamiento ZFS, aunque funcionará si no tiene ZFS; Es una forma muy flexible y conveniente de gestionar compilaciones de software personalizadas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.