Hace un tiempo tuve que compilar manualmente el port ffmpeg con soporte para lame, ya que la versión de paquete de FreeBSD no incluye dicho codec (por cuestiones de patente). Pero luego de actualizar el sistema en reiteradas oportunidades, pkg trajo una versión superior a la compilada por mí, con lo cual perdí el soporte para lame y debí volver a compilar el port con las opciones personalizadas. Veamos entonces cómo indicarle al gestor de paquetes pkg que no actualice un port que ha sido compilado con opciones personalizadas, con el objetivo de mantener la funcionalidad deseada.



Al actualizar los paquetes en mi sistema FreeBSD, se observa que pkg quiere actualizar ffmpeg:

root@hal9000:~ # pkg upgrade
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB   1.1MB/s    00:06    
Processing entries: 100%
FreeBSD repository update completed. 31757 packages processed.
All repositories are up to date.
Updating database digests format: 100%
Checking for upgrades (25 candidates): 100%
Processing candidates (25 candidates): 100%
The following 12 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
        vlc: 3.0.6_11,4 -> 3.0.6_12,4
        speech-dispatcher: 0.8.6_1 -> 0.8.8
        qt5-speech: 5.12.2 -> 5.12.2_1
        plasma5-kdeplasma-addons: 5.15.4 -> 5.15.4_1
        oniguruma: 6.9.0 -> 6.9.1
        libxine: 1.2.9_7 -> 1.2.9_8
        libva-glx: 2.4.0_3 -> 2.4.1
        libva: 2.4.0_3 -> 2.4.1
        help2man: 1.47.8_1 -> 1.47.10
        firefox: 66.0.2,1 -> 66.0.2_1,1
        ffmpeg: 4.1.1_10,1 -> 4.1.3_1,1
        chromium: 73.0.3683.103 -> 73.0.3683.103_1

Number of packages to be upgraded: 12

The process will require 3 MiB more space.
137 MiB to be downloaded.

Proceed with this action? [y/N]: n

Sin embargo no deseo que sea actualizado, pues la versión de paquete que va a instalar pkg no tiene soporte para el codec lame. A fin de evitar que ffmpeg sea actualizado por pkg, es necesario "bloquear" dicho paquete. Es decir, impedir que sea actualizado. Para ello se dispone del subcomando "lock":

root@hal9000:~ # pkg lock ffmpeg
ffmpeg-4.1.1_10,1: lock this package? [y/N]: y
Locking ffmpeg-4.1.1_10,1

Simplemente pasar el nombre de paquete como parámetro, y se observa que pkg congela la versióna ctualmente instalada.

Al intentar actualizar nuevamente, se observa que ffmpeg no está presente entre la lista de paquetes a actualizar:

root@hal9000:~ # pkg upgrade
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (25 candidates): 100%
Processing candidates (25 candidates): 100%
The following 11 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
        vlc: 3.0.6_11,4 -> 3.0.6_12,4
        speech-dispatcher: 0.8.6_1 -> 0.8.8
        qt5-speech: 5.12.2 -> 5.12.2_1
        plasma5-kdeplasma-addons: 5.15.4 -> 5.15.4_1
        oniguruma: 6.9.0 -> 6.9.1
        libxine: 1.2.9_7 -> 1.2.9_8
        libva-glx: 2.4.0_3 -> 2.4.1
        libva: 2.4.0_3 -> 2.4.1
        help2man: 1.47.8_1 -> 1.47.10
        firefox: 66.0.2,1 -> 66.0.2_1,1
        chromium: 73.0.3683.103 -> 73.0.3683.103_1

Number of packages to be upgraded: 11

122 MiB to be downloaded.

Proceed with this action? [y/N]:

Tener en cuenta que a partir de ahora uno es el único responsable por mantener dicho port actualizado.

Referencias

  • man pkg-lock


Tal vez pueda interesarte


Compartí este artículo